Prévia do material em texto
Sistemas Operacionais Escalonamento de Processos Escalonamento de processos No contexto de um SO, o escalonamento de processos consiste em escolher, por meio de algum critério, qual processo deverá ganhar a CPU. Esse procedimento permite a concorrência entre os processo pelo uso dos recursos e um melhor balanceamento na execução das tarefas. O escalonamento é feito por meio de algoritmos de escalonamento. Critérios de escalonamento Tempo de execução (turnaround) → mede o tempo decorrido entre a criação e o encerramento da tarefa, computando todos os tempos de processamento e de espera. Tempo de espera (waiting time) → tempo total perdido pela tarefa na fila de prontos, aguardando o processador. Tempo de resposta → tempo decorrido entre a chegada de um evento ao sistema e o resultado imediato de seu processamento. Throughput → procurar maximizar o número de tarefas processadas por unidade de tempo. Justiça → Distribuição do processador entre as tarefas prontas. Tipos de Escalonamentos First-in / First-out (FIFO) Fila – não preemptivo Shortest Job First (SJF) Escolhe o menor – não preemptivo Shortest Remaining Time Next (SRTN) Escolhe o menor - preemptivo Turnaround FIFO SJF Outros algoritmos de escalonamento Round-Robin (circular); Com prioridades; Múltiplas filas; Entre outros. Round Robin Antigo, mas eficaz; Preemptivo(o processo pode ser interrompido); Cada processo recebe um tempo para ser executado no processador(Quantum); Ao final desse tempo, o processo é suspenso e colocado no final da fila e outro processo entra para execução; Também pode ser suspenso em caso de interrupção; Não tem prioridades. Round Robin O funcionamento deste algoritmo acontece da seguinte forma: uma unidade de tempo, denominada quantum, é definida pelo sistema operacional, que determina o período de tempo entre cada sinal de interrupção. Todos os processos são armazenados em uma fila circular. Round Robin https://www.youtube.com/watch?v=nvPqWNxl6Rc Round Robin Por prioridade Preemptivo; Cada processo possui sua prioridade; O processo com maior prioridade no estado de pronto é sempre escolhido para execução, e processos com prioridades iguais são escalonados seguindo o critério FIFO; Se durante a execução de um processo, aparecer outro na fila de prontos com prioridade maior, o SO deverá interromper o processo corrente, salvar seu contexto e colocá-lo no estado de pronto. Este mecanismo é conhecido como preempção por prioridade. Por prioridade Por prioridade Também recebe uma fatia de tempo para executar. A prioridade de execução é associada a cada processo. Neste escalonamento, um processo permanece no estado de execução até que termine seu processamento, ou voluntariamente passe para o estado de espera (interrupção por E/S), ou sofra uma preempção por tempo ou prioridade. A principal vantagem deste escalonamento é permitir um melhor balanceamento no uso do processador, com a possibilidade de diferenciar o grau de importância dos processos através da prioridade (o Windows e o UNIX utilizam este escalonamento). Escalonamento circular com prioridades No escalonamento circular com prioridades estáticas, a prioridade definida no contexto de software de cada processo permanece inalterada ao longo da sua existência. No escalonamento circular com prioridades dinâmicas, é possível que a prioridade de um processo seja alterada dinamicamente pelo administrador do sistema ou, em algumas políticas, pelo sistema operacional. Múltiplas filas Preemptivo; Complexo, mas bom para I/O bound; Ficam mais tempo nas filas de maior prioridade, já que sofrem poucas preempções por tempo; Muito tempo no estado de espera, pouco tempo no estado de execução; Processo CPU-bound tendem a ser direcionados para filas com menor prioridade; Quanto maior seu tempo de CPU, menor sua prioridade. Múltiplas filas Múltiplas filas https://www.youtube.com/watch?v=H5l6EGepyYQ Escalonamento múltiplas filas Starvation (inanição) Em programação concorrente, ocorre starvation ou inanição, quando um processo nunca é executado, pois processos de prioridade maior sempre o impedem de ser executado. *O escalonamento Round Robin não permite starvation. EXERCÍCIO DE ESCALONAMENTO 1) Dados 3 processos, seus respectivos tempos de execução e suas prioridades. PROCESSO TEMPO EXEC. PRIO P1 5 1 P2 3 3 P3 9 2 Monte tabelas que demonstrem as políticas de escalonamento a seguir, bem como seus tempos de turnaround. (O quantum determinado pelo SO é de 2 u.t.) FIFO SJF PRIORIDADE ROUND ROBIN PROCESSO TEMPO EXEC. PRIORIDADE P1 5 1 P2 3 3 P3 9 2 PROCESSO TEMPO DE EXECUÇÃO TURNAROUND FIFO (FILA) PROCESSO TEMPO EXEC. PRIORIDADE P1 5 1 P2 3 3 P3 9 2 PROCESSO TEMPO DE EXECUÇÃO TURNAROUND SJF (MENOR) PROCESSO TEMPO EXEC. PRIORIDADE P1 5 1 P2 3 3 P3 9 2 PRIORIDADE PROCESSO TEMPO DE EXECUÇÃO PRIORIDADE TURNAROUND ROUND ROBIN PROCESSO TEMPO DE EXECUÇÃO RESTA TEMPO DE CPU (2 u.t.) TÉRMINO P1 5 P2 3 P3 9 TEMPO DE TÉRMINO: P1 – P2 – P3 – DATA DE ENTREGA – 14/11/2022 EXERCÍCIOS DE FIXAÇÃO Explique o escalonamento Round Robin. Como funcionam os escalonamentos FIFO e SJF? O que é quantum em um SO? O que é Starvation? Explique o escalonamento por múltiplas filas. ATIVIDADE DE ESCALONAMENTO 1. Considere que cinco processos sejam criados no instante de tempo 0 (P1, P2, P3, e P4) e possuam as características descritas na tabela a seguir: Represente, por meio de tabelas, o escalonamento dos processos e seus respectivos tempos de turnaround, segundo as políticas especificadas a seguir. No final, indique os tempos de término de cada processo. a) FIFO b) SJF c) Prioridade (número menor implica prioridade maior) d) Round Robin com fatia de tempo igual a 2 u.t. image2.png image3.png media1.mp4 image4.png oleObject1.bin image5.wmf UCP Estado de Término Filas dos processos no estado de Pronto Prioridade P1 Prioridade P2 Prioridade Pn Estado de Criação Estado de Espera Preempção por prioridade image6.png image7.png image8.png image9.png media2.mp4 image10.png image11.png image12.png image13.png