th Edition Captulo 5: Escalonamento da CPU 5.2 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Captulo 5: Escalonamento de CPU Conceitos Bsicos Critrios de Escalonamento Algoritmos de Escalonamento Escalonamento de Threads Escalonamento de Multiprocessadores Exemplos de Sistemas Operacionais Avaliao de Algoritmos 5.3 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Objetivos Introduzir escalonamento de CPU, que a base para sistemas operacionais multiprogramados
Descrever vrios algoritmos de escalonamento de CPU
Discutir critrios de avaliao para selecionar algoritmos de escalonamento de CPU para um sistema em particular 5.4 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Conceitos Bsicos Mxima utilizao da CPU obtida com multiprogramao
Fase de uso da CPU e de E/S Execuo de processos consiste de uma fase de execuo da CPU e espera por E/S
Distribuio das fases de uso da CPU (CPU bursts) 5.5 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Histograma de durao de fases de uso da CPU 5.6 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Alternando fases de uso da CPU e E/S 5.7 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonador da CPU Seleciona dentre os processos na memria em estado pronto, e aloca a CPU para um deles.
Decises de escalonamento da CPU ocorrem quando um processo: 1. Muda do estado executando para esperando. 2. Muda do estado executando para pronto. 3. Muda do estado esperando para pronto. 4. Termina.
Escalonamento nas condies 1 e 4 no-preemptivo.
Todas as outras alocaes so preemptivas.
5.8 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Despachante O despachante (dispatcher) o mdulo que fornece o controle da CPU ao processo selecionado pelo escalonador da CPU. Essa funo envolve: Troca de contexto Mudana para o modo usurio Desvio para o endereo adequado no programa do usurio, para reiniciar o programa
Latncia de Despacho tempo gasto pelo despachante para interromper a execuo de um processo e iniciar a execuo de outro. 5.9 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Critrios de Alocao Utilizao da CPU manter a CPU ocupada a maior parte possvel do tempo
Produtividade (Throughput) nmero de processos que completam sua execuo por unidade de tempo
Tempo de Processamento (Turnaround) quantidade de tempo necessria para executar um determinado processo
Tempo de Espera quantidade de tempo que um processo esteve esperando na fila de processos prontos
Tempo de Resposta intervalo de tempo entre o envio de uma requisio e a produo da primeira resposta, no a sada (para ambientes tempo compartilhado) 5.10 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Critrios de Otimizao Maximizar utilizao da CPU Maximizar produtividade Minimizar o tempo de processamento Minimizar o tempo de espera Minimizar o tempo de resposta 5.11 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Primeiro a Chegar, Primeiro a ser Servido (FCFS*) Processo Tempo de Rajada P 1 24 P 2 3 P 3 3
Suponha que os processos chegam na ordem: P 1 , P 2 , P 3 O diagrama de Gantt para a alocao ::
Tempo de espera para P 1 = 0; P 2 = 24; P 3 = 27 Tempo de espera mdio: (0 + 24 + 27)/3 = 17 P 1 P 2 P 3
24 27 30 0 *FCFS - First Come, First Served 5.12 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento FCFS (Cont.) Suponha que os processos cheguem na ordem P 2 , P 3 , P 1
O diagrama de Gantt para a alocao :
Tempo de espera para P 1 = 6;
P 2 = 0 ; P 3 = 3 Tempo de espera mdio : (6 + 0 + 3)/3 = 3 Bem melhor que o casso anterior. Efeito Comboio: processos curtos aps processos longos P 1 P 3 P 2
6 3 30 0 5.13 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento Menor Job Primeiro (SJR*) Associado com cada processo a durao da sua prxima fase de uso da CPU. Uso dessas duraes para escalonar o processo com o menor tempo.
SJF timo permite o menor tempo mdio de espera para um dado conjunto de processos. A dificuldade saber o tamanho da prxima requisio de CPU *SJR - Shortest-Job-First 5.14 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplo de SJF Processos Tempo de Rajada P 1 0.0 6 P 2 2.0 8 P 3 4.0 7 P 4 5.0 3 Diagrama de escalonamento SJF:
Tempo de espera mdio = (3 + 16 + 9 + 0) / 4 = 7
P 4
P 3
P 1
3 16 0 9 P 2
24 5.15 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Determinando a durao da prxima fase de uso da CPU Pode somente determinar a durao.
Pode ser calculada com a durao de uso da CPU na fase anterior, usando mdias exponenciais.
: Define 4. 1 0 , 3. CPU da uso de fase prxima para previsto valor 2. CPU da uso de fase ensima da real durao 1. 1 s s = = + o o t n n t
t n+1 =o t n + 1o ( )t n . 5.16 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Previso da Durao da Prxima Fase de Uso da CPU 5.17 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplos de mdia exponencial o =0 t n+1 = t n Histria recente no levada em considerao. o =1 t n+1 = t n Somente a durao da fase de uso da CPU mais recente conta. Se a frmula for expandida, temos: t n+1 = o t n +(1 - o) o t n -1 + +(1 - o ) j o t n -1 + +(1 - o ) n=1 t n t 0 Uma vez que tanto o quanto (1 - o) so menores ou iguais a 1, cada termo sucessivo tem peso menor que o seu predecessor. 5.18 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento por Prioridade Um nmero de prioridade (inteiro) associado com cada processo
A CPU alocada para o processo com a maior prioridade (menor inteiro maior prioridade). Preemptivo No-preemptivo
SJF um escalonador com prioridade, no qual a prioridade a previso da prxima fase de uso da CPU.
Problema Starvation (abandono de processo) processos de baixa prioridade podem nunca executar.
Soluo Aging (envelhecimento) ao passar do tempo, aumentar a prioridade dos processos que ficam em espera no sistema. 5.19 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Alocao Circular - Round Robin (RR) Cada processo recebe uma pequena unidade de tempo de CPU (quantum), usualmente 10-100 milissegundos. Depois de transcorrido este tempo, o processo preemptado e adicionado ao fim da fila de processos prontos.
Se existem n processos na fila de processos prontos e o quantum q, ento cada processo obtm 1/n do tempo da CPU em blocos de no mximo q unidades de tempo de uma vez. Nenhum processo espera mais do que (n-1)q unidades de tempo.
Desempenho q alto FIFO q pequeno q deve ser maior que a troca de contexto, seno a sobrecarga muito alta. 5.20 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplo: RR com quantum= 4 Processo Tempo de Rajada P 1 24 P 2 3 P 3 3
O diagrama de Gantt :
Tipicamente, possui maior tempo mdio de processamento do que o SJF, mas melhor resposta. P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 10 14 18 22 26 30 5.21 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplo: RR com quantum= 20 Processo Tempo de Rajada P 1 53 P 2 17 P 3 68 P 4 24
O diagrama de Gantt :
P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 5.22 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition O Quantum e o Tempo de Troca de Contexto 5.23 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Variao do tempo de processamento com o quantum 5.24 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Alocao com Mltiplas Filas Fila de processos prontos particionada em filas separadas: primeiro plano - foreground (interativo) segundo plano - background (batch)
Cada fila tem seu prprio algoritmo de escalonamento, interativo Alocao Circular (RR) batch Primeiro a chegar, Primeiro a ser servido (FCFS)
Escalonamento deve ser realizado entre as filas. Escalonamento de prioridade fixa; Ex.: a fila de processos interativos pode ter prioridade absoluto sobre a fila de processos batch. Possibilidade de starvation. Fatia de tempo cada fila recebe certa quantia de tempo de CPU que poderia ser ento alocada aos processos dessa fila; Ex.: 80% para processos interativos em RR 20% para processos batch em FCFS 5.25 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento com Mltiplas filas 5.26 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Mltiplas Filas com Realimentao Um processo pode se mover entre as vrias filas; envelhecimento (aging) pode ser implementado desta forma.
Escalonamento com mltiplas filas e transferncias entre as filas definido pelos seguintes parmetros, a saber: Nmero de filas Algoritmos de escalonamento para cada fila Mtodo usado para determinar quando transferir um processo para uma fila de prioridade mais alta Mtodo usado para determinar quando transferir um processo para uma fila de prioridade mais baixa Mtodo usado para determinar em qual fila um processo deve ser colocado, quando precisar usar a CPU 5.27 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplo de Mltiplas Filas com Realimentao Trs filas: Q 0 RR com quantum de 8 milissegundos Q 1 RR com quantum 16 milissegundos Q 2 FCFS
Escalonamento Um novo job entra na fila Q 0 a qual utiliza RR. Quando ele ganha a CPU, job recebe 8 milissegundos. Se ele no finalizar em 8 milissegundos, o job movido para a fila Q 1 . Na fila Q 1 o job de novo servido por RR e recebe 16 milissegundos adicionais. Se ele ainda no completou, premptado e movido para a fila Q 2 . 5.28 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Mltiplas Filas com Realimentao 5.29 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento de Threads Distino entre threads em nvel de usurio e em nvel de kernel
Nos modelos Muitos-para-um e Muitos-para-muitos, a biblioteca de threads escalona threads em nvel de usurio para executar em LWP (como kernel threads) Conhecido como process-contention scope (PCS) escopo de conteno do processo - uma vez que a competio do escalomento dentro do processo
Threads em nvel de kernel so escalonadas em CPUs disponveis. Conhecido como system-contention scope (SCS) - escopo de conteno do sistema 5.30 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento em Pthread A API permite especificar entre PCS ou SCS durante a criao da thread PTHREAD SCOPE PROCESS escalona threads usando PCS PTHREAD SCOPE SYSTEM escalona threads usando SCS 5.31 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition API de escalonamento na Pthread #include <pthread.h> #include <stdio.h> #define NUM THREADS 5 int main(int argc, char *argv[]) { int i; pthread t tid[NUM THREADS]; pthread attr t attr; /* get the default attributes */ pthread attr init(&attr); /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread attr setschedpolicy(&attr, SCHED OTHER); /* create the threads */ for (i = 0; i < NUM THREADS; i++) pthread create(&tid[i],&attr,runner,NULL); 5.32 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition API de escalonamento na Pthread (Cont.) /* now join on each thread */ for (i = 0; i < NUM THREADS; i++) pthread join(tid[i], NULL); } /* Each thread will begin control in this function */ void *runner(void *param) { printf("I am a thread\n"); pthread exit(0); } 5.33 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento de Vrios Processadores Escalonamento de CPU mais complexo quando muitos processadores esto disponveis
Processadores homognios em um multiprocessador
Multiprocessamento assimtrico somente um processador acessa as estruturas de dados do sistema, aliviando a necessidade de compartilhamento de dados
Multiprocessamento simtrico (SMP) cada processador auto- escaloanado, todos os processos em uma fila de processos prontos comun ou cada um tem sua fila privada de processos prontos
Afinidade de processador processos tem afinidade com processador que est atualmente executando (soft affinity x hard affinity) 5.34 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition NUMA e Escalonamento de CPU 5.35 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Processadores Multicore Tendncia recente de colocar mltiplos processadores em um nico chip
Mais rpido e consome menos energia
Mltiplas threads por core tambm em crescimento Considera o atraso no acesso a memria para progredir em outra thread enquanto os dados so transferidos
5.36 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Sistema Multithreaded Multicore 5.37 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Exemplos de Sistemas Operacionais
Escalonamento no Solaris Escalonamento no Windows XP Escalonamento no Linux 5.38 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Tabela de Despacho no Solaris 5.39 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento no Solaris 5.40 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Prioridades no Windows XP 5.41 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Escalonamento no Linux Tempo de escalonmaneto de ordem constante O(1) Duas escalas de primeirdades: tempo compartilhado e tempo real Tempo real varia de 0 a 99 e o valor do nice de 100 a 140 5.42 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Relao entre durao de fatia de tempo e prioridades 5.43 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Lista de Tarefas Indexada de acordo com Prioridades 5.44 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Avaliao de Algoritmos Modelagem determinstica obtm uma carga pr- determinada e define o desempenho de cada algoritmo para esta carga. Modelos de Filas Implementao 5.45 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Avaliao de Escalonadores de CPU por Simulao Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Fim do Chapter 5