Você está na página 1de 34

Universidade de So Paulo Instituto de Cincias Matemticas e de Computao Departamento de Sistemas de Computao

SSC 140 - SISTEMAS OPERACIONAIS I


Turmas A e B

Aulas 5 Algoritmos para Escalonamento de Processos


Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos Jos Santana
Slides adaptados de Luciana A. F. Martimiano baseados nos livros Sistemas Operacionais Modernos de A. Tanenbaum

Processos
Introduo Escalonamento de Processos


Algoritmos de Escalonamento

Comunicao entre Processos Threads Deadlock


2

Processos
Escalonamento de Processos


Algoritmos de Escalonamento
Batch Interativo Tempo Real

Escalonamento de Processos Sistemas em Batch


Algoritmos para Sistemas em Batch:


Trs nveis First-Come First-Served (ou FIFO); Shortest Job First (SJF); Shortest Remaining Time Next (SRTN);
4

Escalonamento de Processos Sistemas em Batch


Escalonamento Trs Nveis
CPU Escalonador da CPU * Fila de entrada RAM Novo job Escalonador de Admisso Escalonador Da Memria
5

Disco

Escalonamento de Processos Sistemas em Batch


Escalonamento Three-Level


Escalonador de admisso: decide qual job ser admitido no sistema. Por exemplo, uma mescla de jobs orientados a CPU e orientados E/S; processos com menor tempo de acesso CPU e maior tempo de interao com dispositivos de E/S; Escalonador da Memria: decises sobre quais processos vo para a MP:
A quanto tempo o processo est esperando? Quanto tempo da CPU o processo j utilizou? Qual o tamanho do processo? Qual a importncia do processo?

Escalonador da CPU: seleciona qual o prximo processo a ser executado;


6

Escalonamento de Processos Sistemas em Batch


Algoritmo First-Come First-Served
   

No-preemptivo; Processos so executados na CPU seguindo a ordem de requisio; Fcil de entender e programar; Desvantagem:
Ineficiente quando se tem processos que demoram na sua execuo;

Escalonamento de Processos Sistemas em Batch


Algoritmo First-Come First-Served
CPU Fila de entrada
3 2 1

Interrupo qualquer (semforo, E/S)

Escalonamento de Processos Sistemas em Batch


Algoritmo First-Come First-Served
CPU Fila de entrada
0 3 2

CPU no controla o tempo dos processos! (no-preemptivo)


9

Escalonamento de Processos Sistemas em Batch


Algoritmo Shortest Job First
    

No-preemptivo; Possvel prever o tempo de execuo do processo; Menor processo executado primeiro; Menor turnaround; Desvantagem:
Baixo aproveitamento quando se tem poucos processos prontos para serem executados;

Escalonamento de Processos Sistemas em Batch


Algoritmo Shortest Job First
A a B b+a C c+b+a D d+c+b+a __________________________________ Tempo mdio-turnaround (4a+3b+2c+d)/4 Contribuio se a<b<c<d tem-se o mnimo tempo mdio;

11

Escalonamento de Processos Sistemas em Batch


Algoritmo Shortest Job First
8 A 4 B 4 C 4 D 4 B 4 C 4 D 8 A

Em ordem: Turnaround A = 8 Turnaround B = 12 Turnaround C = 16 Turnaround D = 20 Mdia 56/4 = 14

Menor job primeiro: Turnaround B = 4 Turnaround C = 8 Turnaround D = 12 Turnaround A = 20 Mdia 44/4 = 11 Nmero de Processos
12

(4a+3b+2c+d)/4

Escalonamento de Processos Sistemas em Batch


Algoritmo Shortest Remaining Time Next
  

Preemptivo; Processos com menor tempo de execuo so executados primeiro; Se um processo novo chega e seu tempo de execuo menor do que do processo corrente na CPU, a CPU suspende o processo corrente e executa o processo que acabou de chegar; Desvantagem: processos que consomem mais tempo podem demorar muito para serem finalizados se muitos processos pequenos chegarem!

13

Escalonamento de Processos Sistemas Interativos


Algoritmos para Sistemas Interativos:
      

Round-Robin; Prioridade; Mltiplas Filas; Shortest Process Next; Garantido; Lottery; Fair-Share;

Utilizam escalonamento em dois nveis (escalonador da CPU e memria);

14

Escalonamento de Processos Sistemas Interativos


Algoritmo Round-Robin
  

Antigo, mais simples e mais utilizado; Preemptivo; Cada processo recebe um tempo de execuo chamado quantum; ao final desse tempo, o processo suspenso e outro processo colocado em execuo; Escalonador mantm uma lista de processos prontos;

15

Escalonamento de Processos Sistemas Interativos


Algoritmo Round-Robin
Processo corrente Fila de prontos
B F D G A

Fila de prontos
F D G A B

Processo Prximo corrente Processo

Lista aps B utilizar seu quantum

16

Escalonamento de Processos Sistemas Interativos


