Вы находитесь на странице: 1из 37

Escalonamento de Processos

Mtodos de escalonamento de processos em Sistemas Operacionais

Parte I - Fundamentos
Tipos de SO Interrupo Tipos de Processos Filas de Escalonamento Tipos de Escalonamento

O que um Sistema Operacional?


uma mquina estendida
Oculta os detalhes complicados que tm quer ser executados Apresenta ao usurio uma mquina virtual, mais fcil de usar

um gerenciador de recurso (ex. CPU)


Cada programa tem um tempo com o recurso Cada programa tem um espao no recurso

Conceitos Bsicos

Tipos de S.O.
Monotarefa Multitarefa Monousurio Multiusurio

Como evitar que um processo monopolize o sistema? Sistemas de tempo compartilhado (Time Sharing Systems) Permite sistemas interativos (entrada/sada) Requer temporizadores (timers) Interrupes

Conceitos Bsicos: Tipos de S.O.

Multiprocessamento
O ndice do processo contm o apontador para a lista de processos PC (Program Counter) = contador de programas Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU
Memria
...

Regs da CPU nd. Processo

Lista de proc.

PC Base Limite Outros regs

... ...

Contexto

Proc. A.

Dados Cdigo

Contexto Dados

Proc. B.

Cdigo

Conceitos Bsicos: Tipos de S.O.


O que necessrio para haver multiprocessamento?

Suporte do Hardware
Temporizadores (timers) Interrupes Proteo de memria

Suporte do S.O.
Escalonamento dos processos Alocao de memria Gerenciamento dos perifricos

Conceitos Bsicos:

A importncia da Interrupo
Num sistema simples, CPU deve esperar a execuo do comando de E/S
A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando.

Ex: escrita em disco

Conceitos Bsicos:

A importncia da Interrupo
Um sistema com interrupo no fica esperando
A CPU solicita o write e fica executando outras tarefas at ser interrompida pelo disco.

Ex: escrita em disco

Conceitos Bsicos

Operao Bsica da CPU


Incrementa PC Incrementa PC Busca instruo Busca instruo e dados e dados Executa a instruo Executa a instruo Com interrupo No Interrupo? Sim 1) Pra o processo atual 1) Pra o processo atual 2) Salta p/ rotina de interrupo 2) Salta p/ rotina de interrupo

Conceitos Bsicos

Interrupo do Programa

Conceitos Bsicos

Processo de Interrupo
Dispositivo pede interrupo Salva resto da Informao do contexto do processo

Hardware

Processador salva PSW e PC na pilha de controle

Processa rotina de Interrupo

Processador carrega novo valor do PC baseado na interrupo

Restaura Informao do estado do processo em execuo antes da interrupo

Software

*PSW = Program Status Word *PC = Program Counter

Restaura PSW e PC do processo em execuo antes da interrupo

Conceitos Bsicos: Tipos de S.O.

Como identificar e tratar erros?


Uso de excees
Interrupes causadas por: Diviso por zero Erro de cdigo de instruo Acesso indevido memria Acesso indevido a dispositivos de E/S ...

Processos X Threads
Tipos de sistemas
1 processo com 1 thread: MSDOS N processos, cada um com 1 thread: OS/386, VAX/VMS, Windows 3.1, UNIX antigo 1 processo com N threads: kernels para sistemas embarcados N processos, cada um com N threads: Windows 95/98,NT, UNIX

Escalonamento de Processos

Tipos de Processos
CPU-bound:
Se o processo gasta a maior parte do seu tempo usando a CPU ele dito orientado computao (compute-bound ou CPU-bound) processos com longos tempos de execuo e baixo volume de comunicao entre processos
ex: aplicaes cientficas, engenharia e outras aplicaes que demandam alto desempenho de computao

I/O-bound:
Se um processo passa a maior parte do tempo esperando por dispositivos de E/S, diz-se que o processo orientado E/S (I/Obound)

processos I/O-bound devem ter prioridade sobre processos CPUbound Batch (lote) x Interativos

