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.