Algoritmo Round-Robin
Tempo de chaveamento de processos;  quantum: se for muito pequeno, ocorrem muitas trocas diminuindo, assim, a eficincia da CPU; se for muito longo o tempo de resposta comprometido;


17

Escalonamento de Processos Sistemas Interativos


Algoritmo Round-Robin:
Exemplos: (t = 4 mseg x = 1mseg eficincia (t = 100 mseg x = 1mseg quantum 25% de tempo de CPU perdido menor

1% de tempo de CPU perdido Tempo de espera dos chaveamento processos maior quantum razovel: 20-50 mseg

18

Escalonamento de Processos Sistemas Interativos


Algoritmo com Prioridades


  

Cada processo possui uma prioridade os processos prontos com maior prioridade so executados primeiro; Prioridades so atribudas dinmica ou estaticamente; Classes de processos com mesma prioridade; Preemptivo;

19

Escalonamento de Processos Sistemas Interativos


Algoritmo com Prioridades

FILAS 4 3 2 1 processos prontos (Round-Robin)

mais alta prioridade mais baixa

20

Escalonamento de Processos Sistemas Interativos


Exemplo - Silberschatz

21

Escalonamento de Processos Sistemas Interativos


Algoritmo com Prioridades


Como evitar que os processos com maior prioridade sejam executado indefinidamente?
Diminuir a prioridade do processo corrente a cada interrupo do relgio e troc-lo pelo prximo processo assim que sua prioridade caia abaixo da prioridade do prximo processo com prioridade mais alta (chaveamento); Atribuir um quantum mximo no qual o processo pode executar;

22

Escalonamento de Processos Sistemas Interativos


Mltiplas Filas:
   

CTSS (Compatible Time Sharing System); Classes de prioridades; Preemptivo; Cada classe de prioridades possui quanta diferentes;

23

Escalonamento de Processos Sistemas Interativos


Mltiplas Filas:


Assim, a cada vez que um processo executado e suspenso ele recebe mais tempo para execuo mas passa para uma fila com menor prioridade de execuo

24

Escalonamento de Processos Sistemas Interativos


Mltiplas Filas:


Ex.: um processo precisa de 100 quanta para ser executado;


Inicialmente, ele recebe um quantum para execuo; Das prximas vezes ele recebe, respectivamente, 2, 4, 8, 16, 32 e 64 quanta (7 chaveamentos) para execuo;

25

Escalonamento de Processos Sistemas Interativo


Algoritmo Shortest Process Next
  

Mesma idia do Shortest Job First; Processos Interativos: no se conhece o tempo necessrio para execuo; Soluo: realizar uma estimativa com base no comportamento passado e executar o processo cujo tempo de execuo estimado seja o menor;

26

Escalonamento de Processos Sistemas Interativo


Algoritmo Garantido:
 

Garantias so dadas aos processos dos usurios Exemplo: n processos 1/n do tempo de CPU para cada processo; Deve ser mantida taxa de utilizao de cada processo Tem prioridade o que estiver mais distante do prometido

Difcil de implementar
27

Escalonamento de Processos Sistemas Interativo


Algoritmo por Loteria:
   

Cada processo recebe tickets que lhe do direito de execuo; A cada troca de processo um tickets sorteado O dono do tickets sorteado recebe o direito de ocupar a CPU Possvel definir prioridade entre os processos por meio do nmero de tickets atribudo a cada processo Fcil de implementar e de adaptar
28

Escalonamento de Processos Sistemas Interativo


Algoritmo por Frao Justa (Fair-Share):


O escalonamento feito considerando o dono dos processos Cada usurio recebe uma frao da CPU e processos so escalonados visando garantir essa frao Se um usurio A possui mais processos que um usurio B e os dois tm a mesma prioridade, os processos de A demoraro mais que os do B
29

Escalonamento de Processos Sistemas em Tempo Real


Tempo um fator crtico; Sistemas crticos:
    

Avies; Hospitais; Usinas Nucleares; Bancos; Multimdia;

Ponto importante: obter respostas em atraso to ruim quanto no obter respostas;

30

Escalonamento de Processos Sistemas em Tempo Real


Tipos de STR:
 

Hard Real Time: atrasos no so tolerados;


Avies, usinas nucleares, hospitais;

Soft Real Time: atrasos so tolerados;


Bancos; Multimdia;

Programas so divididos em vrios processos; Eventos causam a execuo de processos:


 

Peridicos: ocorrem em intervalos regulares de tempo; Aperidicos: ocorrem em intervalos irregulares de tempo;

31

Escalonamento de Processos Sistemas em Tempo Real


Algoritmos podem ser estticos ou dinmicos;


Estticos: decises de escalonamento antes do sistema comear;


Informao disponvel previamente;

Dinmicos: decises de escalonamento em tempo de execuo;

32

Processos Para casa....


Verificar todos os exerccios envolvendo escalonamento de processos do livro do Tanenbaum e resolver Em particular, resolva exerccio que pede para determinar a eficincia de algoritmos em funo de Q, S, e T.

33

Processos Prxima aula


Introduo Escalonamento de Processos Comunicao entre Processos Threads Deadlock

34