Escolar Documentos
Profissional Documentos
Cultura Documentos
Escalonamento Processos IFSP PDF
Escalonamento Processos IFSP PDF
Escalonamento de Processo
Comportamento do processo
a)
b)
Quando escalonar
- Clock da CPU;
- Interrupções de I/O;
- Chamadas do sistema operacional;
Ex:. Para prover um bom tempo de resposta, pode exigir do algoritmo de escalonamento
que freqüentemente troque o contexto entre processos, o que aumenta o overhead do
sistema, ou seja, contribui para reduzir a vazão dos processos.
Em muitos sistemas, cada processo é atribuído uma prioridade e o escalonador irá sempre
escolher com mais alta prioridade sobre o de menor prioridade;
1. Lote;
3. Tempo real;
Sistemas em lote:
- Vazão (Througput): Maximizar o número de jobs por hora;
- Tempo de retorno: Minimizar o tempo de entre a submissão e o término
da execução;
- Utilização da CPU: manter a CPU ocupada todo o tempo;
Sistemas interativos:
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
Primeiro a chegar, primeiro a ser servido
8 4 4 4 4 4 4 8
A B C D B C D A
Tempo de retorno:
A = 8;
B = 12;
C = 16;
D = 20 ;
Tempo médio
(A + B + C + D) / 4
Exemplo. Considere a tabela abaixo.
P1 0 3
P2 2 6
P3 4 4
P4 6 5
P5 8 2
Vamos supor que para cada processo, a troca de contexto dure 1ms.
Suponha também que o quantum é de 4 ms. Com este exemplo, após 4 ms
de trabalho, a CPU gastará 1 ms para alternar o processo;
Nesse exemplo, 20% da CPU será gasta com a troca de contexto dos
processos gerando um overhead muito alto.
P2 2 6
P3 4 4
P4 6 5
P5 8 2
Escalonamento por prioridades
P2 2 6
P3 4 4
P4 6 5
P5 8 2
Medidas de Desempenho dos algoritmos de escalonamento
Determine as medidas de tempo para os algoritmos abaixo:
Em cada classe, os processos podem ser ainda subdivididos em I/O bound ou CPU
bound de acordo com a proporção de tempo que ficam esperando por operações de
entrada e saída ou utilizando o processador.
As prioridades dos processos podem ser modificadas pelo usuário, utilizando o comando
nice. As prioridades dos processos variam entre 20 e -19, sendo esta a prioridade mais
alta.
Escalonamento utilizado pelo sistema operacional Linux
- A primeira é a forma direta através de uma chamada explícita à rotina que implementa
o escalonador. Essa é a maneira utilizada pelo núcleo do Linux quando, por exemplo,
detecta que um processo deverá ser bloqueado em decorrência de uma operação de
entrada e saída ou de sincronização.
Cada classe possui 16 níveis de prioridades, sendo que as threads da classe tempo real
têm precedência sobre as threads da classe variável, isto é, sempre que não houver
processador disponível, uma thread de classe variável é preemptada em favor de uma
thread da classe tempo real.
Todas as threads prontas para executar são mantidas em estruturas de filas associadas
a prioridades em cada uma das classes. Cada fila é atendida por uma política Round-
robin.
A atribuição de prioridades a threads é diferente para cada uma das classes. Enquanto
na classe de tempo real, as threads possuem prioridade fixa, determinada no momento
de sua criação, as threads da classe variável têm suas prioridades atribuídas de forma
dinâmica (por isso o nome de “variável” para essa classe).
Escalonamento utilizado pelo sistema operacional Windows
2000
Dessa forma, uma thread de tempo real, quando criada, recebe uma prioridade e será
sempre inserida na fila dessa prioridade, ao passo que uma thread da classe variável
poderá migrar entre as diferentes filas de prioridades.
Um objeto processo, durante sua criação, recebe um valor, entre zero e 15 inclusive,
para sua prioridade de base. Cada thread recebe uma prioridade inicial, variando 2
unidades acima ou abaixo da prioridade de base do processo, que indica sua prioridade
relativa dentro desse processo.
A prioridade de uma thread varia durante a sua vida, mas nunca assumirá valores
inferiores a sua prioridade base nem superiores a 15. O critério empregado para variar a
prioridade de uma thread é o tempo de utilização do processador.
Se a thread for preemptada por ter executado durante todo o quantum de tempo que lhe
foi atribuído, o escalonador do Windows 2000 diminui sua prioridade; caso contrário, sua
prioridade é aumentada. Em outros termos, o escalonador do Windows 2000 tende a
atribuir prioridades mais elevadas para threads do tipo I/O bound.
Escalonamento utilizado pelo sistema operacional Windows
2000