Escalonamento

Tipos de Processos

Surtos de uso da CPU se alternam com perodos de espera por E/S tipos de processo:
a) orientado CPU (CPU-bound) b) orientado E/S (I/O-bound)

Escalonamento de processos
Quando um ou mais processos esto prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro A parte do sistema operacional responsvel por essa deciso chamada escalonador, e o algoritmo usado para tal chamado de algoritmo de escalonamento

Escalonamento de Processos

Abstrao
Uma mquina para cada processo Paralelismo real
P1
T11

T12

P2
T0

P3 P3

T22

Escalonamento de Processos

Realidade

Compartilhamento do tempo Pseudo-paralelismo

P1 1

T11

T12

T0

T22

T0

41 51

70

90

121

Filas de Escalonamento
High-level
Decide quantos programas so admitidos no sistema Aloca memria e cria um processo Controla a long-term queue

Short-term
Decide qual processo deve ser executado Controla a short-term queue

I/O
Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O Controla a I/O queue

Filas de Escalonamento
Short-term scheduling
Process request Longterm queue Shortterm queue FIM

CPU
I/O queue I/O queue I/O queue

High-level scheduling
Interrupt of process Interrupt from I/O

I/O I/O

I/O scheduling

Interrupt Handler

I/O

Exemplo
Sist. Operacional Contr. Servios Escalonador contr. interrupo A Rodando Execu Sist. Operacional -tando Contr. Servios Escalonador contr. interrupo A Bloqueado Sist. Operacional Contr. Servios Escalonador contr. interrupo A Bloqueado

Processo A parou. Por que? Req. servio ao S.O. Interrupo de A Ex. erro Interrupo de outra fonte. Ex. I/O Tempo acabou

Executando

B Pronto

B Pronto

B Rodando Executando Outros processos

Outros processos

Outros processos

tempo

Caractersticas de Escalonamento
Justia (fairness)
Todos os processos tm chances iguais de uso dos processador

Eficincia
Taxa de ocupao do processador ao longo do tempo

Tempo de Resposta
Tempo entre a ocorrncia de um evento e o termino da ao correspondente

Turnaround
Tempo de resposta para usurios em batch Minimizar o tempo que usurios batch devem esperar pelo resultado

Throughput
No. de jobs (processos) executados por unidade de tempo

Objetivos do algoritmo de escalonamento

Tipos de Escalonamento
Mecanismos de Escalonamento
Preemptivo x No-preemptivo Se diz que um algoritmo/sistema operacional preemptivo quando um processo entra na CPU e o mesmo pode ser retirado da CPU antes do trmino da sua execuo

Polticas de Escalonamento
Round-Robin FIFO (First-In First-Out) Hbridos
Parties de Lote (Batch) MFQ - Multiple Feedback Queue

SJF Shortest Job First SRJN Shortest Remaining Job Next

Escalonamento

Preemptivo

Permite a suspenso temporria de processos Quantum ou time-slice: perodo de tempo durante o qual um processo usa o processador a cada vez Preempo
T12

P1 1

T11

T0

T22

T0

41 51

70

90

121

Problema das trocas de processos


Mudar de um processo para outro requer um certo tempo para a administrao salvar e carregar registradores e mapas de memria, atualizar tabelas e listas do SO, etc Isto se chama troca de contexto Suponha que esta troca dure 5 ms Suponha tambm que o quantum est ajustado em 20 ms Com esses parmetros, aps fazer 20 ms de trabalho til, a CPU ter que gastar 5 ms com troca de contexto. Assim, 20% do tempo de CPU (5 ms a cada 25 ms) gasto com o overhead administrativo...

Soluo?
Para melhorar a eficincia da CPU, poderamos ajustar o quantum para 500 ms
Agora o tempo gasto com troca de contexto menos do que 1% desprezvel...

