Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A05.pdfProcessos e Threads 1....
Transcript of Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A05.pdfProcessos e Threads 1....
Processos e Threads
1. Scheduling
12/16/2002 2001/2002 2
SchedulingIntrodução ao Scheduling (1)
Tempo de utilização de CPU alterna com periodos de esperapor E/S– A) um processo com longos tempos de utilização de CPU– B) um processo com longos tempos de operações de E/S
12/16/2002 2001/2002 3
Quando mudar de processo?
Nonpreemptive: (Win3.1) a aplicação devolve o controlo ao SO (por E/S ou voluntáriamente)
Preemptive: (UNIX, WinNT) SO dá e retira o controlo do sistema à aplicação
12/16/2002 2001/2002 4
Objectivos dos algoritmos de scheduling
Todos os sistemas• Fiablidade: cada processo tem uma parte igual de CPU• Cumprimento de politica: garantir que a politica de gestão é cumprida• Equilibrio: todas as partes do sistema têm de estar ocupadas
Sistemas Batch• Troughput: maximizar o número de processos por hora• Turnaround time: minimizar o tempo que um processo leva para terminar• Utilização de CPU: manter o CPU sempre ocupado
Sistemas Interactivos• Tempo de resposta: resposta aos pedidos deve ser rapida• Proporcionalidade: resposta às expectativas do utilizador
Sistemas em Tempo-Real• Cumprimento de prazos: evitar perca de dados• Predição: evitar degradação de qualidade em sistemas multimedia
12/16/2002 2001/2002 5
Scheduling em sistemas batch
First come first served (nonpreemptive)– A ordem de chegada dita a ordem em que os processos são
executadosShortest Job First (nonpreemptive)– Processo com o tempo mais curto de execução é o primeiro a ser
executadoShortest Remaining Time Next (preemptive)– Tempo restante de execução mais curto é o proximo a ser executado
Three-Level Schedulling– O scheduler é distribuido em três níveis: sistema/memoria/CPU
12/16/2002 2001/2002 6
Scheduling em sistemas batch (1)
a) Ordem original dos processosb) Processo mais curto é o primeiro a ser executado.
12/16/2002 2001/2002 7
Scheduling em sistemas batch (2)
Scheduling a três níveis: Sistema / Memoria/ CPU
12/16/2002 2001/2002 8
Scheduling em sistemas interactivos
Round-Robin Scheduling
Priority Scheduling
Multiple Queues
Shortest Process Next
Lottery Scheduling
Fair Share Sheduling
12/16/2002 2001/2002 9
Scheduling em sistemas interactivos (1)Round Robin
Round Robin Scheduling– Lista de processos prontos para serem executados– Lista de processos prontos para serem executados após o
processo B ter utilizado o seu tempo
Todos os processos são igualmente importantesConceito de quantum igual para todos os processos:
Minimizar o tempo de troca de contexto entre processos
12/16/2002 2001/2002 10
Scheduling em sistemas interactivos(2)Priority Scheduling
Algoritmo de scheduling com quatro níveis de prioridade
12/16/2002 2001/2002 11
Scheduling em sistemas em tempo-real
Tempo é essêncial !!!
Tipos de sistemas:
– Hard real-time: existem eventos essências que têm de ser processados (controlo)
– Soft real-time:certos eventos podem não ser processados sendo apenas não conveniente (comunicações)
12/16/2002 2001/2002 12
Scheduling em sistemas em tempo-real
Sabendo que:– m eventos periódicos
– evento i ocorre no intervalo Pi e requer Ci segundos
A carga de processamento pode ser processada se:
11
mi
i i
CP=
≤∑
12/16/2002 2001/2002 13
Policy versus Mechanism
Separate what is allowed to be done with how it is done– a process knows which of its children threads are important and need
priority
Scheduling algorithm parameterized– mechanism in the kernel
Parameters filled in by user processes– policy set by user process
12/16/2002 2001/2002 14
Thread SchedulingNível de Kernel
Scheduling de Threads ao níveldo Kernel
– Cada Thread depende do SO
– 1 ms para troca de contexto
– Quantums de 50 ms por processo
– Threads correm 5 ms/CPU
12/16/2002 2001/2002 15
Thread Scheduling Nível de Utilizador
Scheduling de Threads ao níveldo Utilizador
– SO fica com menos carga
– Aplicação pode ter politicaespecifica
– Quantums de 50 ms por processo
– Threads correm 5 ms/CPU