Processos e Threads Sistemas Operacionais (SOPBCC) De: Andrew S. Tanenbaum Tradução: Ronaldo A.L. Gonçalves Luís A. Consulado
Responsável pela disciplina: Prof. Dr. Maurício Aronne Pillon Curso de Ciência da Computação
1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento
75 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Introdução a Escalonamento • Processos alternam entre computação e E/S. • São considerados, basicamente, dois tipos de processos: – Orientados à CPU – Orientados à E/S
76 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento Introdução ao Escalonamento (1)
(a) um processo orientado à CPU (b) um processo orientado à E/S 77 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Introdução ao Escalonamento (2)
Objetivos do algoritmo de escalonamento 78 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Quando Escalonar • Na criação: quem deve ser escalonado, o pai ou o filho? • Ao término: quem será o próximo a executar? • Ao ser bloqueado: quem será o próximo a executar? – Não-preemptivo: deixa executar até que seja bloqueado ou libere, voluntariamente, a CPU. – Preemptivo: o processo executa um tempo máximo fixado pelo escalonador, e depois, é suspenso. 79 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Como avaliar? • Vazão: número de jobs processados por hora; • Tempo de retorno: tempo médio do momento que um job é submetido até o momento que foi terminado. • Tempo de resposta: tempo entre a emissão de um comando e a obtenção do resultado. • Proporcionalidade: para atividades complexas aceitase a demora, para outras, classificadas como simples, não. 80 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Técnicas de Escalonamento 1)Primeiro a chegar, primeiro a ser servido 2)Job mais curto 3)Próximo de menor tempo restante
81 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
FCFS • Características: – Preemptivo (sem restrição do tempo) – Simples de programar; – (Desvantagem) Desfavorece os processos orientados à E/S;
• Funcionamento: – A CPU é atribuída aos processos segundo a ordem de chegada (FILA) dos mesmos.
82
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Shortest Job First • Não preemptivo; • Supõe o conhecimento prévio dos tempos de execução; • É adequado somente para situações em que todos os jobs já estão disponíveis; • Funcionamento: – Sempre escolhe o Job mais curto (com menor tempo)
83 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Shortest Job First
Um exemplo de escalonamento job mais curto primeiro
84 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Próximo de menor tempo restante • Versão preemptiva do Shortest Job First; • Escolhe sempre o processo cujo o tempo restante de processamento é o menor; • Tempo de execução deve ser previamente conhecido;
85 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Técnicas de Escalonamento • Escalonamento por alternância circular (Round-robin) • Escalonamento por prioridades • Escalonamento por loteria
86 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de Alternância Circular • Algoritmo preemptivo; • Atribui-se um quantum a cada processo; • O processo sai da CPU: (1) Ao sinal de término do quantum outro processo é escalonado; (2) Fez uma chamada de E/S (3) Terminou de executar
87 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de Alternância Circular • Qual a fatia de tempo ideal para o quantum? – Se muito pequeno: • O chaveamento de contexto toma uma fatia considerável do tempo de processamento. – Se muito grande: • A percepção não ocorrerá, portanto as requisições curtas serão prejudicadas – Um quantum razoável fica em torno de 20 a 50ms. 88 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento por Alternância Circular
(a) lista de processos executáveis (b) lista de processos executáveis depois que B usou todo o seu quantum
89 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de Prioridades • Nem todos os processos tem a mesma importância; • Portanto, estabelece-se uma prioridade a cada conjunto de processos; • O processo com a mais alta prioridade é dada a possibilidade de execução; • Para que um processo não execute indefinidademente, a cada tique de relógio o escalonador pode decrementar sua prioridade; 90 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de Prioridades • Outro método é atribuir um quantum obrigando o processo a deixar a CPU e entrar na fila novamente; • Nice é o comando em UNIX que altera a prioridade de um processo;
91 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de Prioridades
Um algoritmo de escalonamento com quatro classes de prioridade 92 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento por loteria • Funcionamento: – Atribuir bilhetes de loteria aos processos; – Prêmios são recursos; – Ao escalonador cabe sortear o número do bilhete, e escalonar o processo vencedor; – Aos bilhetes mais importantes pode-se atribuir bilhetes extras;
93 Pearson Education Sistemas Operacionais Modernos – 2ª Edição