Considere o que aconteceria se dez usurios apertassem a tecla <ENTER> exatamente ao mesmo tempo, disparando cada um processo:
Dez processos sero colocados na lista de processo aptos a executar Se a CPU estiver ociosa, o primeiro comear imediatamente, o segundo no comear cerca de segundo depois, e assim por diante O azarado do ltimo processo somente comear a executar 5 segundos depois do usurio ter apertado <ENTER>, isto se todos os outros processos tiverem utilizado todo o seu quantum Muitos usurios vo achar que o tempo de resposta de 5 segundos para um comando simples muita coisa

Moral da estria
Ajustar um quantum muito pequeno causa muitas trocas de contexto e diminui a eficincia da CPU, ... mas ajust-lo para um valor muito alto causa um tempo de resposta inaceitvel para pequenas tarefas interativas
Quantum grande: Diminui nmero de mudanas de contexto e overhead do S.O. X Ruim para processos interativos

Escalonamento Parte II
Algoritmos

Polticas de Escalonamento

Round-Robin FIFO Hbrido SJF SRJN

Round-Robin

Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos

CPU:Runni CPU:Runni ng Tar. A ng


Contexto Tar. A Tar. A Contexto Contexto Tar. B Tar. B Contexto Contexto Tar. C Tar. C Contexto Contexto
Tar. A Tar. A Contexto Contexto

Polticas de Escalonamento

Round-Robin FIFO Hbrido SJF SRJN

First-In First-Out (FIFO)


Uso de uma lista de processos sem prioridade Escalonamento no-preemptivo Simples e justo Bom para sistemas em batch (lote)

CPU CPU A
FIM

B B

C C

D D

E E

F F

N N

Polticas de Escalonamento

Round-Robin FIFO Hbrido SJF SRJN

Hbridos

Parties de Lote (Batch) MFQ - Multiple Feedback Queue

Como combinar processos batch com interativos? Uso de Parties de Lote (batch)
O sistema aceita tantos processos batch quantas forem as parties de lote O sistema aceita todos os processos interativos Escalonamento em dois nveis

Segue...

Escalonamentos Hbridos

Round-Robin FIFO Hbrido SJF SRJN

Parties de Lote
Memria
Processos interativos so ativados imediatamente

Processos Interativos

Processos batch esperam a liberao do lote Partio de Lote

B B

C C

D D

E E

F F

Escalonamentos Hbridos

Round-Robin FIFO Hbrido SJF SRJN

Multiple Feedback Queue


Como saber a priori se o processo CPU-bound ou I/O-bound? MFQ usa abordagem de prioridades dinmicas Adaptao baseada no comportamento de cada processo Usado no VAX / VMS

Segue

Escalonamentos Hbridos

Round-Robin FIFO Hbrido SJF SRJN

Multiple Feedback Queue


Novos processos entram na primeira fila (prioridade mais alta) Se acabar o quantum desce um nvel Se requisitar E/S sobe um nvel
Lembrando: I/O-bound so prioritrios

... ... ...

Fila 1 Fila 2

Q u a n t u m

Fila n

P r i o r i d a d e

Escalonamentos baseados no tempo de execuo


Shortest Job First (no-preemptivo) Shortest Remaining Job Next (preemptivo)

Round-Robin FIFO Hbrido SJF SRJN

Melhora o tempo de resposta No justo: pode causar estagnao (starvation)


Pode ser resolvida alterando a prioridade dinamicamente

Exemplo de escalonamento job mais curto primeiro (Shortest Job First SJF)

Concluses
Como funcionam dois ou mais programas ao mesmo tempo?

Conceitos
Processos x Threads (processos leves)

Escalonamento (cont.)
Objetivos
Justia Eficincia Tempo de Resposta

Interrupo
Cooperao hardwaresoftware

Conceitos
Preempo Quantum (time-slice) Troca de contexto

Escalonamento
Tipos de processos
CPU-bound x I/O-bound Lote (batch) x interativo

Algoritmos
Propsito x Complexidade x Eficincia

Filas de escalonamento
Long-term (admisso) Short-term I/O