Escalonamento de processos Processos Escalonamento M. Sc. Luiz Alberto [email protected] • Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro. • A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento. • O escalonamento de processo visa a alternância do uso da CPU entre os processos buscando uma maior produtividade e um uso mais efetivo do hardware do computador. Aula - SO – Processos - Escalonamento Estados do Processo –1– Prof. Luiz Alberto - Tipos de Tarefas (temporal) • Tarefas de tempo real – Previsibilidade em seus tempos de respostas • Tarefas interativas – Eventos externos solicitados por usuários (desktop) • Tarefas em lote (batch) – Sem intervenção do usuário (processo de backup) 1 - Processo bloqueado para entrada 2 - Gerenciador desativa um processo 3 - Gerenciador ativa outro processo 4 - Entrada se torna disponível Aula - SO – Processos - Escalonamento –2– Prof. Luiz Alberto - Aula - SO – Processos - Escalonamento –3– Prof. Luiz Alberto - Tipos de Tarefas (processador) • Tarefas orientadas a processamento (CPU-bound tasks) – Uso intensivo do processador – Passam a maior parte do tempo esperando respostas dos dispositivos de entrada/saída –4– • Maximizar a utilização do processador. • Maximizar a produção do sistema (throughput). – Número de processos executados por unidade de tempo. • Minimizar o tempo de execução (turnaround). • Tarefas orientadas a entrada/saída (IO-bound tasks) Aula - SO – Processos - Escalonamento Objetivos Prof. Luiz Alberto - Critérios de Escalonamento – Tempo total para executar um determinado processo. • Minimizar o tempo de espera. – Tempo que um processo permanece na lista de aptos. • Minimizar o tempo de resposta. – Tempo decorrido entre uma requisição e a sua realização. Aula - SO – Processos - Escalonamento –5– Prof. Luiz Alberto - Critérios de Escalonamento • Utilização de CPU • Justiça – fazer com que cada processo ganhe seu tempo justo de CPU; • Eficiência – manter a CPU ocupado o máximo de tempo possível; • Vazão (throughput) – refere-se ao número de processos concluídos por unidade de tempo; • Tempo de Retorno (turnaround) – manter a CPU ocupada 100% do tempo (se houver demanda); – é o intervalo desde o momento da submissão do processo até o momento do término do mesmo; • Tempo de Espera – é a soma dos períodos gastos aguardando na fila de espera; • Tempo de Resposta – tempo desde a submissão de uma requisição até a primeira resposta ser produzida. Aula - SO – Processos - Escalonamento –6– Prof. Luiz Alberto - Aula - SO – Processos - Escalonamento –7– Prof. Luiz Alberto - Tipos de Escalonadores de Processos Tipos de Escalonadores de Processos • Não-Preemptivos • Preemptivos – A tarefa em execução permanece no processador enquanto tiver condições de executar – Uma vez escalonado, o processo utiliza o processador até que: • Termine a sua execução • Execute uma requisição de E/S ou Sincronização • Libere voluntariamente o processador para outro processo Aula - SO – Processos - Escalonamento –8– Prof. Luiz Alberto - Algoritmos de Escalonamento • Seleciona qual processo deve executar em um determinado instante de tempo. • Os algoritmos de escalonamento buscam: – Obter bons tempos médios ao invés de maximizar ou minimizar um determinado critério. – Privilegiar a variância em relação a tempos médios. Aula - SO – Processos - Escalonamento – 10 – Prof. Luiz Alberto - – Nestes sistemas uma tarefa pode perder o processador – Uma vez escalonado, o processo utiliza o processador até que: • • • • • Termine a sua execução Execute uma requisição de E/S ou sincronização Libere voluntariamente o processador para outro processo (yield) Interrupção de relógio Um processo de mais alta prioridade esteja pronto a executar Aula - SO – Processos - Escalonamento –9– Prof. Luiz Alberto - Algoritmos de Escalonamento • Uma complicação que os escalonadores devem levar em consideração é que cada processo é único e imprevisível. • Para que um processo não execute tempo demais, praticamente todos os computadores possuem um mecanismo de relógio (clock) que causa uma interrupção periodicamente. Aula - SO – Processos - Escalonamento – 11 – Prof. Luiz Alberto - Exemplos de Algoritmos de Escalonamento • FIFO (First-In First-Out) ou FCFS (First-Come • First-Served). • SJF (Shortest Job First) ou SPN (Shortest Process Next). • SRTF (Shortest Remaining Time First). • HRRN (Highest Response Rate Next); • Round-Robin. • Priority. • Multiple queue Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - – 12 – First-Come, First-Served (FCFS) • Exempo Processo – Ordem de execução: P1, P2 e P3 – Tempo médio de espera: • tm = (0+24+27)/3 = 17 ms. Aula - SO – Processos - Escalonamento – 14 – Tempo de Execução P1 24 P2 3 P3 3 Prof. Luiz Alberto - First-Come, First-Served (FCFS) • First-Come, First-Served (FCFS) – Primeiro a chegar, primeiro a ser atendido • Algoritmo de escalonamento do tipo não-preemptivo. • O FCFS é facilmente implementado através de uma FIFO. • Processos que se tornam aptos são inseridos no final da fila. • O processo que está no início da fila é o próximo a executar. • Prejudica processos I/O-Bound. Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - – 13 – First-Come, First-Served (FCFS) • Exempo – Ordem de execução: P2, P3 e P1 – Tempo médio de espera: Processo Tempo de Execução P1 24 P2 3 P3 3 • tm = (0 + 3 + 6) / 3 = 3 ms. Aula - SO – Processos - Escalonamento – 15 – Prof. Luiz Alberto - Shortest-Job-First (SJF) Shortest-Job-First (SJF) • Shortest-Job-First (SJF) – menor tarefa primeiro • Escalonamento do tipo não-preemptivo. • Originário do fato que o menor tempo médio é obtido quando se executa primeiro os processos de menor ciclo de processador (I/OBound) • Algoritmo ótimo, isso é, fornece o menor tempo médio de espera para um conjunto de processos. • Processos I/O-Bound são favorecidos. • Dificuldade é determinar o tempo do próximo ciclo de CPU de cada processo, porém – pode ser empregado em processos batch (long term scheduler) – Prever o futuro com base no passado Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - – 16 – • Exempo Aula - SO – Processos - Escalonamento – 18 – P1 6 P2 8 P3 7 P4 3 • tm = (0 + 3 + 9 +16) / 4 = 7 ms. Aula - SO – Processos - Escalonamento – 17 – Prof. Luiz Alberto - Round-Robin (RR) • O algoritmo SJF em sua versão preemptiva é chamado de SRTF (Shortest Remaining Time First) – menor tempo restante primeiro. Processo Tempo de Tempo de Execução Chegada • Exemplo: • tm = ((10 - 1) +(1 - 1) + (17 - 2) + (5 - 3)) / 4 = 6,5 ms. Tempo de Execução – Ordem de execução:P4 , P1 , P3 e P2 – Tempo médio de espera: Shortest-Job-First (SJF) – Ordem de execução:P1 , P2 , P4 , P1 , P3 – Tempo médio de espera: Processo P1 0 8 P2 1 4 P3 2 9 P4 3 5 Prof. Luiz Alberto - • • • • • • • Round-Robin (RR) – revezamento/alternância circular Escalonamento do tipo preemptivo. Algoritmo de escalonamento similar ao FCFS. Uma unidade de tempo é definida (quantum/time slice). Um quantum geralmente é definido entre 10 a 100 ms. A fila de processos prontos é tratada como uma fila circular. Ao serem executados, os processo que necessitam de mais tempo que o quantum definido são colocados novamente na fila de prontos. Aula - SO – Processos - Escalonamento – 19 – Prof. Luiz Alberto - Round-Robin (RR) • Exempo – Quantum de 4 ms. – Ordem de execução:P1 , P2 , e P3 – Tempo médio de espera: • tm = (0 + 4 + 7 + 6) / 3 = 5,66 ms. Aula - SO – Processos - Escalonamento – 20 – Round-Robin (RR) Processo Tempo de Execução P1 24 P2 3 P3 3 Prof. Luiz Alberto - Escalonamento Baseado em Prioridades • Uma prioridade é associada a cada processo. • A CPU é alocada ao processo de mais alta prioridade. • Processos com prioridade iguais são escalonados em ordem FCFS. • O escalonamento baseado em prioridades pode ser preemptivo ou não-preemptivo. Aula - SO – Processos - Escalonamento – 22 – Prof. Luiz Alberto - • Configurar um Quantum curto demais causa muita troaca de processo e reduz a eficiência da CPU • Configurá-lo longo demais pode causar um tempo de resposta ruim para pedidos interativos curtos • Um quantum em torno de 20-50 ms freqüentemente é um compromisso razoável Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - – 21 – Escalonamento Baseado em Prioridades • O algoritmo SJF em sua versão preemptiva é chamado de SRTF (Shortest Remaining Time First) – menor tempo restante primeiro. Processo Tempo de Prioridade Execução • Exemplo: – Ordem de execução:P2 , P5 , P1 , P3 e P4 – Tempo médio de espera: • tm = (0 + 1 + 6 + 16 + 18) / 5 = 8,2 ms. Aula - SO – Processos - Escalonamento – 23 – P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Prof. Luiz Alberto - Escalonamento Baseado em Prioridades • Prioridade Estática – A prioridade é mantida durante todo o tempo de vida do processo. • Prioridade Dinâmica – A prioridade do processo é ajustada conforme o estado de execução do processo e/ou do sistema (aging). – Ajustar a prioridade em função da fração do quantum que foi realmente utilizada pelo processo. Aula - SO – Processos - Escalonamento – 24 – Prof. Luiz Alberto - Múltiplas Filas • Se as prioridades não forem ajustadas de tempos em tempos, os processos nas classes de prioridades mais baixas podem sofrer o fenômeno que chamamos starvation (o processo nunca recebe o processador, pois sua vez nunca chega). Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - Múltiplas Filas • Os processo são classificados em diferentes grupos. • Particiona a fila de processos prontos em várias filas separadas. • Um processo é associado permanentemente a uma fila geralmente baseado em alguma propriedade. • Cada fila tem seu próprio algoritmo de escalonamento. Aula - SO – Processos - Escalonamento Problemas com prioridades Prof. Luiz Alberto - • Os processo são classificados em diferentes grupos. • Particiona a fila de processos prontos em várias filas separadas. • Um processo é associado permanentemente a uma fila geralmente baseado em alguma propriedade. • Cada fila tem seu próprio algoritmo de escalonamento. Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - Múltiplas Filas Nível 1 (FIFO) Dúvidas? Usa a CPU Término Usa a CPU Término Usa a CPU Término Preempção Nível 2 (FIFO) Preempção Nível n (round robin) Preempção Aula - SO – Processos - Escalonamento Prof. Luiz Alberto - Aula - SO – Processos - Escalonamento – 29 – Prof. Luiz Alberto -