Escalonamento de Processos arliones.hoeller@ifsc.edu.br de fevereiro de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto
Gerenciamento de processos Processo É uma instância de um programa em execução É uma entidade ativa Possui contexto e estado É executado sequencialmente ada instrução executada pertence a um processo Outros nomes Job em sistemas de lote (batch systems) Tarefa (task) em sistemas com time-sharing
Estado de um Processo Estado de um processo Em execução (running) Processo cujas instruções estão sendo executadas Processo aguardando por algum evento (ex.: operação de I/O) Em espera (waiting) Pronto (ready) Processo está pronto para entrar em execução, mas precisa aguardar por um processador disponível escalona create pronto interrupção I/O completo em execução exit requisição de I/O em espera 3
ontexto de Processo ontexto de Processo Informação que permite ao SO retomar a execução de um processo Process ontrol lock (P) Estado Registradores da PU Informação de escalonamento Informação de memória Inforamção de I/O Informação de contabilização Pilha do processo
Process ontrol lock Típico 5
Troca de ontexto 6
Espaço de Endereçamento de um Processo stack 7
riação de um Processo Um processo é criado quando outro processo invoca a chamada de sistema correspondente (ex.: fork) riador = processo pai (parent) riado = processo filho (child) Recursos do filho podem ser Herdados do pai locados no SO Quem cria o primeiro processo? Forjado pelo SO na inicialização Destruição de um Processo Natural: quando um processo termina e chama exit Forçado Pelo SO quando um processo opera erroneamente Por outro processo (pai) por qualquer razão (kill) (abort) 8
Processos oncorrentes Processos oncorrentes Processos Independentes ompartilhamento de recursos (concorrência) celeração com múltiplos elementos de processamento Um prgrama sequencial em execução ontexto privado Saída depende exclusivamente da entrada Processos ooperantes Um programa paralelo em execução ontexto compartilhado Saída depende também da ordem relativa de execução 9
Multiprogramação Processamento paralelo em uma PU Processos bloqueados deixam a PU Processos prontos assumem a PU Não há processamento simultâneo (uma PU) Métricas Tempo de resposta (turnaround time) Vazão (throughput) Utilização da PU
Multiprogramação SEM multiprogramação P PU I/O PU I/O 3 PU PU P 5 tempo = tu vazão =. proc/tu I/O 6 PU 7 I/O 8 PU 9 tempo médio de resposta = 7.5 tu utilização da PU = 6% OM multiprogramação P P PU I/O PU PU I/O I/O 3 PU tempo = 6 tu vazão =.33 proc/tu PU I/O 5 PU 6 tempo médio de resposta = 5.5 tu utilização da PU = %
Threads Também chamados de processos leves (lightweight) aixo custo de criação execução ocorre dentro de um processo (task) ompartilha código, dados e recursos da task Possui sua própria pilha Processo tradicional = task + thread
Threads Também chamados de processos leves (lightweight) aixo custo de criação execução ocorre dentro de um processo (task) ompartilha código, dados e recursos da task Possui sua própria pilha Processo tradicional = task + thread 3
Estruturas de Escalonamento de Processos Filas de prontos (ready) e E/S ready P P disk P P P3 disk Diagrama de filas do sistema ready queue I/O PU I/O queue I/O req. time event event queue wait
Escalonadores de Processos Escalonador de curto prazo (PU) Seleciona processos da fila de prontos Executa frequentemente precisa ser muito eficiente Escalonador de longo prazo (jobs) Seleciona processos autorizados a executar ontrole de admissão de processos Tenta balancear processos I/O-bound e PU-bound 5
Escalonadores de Processos Escalonador de médio prazo (swapper) Suspende processos temporariamente Para manter balanço entre o uso de E/S Devido ao esgotamento de memória swap in swap disk e PU swap out ready queue I/O PU I/O queue I/O request time event event queue wait 6
Escalonamento Preemptivo e Não-Preemptivo Os seguintes eventos modificam o estado de um processo e são observados pelo escalonador: - Novo processo no sistema - Muda seu estado de executando para em espera 3 - Muda seu estado de executando para pronto - Muda seu estado de em espera para pronto 5 - Termina ready 3 running 5 waiting 7
ritérios para escalonamento de processos Maximizar utilização da PU Maximizar vazão do sistema (processos/tempo) Minimizar tempo de resposta (tempo total) Minimizar tempo de espera dos processos Minimizar e/ou estabilizar tempo de resposta ao usuário 8
Políticas de Escalonamento de Processos First-ome First-Served (FFS) Shortest Job First Prioridade Estática Prioridade Dinâmica Round-Robin Fila Multinível E milhares de outros... 9
First ome First Served (FFS) Política Desempenho Fila de prontos (ready) utiliza política FIFO Processos novos inseridos no final Não-preemptivo Extremamente pobre quando um processo PU-bound bloqueia um processo I/O-bound Exemplo Process PU time rrival time 9 8 D 5 9 3 D 6 Tempo médio de resposta (TMR) = (9 + 3 + + 6) / = 7.5 tu Tempo médio de espera (TME) = ( + 9 + 3 + ) / =.75 tu
Shortest Job First (SJF) Política Processo que utilizará menos PU é executado antes Preemptivo ou não-preemptivo Desempenho lgoritmo ótimo em termos de tempo médio de resposta e tempo médio de espera a b c d TMR = (a + (a+b) + (a+b+c) +(a+b+c+d)) / = (a + 3b + c + d) / tu TME = ( + a + (a+b) + (a+b+c)) / = (3a + b + c) / tu Útil para processos cujos tempos máximos de execução são conhecidos
Shortest Job First (SJF) Exemplo Process PU time rrival time NP 9 8 D 5 3 9 D 3 8 6 TMR = (9 + + + 5) / = 5 tu TME = ( + 8 + 6 + ) / = 8.5 tu P D 5 8 6 TMR = (8 + + + 7) / = 3,5 tu TME = (9 + + 6 + ) / = 6.75 tu
SJF pproximation Política Estima tempo futuro baseado no passado recente Processos que têm tido menor tempo de PU é executado antes Fórmula p i=estimativa no momento i a=fator de relevância do passado p i=último tempo de execução do processo p i+=a p i+( a) p i Exemplo (a = /) Process p TMR = ( + 3 + 36) / 3 = 9.3 tu TME= ( + 8 + ) / 3 = 7.3 tu 6 6 t p t p t p 3 6 3 6 3 3 6 3 3 3 36 3
Prioridade Política Processo com maior prioridade é executado antes Proridades podem ser estáticas ou dinâmicas Preemptivo ou não-preemptivo Processos podem nunca ser executados Processos de baixa prioridade só executam quando processos com prioridade maior estão em espera Típico em sistemas de tempo real
Prioridade Estática Example Process PU time Priority rrival time NP 3 8 3 D 5 3 3 D 3 8 TMR = ( + 9 + + 5) / = 9.5 tu TME = ( + + 8 + ) / =.75 tu P 9 3 D 8 TMR = (3 + 8 + + 5) / =.5 tu TME = ( + + 7 + ) / = 7 tu 5
Round-Robin Política Processos são re-escalonados periodicamente baseados num quantum de tempo Fila circular FIFO Preemptivo Fórmula Para um dado conjunto de processos com n elementos e um quantum q: ada processo recebe /n de PU em ciclos não maiores que q unidades de tempo Tempo máximo de espera = (n ) x q Típico em sistemas com time-sharing 6
Round-Robin Exemplo (q = 5 tu) Process PU time rrival time 8 5 D 6 7 9 5 3 D 8 3 D 6 TMR = (3 + 6 + 5 + ) / =.5 tu TME = (5 + + 9 + 5) / = 5 tu 7
Fila Multinível Política Processos são agrupados Ex.: sistema, interativos, batch ada grupo tem sua própria fila sob uma política específica Processos podem trocar de grupos system processes interactive administrative processes interactive academic processes batch processes students processes 8
Exercícios alcule o tempo médio de resposta e o tempo médio de espera do sistema considerando o algoritmo SJF approximation. Processo p t p t p t p 3 6 9 Processo t t 6 9
Exercícios alcule o tempo médio de resposta e o tempo médio de espera do sistema considerando o Round-Robin com o quantum = 3; Processo Tempo de PU 3 hegada(tempo) 3 D 8 5 5 3