SISTEMAS OPERACIONAIS Escalonamento de Processos Tcnico em Informtica

  • Slides: 22
Download presentation
SISTEMAS OPERACIONAIS Escalonamento de Processos Técnico em Informática IFCE - Campus Aracati - Semestre

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

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

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

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

Estados de um processo

Processos com uma ou mais threads Exemplo Um editor de textos pode ter uma

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

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

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

Troca de Contexto Desperdício de CPU

Comportamento dos Processos Os processos executam alternando entre utilização de CPU e requisições de

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

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

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

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

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

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

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

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

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

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

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

Slides disponíveis em: http: //ericagallindo. com. br