Agendamento de CPU Algorithms in OperaSistemas de gerenciamento
⚡ Resumo Inteligente
O agendamento da CPU determina qual processo pronto o sistema operacional executará em seguida.ping O processador fica ocupado e o desempenho é aprimorado por meio de algoritmos como First Come First Serve (FCFS), Shortest Job First (SJF), Priority (Prioridade) e Round Robin (Round Robin).
O que é agendamento de CPU?
Agendamento de CPU O escalonamento da CPU é o processo de determinar qual processo utilizará a CPU para execução enquanto outro processo estiver ocioso. A principal tarefa do escalonamento da CPU é garantir que, sempre que a CPU permanecer ociosa, o sistema operacional selecione pelo menos um dos processos disponíveis na fila de prontos para execução. O processo de seleção é realizado pelo escalonador da CPU, que escolhe um dos processos na memória que estão prontos para execução.
Tipos de agendamento de CPU
Existem dois tipos de métodos de agendamento:
Agendamento Preemptivo
No escalonamento preemptivo, as tarefas são geralmente atribuídas de acordo com suas prioridades. Às vezes, é importante executar uma tarefa com prioridade mais alta antes de outra com prioridade mais baixa, mesmo que esta última ainda esteja em execução. A tarefa com prioridade mais baixa é suspensa por um período e retomada quando a tarefa com prioridade mais alta termina sua execução.
Agendamento Não Preemptivo
Nesse tipo de método de escalonamento, a CPU é alocada a um processo específico. O processo que mantém a CPU ocupada a libera, seja trocando de contexto ou encerrando-se. É o único método que pode ser usado em diversas plataformas de hardware, pois não requer hardware especial (por exemplo, um temporizador), como ocorre no escalonamento preemptivo.
Quando o agendamento é preventivo ou não preventivo?
Para determinar se o agendamento é preemptivo ou não preemptivo, considere estes quatro parâmetros:
- Um processo muda do estado de execução para o estado de espera.
- Um processo específico passa do estado de execução para o estado de pronto.
- Um processo específico passa do estado de espera para o estado pronto.
- Um processo conclui sua execução e termina.
Se apenas as condições 1 e 4 forem válidas, o agendamento é denominado não preemptivo. Todas as outras situações de agendamento são preemptivas.
Terminologia importante de escalonamento de CPU
- Tempo de rajada/tempo de execução: O tempo necessário para que um processo complete sua execução. Também é chamado de tempo de execução.
- Tempo de chegada: O momento em que um processo entra no estado pronto.
- Tempo de término: O momento em que um processo é concluído e sai do sistema.
- Multiprogramação: Vários programas podem estar presentes na memória ao mesmo tempo.
- Empregos: Um tipo de programa sem qualquer tipo de interação com o usuário.
- Usuário: Um tipo de programa que envolve interação com o usuário.
- Processo: A referência que é usada tanto para um trabalho quanto para um usuário.
- Ciclo de rajada de CPU/IO: Caracteriza a execução de processos, que alterna entre atividades de CPU e de E/S. Os tempos de CPU geralmente são mais curtos do que os tempos de E/S.
Critérios de agendamento de CPU
Um algoritmo de escalonamento de CPU tenta maximizar e minimizar o seguinte:
Maximizar
Utilização da CPU: A utilização da CPU é a principal tarefa do sistema operacional, garantindo que a CPU permaneça o mais ocupada possível. Ela pode variar de 0 a 100%. No entanto, para um RTOS (Sistema Operacional de Tempo Real), pode variar de 40% para um sistema de baixo nível a 90% para um sistema de alto nível.
Taxa de transferência: O número de processos que concluem sua execução por unidade de tempo é conhecido como taxa de transferência. Portanto, quando a CPU está ocupada executando um processo, trabalho está sendo realizado, e o trabalho concluído por unidade de tempo é chamado de taxa de transferência.
Minimizar
Tempo de espera: O tempo de espera é o período de tempo que um processo específico deve aguardar na fila de prontos.
Tempo de resposta: É o período de tempo decorrido desde o envio da solicitação até o recebimento da primeira resposta.
Tempo de resposta: O tempo de resposta (turnaround time) é o tempo necessário para executar um processo específico. É o tempo total gasto aguardando para ser carregado na memória, aguardando na fila e executando na CPU. O período entre o momento em que o processo é submetido e o momento em que é concluído é o tempo de resposta.
Temporizador de intervalo
A interrupção do temporizador é um método intimamente relacionado à preempção. Quando um determinado processo obtém a alocação de CPU, um temporizador pode ser definido para um intervalo especificado. Tanto a interrupção do temporizador quanto a preempção forçam um processo a retornar a CPU antes que seu burst de CPU seja concluído.
A maioria dos sistemas operacionais com múltiplos programas utiliza algum tipo de temporizador para evitar que um processo ocupe o sistema indefinidamente.
O que é despachante?
O dispatcher é um módulo que fornece o controle da CPU para o processo. O dispatcher deve ser rápido para que possa ser executado a cada troca de contexto. A latência de despacho é o tempo necessário para o escalonador da CPU parar um processo e iniciar outro.
Funções desempenhadas pelo despachante:
- Mudança de contexto.
- Alternando para o modo de usuário.
- Movendo-se para o local correto no programa recém-carregado.
Tipos de agendamento de CPU Algorithms
Existem basicamente seis tipos de algoritmos de escalonamento de processos:
- Primeiro a chegar, primeiro a servir (FCFS)
- Programação Shortest-Job-First (SJF)
- Tempo restante mais curto
- Agendamento prioritário
- Agendamento de Round Robin
- Agendamento de fila multinível
Agendamento Algorithms
Primeiro a chegar, primeiro a servir
FCFS significa FCFS Primeiro a chegar, primeiro a servirÉ o algoritmo de escalonamento de CPU mais fácil e simples. Nesse tipo de algoritmo, o processo que solicita a CPU recebe a alocação primeiro. Esse método de escalonamento pode ser gerenciado com uma fila FIFO.
Quando um processo entra na fila de prontos, seu PCB (Bloco de Controle de Processo) é vinculado ao final da fila. Portanto, quando a CPU fica livre, ela deve ser alocada ao processo no início da fila.
Características do Método FCFS
- É um algoritmo de escalonamento não preemptivo.
- Os trabalhos são sempre executados por ordem de chegada.
- É fácil de implementar e usar.
- No entanto, esse método tem desempenho ruim e o tempo de espera geral é bastante alto.
Tempo restante mais curto
A sigla SRT significa Shortest Remaining Time (Tempo Restante Mais Curto). Também é conhecido como escalonamento preemptivo SJF. Nesse método, o processo é alocado à tarefa mais próxima de sua conclusão. Isso impede que um processo mais recente, em estado pronto, impeça a conclusão de um processo mais antigo.
Características do Método de Agendamento SRT
- Este método é aplicado principalmente em ambientes de processamento em lote, onde é necessário dar preferência a tarefas curtas.
- Este não é um método ideal para implementar em um sistema compartilhado onde o tempo de CPU necessário é desconhecido.
- Cada processo está associado à duração de sua próxima execução na CPU, portanto, o sistema operacional usa essas durações para agendar o processo com o menor tempo possível.
Agendamento baseado em prioridade
Agendamento prioritário É um método de agendamento de processos baseado em prioridade. Nesse método, o agendador seleciona as tarefas a serem executadas de acordo com sua prioridade.
O agendamento por prioridade também auxilia o sistema operacional na atribuição de prioridades. Os processos com maior prioridade são executados primeiro, enquanto os processos com prioridades iguais são executados em um esquema de rodízio ou por ordem de chegada (FCFS). A prioridade pode ser definida com base em requisitos de memória, requisitos de tempo e outros fatores.
Agendamento Round-Robin
Rodada robin é um dos algoritmos de escalonamento mais antigos e simples. O nome deste algoritmo vem do princípio round-robin, onde cada pessoa recebe uma parte igual de algo em sequência. É usado principalmente para escalonamento em sistemas multitarefa. Este método ajuda a alcançar a execução de processos sem períodos de inanição.
Características do agendamento Round-Robin
- O Round Robin é um modelo híbrido que funciona com base em um relógio.
- O intervalo de tempo atribuído ao processamento de uma tarefa específica deve ser mínimo. No entanto, pode variar de acordo com o processo.
- Ele se comporta como um sistema de tempo compartilhado que responde a cada processo dentro de um limite de tempo específico.
Trabalho mais curto primeiro
SJF (Shortest Job First) é um algoritmo de escalonamento no qual o processo com o menor tempo de execução é selecionado para ser executado em seguida. Esse método de escalonamento pode ser preemptivo ou não preemptivo. Ele reduz significativamente o tempo médio de espera de outros processos que aguardam execução.
Características do agendamento SJF
- Cada tarefa está associada a uma unidade de tempo para ser concluída.
- Nesse método, quando a CPU está disponível, o próximo processo ou tarefa com o menor tempo de conclusão é executado primeiro.
- É implementado com uma política não preventiva.
- Este algoritmo é útil para processamento em lote, onde esperar a conclusão das tarefas não é crítico.
- Isso melhora a produtividade executando primeiro as tarefas mais curtas, que geralmente têm um tempo de resposta menor.
Agendamento de filas de vários níveis
Este algoritmo divide a fila de prontos em várias filas separadas. Neste método, os processos são atribuídos a uma fila com base em uma propriedade específica do processo, como a prioridade do processo, o tamanho da memória e assim por diante.
No entanto, este não é um algoritmo de agendamento independente, pois precisa usar outros tipos de algoritmos para agendar as tarefas.
Características do agendamento de filas de múltiplos níveis
- Devem ser mantidas várias filas para processos com características em comum.
- Cada fila pode ter seu próprio algoritmo de agendamento.
- Prioridades são atribuídas a cada fila.
O objetivo de um algoritmo de agendamento
Aqui estão as razões para usar um algoritmo de agendamento:
- A CPU usa agendamento para melhorar sua eficiência.
- Isso ajuda você a alocar recursos entre processos concorrentes.
- A utilização máxima da CPU pode ser obtida com multiprogramação.
- Os processos que devem ser executados são mantidos na fila de prontos.




