SISTEMAS OPERACIONAIS Escalonamento de Processos Tcnico em Informtica






















- Slides: 22
SISTEMAS OPERACIONAIS Escalonamento de Processos Técnico em Informática IFCE - Campus Aracati - Semestre 2018. 1 Prof. Érica Gallindo - erica. gallindo@ifce. edu. br
Assuntos Abordados 1. 2. 3. 4. 5. Conceito de processos Bloco de controle de processos Estados de processos Escalonamentos preemptivo x não-preemptivo Algoritmos de escalonamento FIFO, SJF, Prioridade e Round-Robin 6. Escalonamento com múltiplos processadores
Processo é um programa em execução representado internamento no S. O. por uma estrutura chamada PCB (process control block) Um PCB contém: Identificador (pid) Estado do processo Contador de programa (PC): localização da próxima instrução a ser executada Registradores de CPU: Memória alocada ao processo Informações de I/O: dispositivos alocados ao processo; lista de arquivos abertos PCB
Estados de um processo A medida em que um processo executa, seu estado vai mudando. São estados de um processo: 1. Novo: o processo está sendo criado 2. Pronto: o processo está esperando o acesso a um processador 3. Em execução: instruções do processo estão sendo executadas 4. Em espera (bloqueado): o processo não pode continuar sua execução porque está aguardando por algum evento terminar 5. Encerrado: o processo terminou sua execução
Estados de um processo
Processos com uma ou mais threads Exemplo Um editor de textos pode ter uma thread fazendo verificação ortográfica enquanto outra processa a entrada do usuário Daqui por diante assumiremos processos com uma única linha de execução
Multiprogramação Em um hardware com uma única CPU nunca haverá mais de um processo em execução Uma técnica chamada de multiprogramação permite a execução “simultânea” de vários programas Diversos programas são mantidos na memória O tempo da CPU é dividido entre eles A multiprogramação tem como objetivo tornar mais eficiente o aproveitamento de recursos do computador
Troca de Contexto Quando dois processos estão no estado pronto, um deles precisa ser escolhido para execução Escalonador de processos é a parte do S. O. responsável por esta escolha Algoritmos de escalonamento são utilizados para executar esta ação Parar trocar o processo em execução é preciso realizar troca de contexto: Salvar o estado do processo atual em seu PCB Restaurar o estado do novo processo a ser executado
Troca de Contexto Desperdício de CPU
Comportamento dos Processos Os processos executam alternando entre utilização de CPU e requisições de E/S Ou o processo está executando ou ele está aguardando por algum evento Tipos de processos Orientados a CPU: processos que passam a maior parte do tempo usando a CPU Orientado a E/S: processos que passam a maior parte do tempo realizado E/S Quanto mais rápido são os processadores, os processos tendem a ficar orientados à E/S
Critérios de Escalonamento Decisões sobre o escalonamento de CPU ocorrem quando o processo termina ou muda de estado: Em execução -> espera Em execução -> pronto Em espera -> pronto Tipos de escalonamento: Preemptivo: processo só perde a CPU por vontade própria Não-preemptivo: processo em execução pode perder a CPU para outro de maior prioridade
Critérios de Escalonamento Características comparáveis entre algoritmos de escalonamento: Utilização da CPU: manter ocupada Vazão: número de processos que terminam sua execução em uma unidade de tempo Tempo de retorno: tempo para executar um processo Tempo de espera: tempo de espera de um processo na fila de processos prontos Espera-se algoritmos que consigam: Máxima utilização da CPU Máxima vazão Mínimo tempo de retorno Mínimo tempo de espera
Algoritmos de Escalonamento FIFO – First In First Out Processo Tempo de CPU P 1 24 P 2 3 P 3 3 Suponha que os processos chegaram na ordem: P 1, P 2 e P 3 Tempo de espera para P 1 = 0; P 2 = 24; P 3 = 27 Tempo médio de espera: (0 + 24 + 27)/3 = 17
Algoritmos de Escalonamento FIFO Suponha que os processos chegaram na ordem: P 2, P 3 e P 1 Tempo de espera para P 2 = 0; P 3 = 3; e P 1 = 6 Tempo médio de resposta: (0 + 3 + 6)/3 = 3 Melhor que o caso anterior Efeito comboio processos curtos atrás de processos lentos Considere um processo CPU-bound e vários processos I/O-bound
Algoritmos de Escalonamento SJF – Shortest Job First Associa a cada processo o tamanho do seu próximo uso de CPU. Este valor é usado para se escalonar o processo com o menor tempo Dois esquemas: Não-preeptivo: uma vez que o processo ganha acesso a CPU, ela não pode ser retirada até completar seu tempo Preemptivo: se um novo processo chegar com um tempo de CPU menor que o tempo restante do processo sendo executado, a troca é feita. SJF é ótimo pois sempre dá o menor tempo médio de espera para um conjunto de processos
Exemplo de SJF (não-preemptivo) Process. Arriva l Tempo de CPU P 1 0. 0 7 P 2 2. 0 4 P 3 4. 0 1 P 4 5. 0 4 Chegada 0 2 4 5 Tempo médio de espera = (0 + 7 + 8 + 12) / 4 = 6. 75
Exemplo de SJF (preemptivo) Process. Arriva l Tempo de CPU P 1 0. 0 7 P 2 2. 0 4 P 3 4. 0 1 P 4 5. 0 4 Chegada 0 2 4 5 Tempo médio de espera = (0 + 2 + 4 + 7) / 4 = 3. 25
Algoritmos de Escalonamento por prioridade Um número de prioridade é associado a cada processo A CPU é alocado ao processo com a prioridade mais alta (menor número significa prioridade mais alta) SJF é um algoritmo por prioridade onde a prioridade é dada pelo tempo de CPU requerido Problema: Starvation – processos com prioridade mais baixa podem nunca ser executados Solução: Aging: a prioridade aumenta na medida em que o processo envelhece
Exemplo de escalonamento por prioridade Process. Aarri Tempo de CPU P 1 10 P 2 1 P 3 2 P 4 1 P 5 5 Tempo médio de espera = 8. 2 Prioridade 3 1 4 5 2
Algoritmos de Escalonamento Round-Robin (RR) Cada processo recebe uma pequena unidade de tempo de CPU (quantum – de 10 a 100 ms). Depois que o quantum se esgota, o processo é interrompido e adicionado ao final da fila de processos prontos. Se existem n processos na fila de processos prontose o quantum é q, então cada processo recebe 1/n do tempo de CPU Nenhum processo espera mais que (n-1)q unidades de tempo. Não precisa esperar o final do quantum Quando um processo termina outro processo utiliza a CPU imeditamente
Slides disponíveis em: http: //ericagallindo. com. br