You are on page 1of 73

Sistemas Operacionais

Gerncia do processador

2a edio Captulo 4
Reviso: Fev/2003
Sumrio

Implementao do conceito de processos e threads


Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 2
Introduo

Multiprogramao pressupe a existncia simultnea de vrios


processos disputando o processador
Necessidade de intermediar esta disputa de forma justa
Gerncia do processador
! Algoritmos de escalonamento

Necessidade de representar um processo


Instituto de Informtica - UFRGS

Implementao de processos
! Estruturas de dados
Oliveira, Carissimi, Toscani

Sistemas Operacionais 3
Representao de processo

Processo um programa em execuo


reas na memria para cdigo, dados e pilha
Possui uma srie de estados (apto, executando, bloqueado, etc)
para representar sua evoluo no tempo, implica em:
Organizar os processos nos diferentes estados
Determinar eventos que realizam a transio entre os estados
Instituto de Informtica - UFRGS

Determinar quando um processo tem direito a utilizar o processador


Necessrio manter informaes a respeito do processo
Oliveira, Carissimi, Toscani

e.g.: prioridades, localizao em memria, estado atual, direitos de acesso,


recursos que emprega, etc.

Sistemas Operacionais 4
Bloco descritor de processo

Abstrao de processo implementado atravs de uma estrutura de


dados
Bloco descritor de processos (Process Control Block - PCB)
Informaes normalmente presentes em um descritor de processo
Prioridade
Localizao e tamanho na memria principal
Instituto de Informtica - UFRGS

Identificao de arquivos abertos


Informaes de contabilidade (tempo CPU, espao de memria, etc)
Estado do processador (apto, executando, bloqueando, etc)
Oliveira, Carissimi, Toscani

Contexto de execuo
Apontadores para encadeamento dos prprios descritores de processo
etc

Sistemas Operacionais 5
Os processos e as filas

Um processo sempre faz parte de alguma


fila
Geralmente a prpria estrutura de livres
descritores de processos so empregadas 0
como elementos dessas filas:
Fila de livres Aptos
4 Bloqueado
! Nmero fixo (mximo) de processos
Instituto de Informtica - UFRGS

1 2
! Alocao dinmica
3

Fila de aptos Executando


5
Fila de bloqueados
Oliveira, Carissimi, Toscani

Eventos realizam transio de uma fila a


outra

Sistemas Operacionais 6
Exemplo de bloco descritor de processos (1)

Estrutura de dados representado bloco descritor de processo


struct desc_proc{
char estado_atual;
int prioridade;
unsigned inicio_memoria;
unsigned tamanho_mem;
struct arquivos arquivos_abertos[20];
Instituto de Informtica - UFRGS

unsigned tempo_cpu;
unsigned proc_pc;
unsigned proc_sp;
unsigned proc_acc;
Oliveira, Carissimi, Toscani

unsigned proc_rx;
struct desc_proc *proximo;
}

struct desc_proc tab_desc[MAX_PROCESS];

Sistemas Operacionais 7
Exemplo de bloco descritor de processos (2)

Estruturas de filas e inicializao


struct desc_proc *desc_livre;
struct desc_proc *espera_cpu;
struct desc_proc *usando_cpu;
struct desc_proc *bloqueados;

/* Inicializao das estruturas de controle */


Instituto de Informtica - UFRGS

for (i=0; i < MAX_PROCESS; i++)


tab_desc[i].prox = &tab_desc[i+1];
Oliveira, Carissimi, Toscani

tab_desc[i].prox = NULL;
desc_livre = &tab_desc[0];

espera_cpu= NULL;
usando_cpu= NULL;
bloqueado = NULL;

Sistemas Operacionais 8
Tarefas tpicas no PCB durante o ciclo de vida

Criao
Alocao de reas de memria para cdigo, dados e pilha e de estruturas de
dados do sistema operacional
Inicializao do descritor de processo e insero em filas do sistema
Execuo
Realizam das instrues da rea de cdigo
Instituto de Informtica - UFRGS

! Interao com sistema operacional via chamadas de sistema

Atualizao do bloco descritor de processo


! Retratar estados e recursos que evoluem dinamicamente com a execuo
Oliveira, Carissimi, Toscani

Suscetvel ao acionamento do escalonador/dispatcher em resposta a eventos


Trmino
Liberao de recursos e estruturas de dados utilizadas

Sistemas Operacionais 9
O modelo de processo

Processo representado por:


Espao de endereamento: rea p/ armazenamento da imagem do processo
Estruturas internos do sistema (tabelas internas, reas de memria, etc)
! Mantidos no descritor de processos

Contexto de execuo (pilha, programa, dados, etc...)


Instituto de Informtica - UFRGS

Processo

SP Pilha PC Cdigo Dados


Oliveira, Carissimi, Toscani

Espao de
usurio

Espao de Dados Pilha


sistema

Sistemas Operacionais 10
Exemplo: modelo de processo Unix (linux)

rea dados (sisop) 0xFFFFFFFF

Stack Pointer Pilha


(SP)

4 Gbytes Heap
Instituto de Informtica - UFRGS

BSS Dados no inicializados


Data Dados inicializados
Oliveira, Carissimi, Toscani

Program Counter
(PC) Texto Cdigo

0x0000000

Sistemas Operacionais 11
Vrios processos

Um fluxo de controle por processo (thread)


Troca de processo implica em atualizar estruturas de dados internas
do sistema operacional
e.g.; contexto, espao de endereamento, etc...
Instituto de Informtica - UFRGS

Processo 1 Processo n

Espao de
usurio SP
Pilha PC Cdigo Dados
... SP Pilha
PC
Cdigo Dados
Oliveira, Carissimi, Toscani

Espao de Dados Pilha Dados Pilha


sistema

Sistemas Operacionais 12
Vrios fluxos em um nico processo

Um fluxo de instruo implementado


atravs do contador de programa (PC) e
de uma pilha (SP)
Estruturas comuns compartilhadas
Processo 1
Cdigo
SP1
Dados Pilha PC2 Cdigo Dados
Descritor de processo SP2
Instituto de Informtica - UFRGS

PC1
Conceito de thread Espao de SP3
usurio PC3
Oliveira, Carissimi, Toscani

Espao de Dados Pilha


sistema

Sistemas Operacionais 13
Multiprogramao pesada

Custos de gerenciamento do modelo de processos


Criao do processo
Troca de contextos
Esquemas de proteo, memria virtual, etc
Custos so fator Limitante na interao de processos
Unidade de manipulao o processo (arquivo)
Instituto de Informtica - UFRGS

Mecanismos de IPC (Inter Process Communications) necessitam tratamento


de estruturas complexas que representam o processo e sua propriedades
Soluo
Oliveira, Carissimi, Toscani

Aliviar os custos, ou seja, reduzir o peso das estruturas envolvidas

Sistemas Operacionais 14
Multiprogramao leve

Fornecido pela abstrao de um fluxo de execuo (thread)


Basicamente o conceito de processo
Unidade de interao passa a ser funo
Contexto de uma thread
Registradores (Pilha, apontador de programa, registradores de uso geral)
Instituto de Informtica - UFRGS

Comunicao atravs do compartilhamento direto da rea de dados


Oliveira, Carissimi, Toscani

Sistemas Operacionais 15
Implementao de threads

Threads so implementadas atravs de estruturas de dados


similares ao descritor de processo
Descritor de threads
Menos complexa (leve)
Podem ser implementadas em dois nveis diferentes:
Espao de usurio
Instituto de Informtica - UFRGS

Espao de sistema
Oliveira, Carissimi, Toscani

Sistemas Operacionais 16
Modelos de processos single Threaded e multithreaded

Single-Threaded Multithreaded
Thread Thread Thread

Process Thread Thread Thread


Control User Control Control Control
Block Stack Block Block Block
Process
Instituto de Informtica - UFRGS

User Kernel User User User


Address Control
Stack Block Stack Stack Stack
Space
User Kernel Kernel Kernel
Address
Oliveira, Carissimi, Toscani

Stack Stack Stack


Space

Sistemas Operacionais 17
Modelo N:1

Threads a nvel de usurio


User level threads ou ainda process scope
Todas as tarefas de gerenciamento de threads feito a nvel da
aplicao
Threads so implementadas por uma biblioteca que ligada ao programa
Interface de programao (API) para funes relacionadas com threads
Instituto de Informtica - UFRGS

! e.g; criao, sincronismo, trmino, etc

O sistema operacional no enxerga a presena das threads


Oliveira, Carissimi, Toscani

A troca de contexto entre threads feita em modo usurio pelo


escalonador embutido na biblioteca
No necessita privilgios especiais
Escalonamento depende da implementao
Sistemas Operacionais 18
Implementao modelo N:1

Processo
PC1 SP1
SP Escalonador
PC2 SP2 Pilha PC Cdigo Dados biblioteca
PCn SPn
Instituto de Informtica - UFRGS

Espao de CPU virtual


Biblioteca
usurio
Espao de Dados Pilha Escalonador
sistema sistema operacional
Oliveira, Carissimi, Toscani

CPU

Sistemas Operacionais 19
Vantagens e desvantagens

Vantagens:
Sistema operacional divide o tempo do processador entre os processos
pesados e, a biblioteca de threads divide o tempo do processo entre as
threads
Leve: sem interao/interveno do sistema operacional
Desvantagens:
Instituto de Informtica - UFRGS

Uma thread que realiza uma chamada de sistema bloqueante leve ao


bloqueio de todo o processo
! e.g.; operaoes de entrada/sada
Oliveira, Carissimi, Toscani

No explora paralelismo em mquinas multiprocessadoras

Sistemas Operacionais 20
Modelo 1:1

Threads a nvel do sistema


kernel level threads ou ainda system scope
Resolver desvantagens do modelo N:1
O sistema operacional enxerga as threads
Sistema operacional mantm informaes sobre processos e sobre threads
Instituto de Informtica - UFRGS

Troca de contexto necessita a interveno do sistema operacional


O conceito de threads considerado na implementao do sistema
operacional
Oliveira, Carissimi, Toscani

Sistemas Operacionais 21
Implementao modelo 1:1


Processo
PC1 SP1
SP
PC2 SP2 Pilha PC Cdigo Dados
CPU CPU CPU
PCn SPn virtual virtual virtual
Instituto de Informtica - UFRGS

Espao de
usurio
Espao de Dados Pilha
sistema Escalonador
Oliveira, Carissimi, Toscani

sistema operacional

CPU

Sistemas Operacionais 22
Vantagens e desvantagens

Vantagens:
Explora o paralelismo de mquinas multiprocessadoras (SMP)
Facilita o recobrimento de operaes de entrada/sada por clculos
Desvantagens:
Implementao mais pesada que o modelo N:1
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 23
Modelo M:N

Abordagem que combina os modelos N:1 e 1:1


Oferece dois nveis de escalonamento
Nvel usurio: threads sobre unidade de escalonamento
Nvel sistema: unidades de escalonamento sobre processador
Dificuldade parametrizar M e N
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 24
Implementao modelo M:N

Processo
PC1 SP1
SP Escalonador
PC2 SP2 Pilha PC Cdigo Dados biblioteca
PCn SPn
Instituto de Informtica - UFRGS

Espao de CPU CPU


usurio biblioteca virtual virtual
Espao de Dados Pilha
sistema
Oliveira, Carissimi, Toscani

Escalonador
sistema operacional

CPU

Sistemas Operacionais 25
Porque utilizar threads ?

Permitir a explorao do paralelismo real oferecido por mquinas


multiprocessadores (modelo M:N ou 1:1)
Aumentar nmero de atividades executadas por unidade de tempo
(throughput)
Diminuir tempo de resposta
Instituto de Informtica - UFRGS

Possibilidade de associar threads a dispositivos de entrada/sada


Sobrepor operaes de clculo com operaes de entrada e sada
Oliveira, Carissimi, Toscani

Sistemas Operacionais 26
Vantagens de multithreading

Tempo de criao/destruio de threads inferior que tempo de


criao/destruio de um processo
Chaveamento de contexto entre threads mais rpido que tempo
de chaveamento entre processos
Como threads compartilham o descritor do processo que as porta,
elas dividem o mesmo espao de endereamento o que permite a
Instituto de Informtica - UFRGS

comunicao por memria compartilhada sem interao com o


ncleo
Oliveira, Carissimi, Toscani

Sistemas Operacionais 27
Leituras complementares

R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora


Sagra-Luzzato, 2001.
Captulo 4.
A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).
Addison-Wesley, 1994.
Captulo 4
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 28
Sumrio

Implementao do conceito de processos e threads


Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 29
Escalonamento

O escalonador a entidade do sistema operacional responsvel por


selecionar um processo apto para executar no processador
O objetivo dividir o tempo do processador de forma justa entre os
processos aptos a executar
Tpico de sistemas multiprogramados: batch, time-sharing,
multiprogramado ou tempo real
Instituto de Informtica - UFRGS

Requisitos e restries diferentes em relao a utilizao da CPU


Duas partes:
Oliveira, Carissimi, Toscani

Escalonador: poltica de seleo


Dispatcher: efetua a troca de contexto

Sistemas Operacionais 30
Objetivos do escalonamento

Maximizar a utilizao do processador


Maximizar a produo do sistema (throughput)
Nmero de processos executados por unidade de tempo
Minimizar o tempo de execuo (turnaround)
Tempo total para executar um determinado processo
Instituto de Informtica - UFRGS

Minimizar o tempo de espera


Tempo que um processo permance na lista de aptos
Minimizar o tempo de resposta
Oliveira, Carissimi, Toscani

Tempo decorrido entre uma requisio e a sua realizao

Sistemas Operacionais 31
Situaes tpicas para execuo do escalonador

Dependem se o escalonador preemptivo ou no, se considera


prioridades ou no, etc...
Sempre que a CPU estiver livre e houver processos aptos a executar
Criao e trmino de processos
Um processo de mais alta prioridade ficar apto a executar
Interrupo de tempo
Instituto de Informtica - UFRGS

! Processo executou por um perodo de tempo mximo permitido

Interrupo de dispositivos de entrada e sada


Interrupo por falta de pgina (segmento) em memria
Oliveira, Carissimi, Toscani

! Endereo acessado no est carregado na memria (memria virtual)

Interrupo por erros

Sistemas Operacionais 32
Eventos de transio de estados

Interrupo por tempo


Admisso ou voluntria Trmino
Criao Destruio

Apto Executando
Instituto de Informtica - UFRGS

Seleo
Ocorrncia de evento Sincronizao ou
(interrupo) requisio de E/S
Oliveira, Carissimi, Toscani

Bloqueado

Sistemas Operacionais 33
Chaveamento de contexto (dispatcher)

Processo 0 Processo 1

Salva estado PCB0 Apto

Restaura estado PCB1

Apto
Instituto de Informtica - UFRGS

Salva estado PCB1

Apto
Oliveira, Carissimi, Toscani

Restaura estado PCB0

PCB: Process Control Block

Sistemas Operacionais 34
Nveis de escalonamento

Longo prazo
Mdio prazo
Curto prazo
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 35
Escalonador longo prazo

Executado quando um novo processo criado


Determina quando um processo novo passa a ser considerado no
sistema, isto , quando aps sua criao ele passa a ser apto
Controle de admisso
Controla o grau de multiprogramao do sistema
Instituto de Informtica - UFRGS

Quanto maior o nmero de processos ativos, menor a porcentagem de


tempo de uso do processador por processo
Oliveira, Carissimi, Toscani

Sistemas Operacionais 36
Escalonador mdio prazo

Associado a gerncia de memria


Participa do mecanismo de swapping
Suporte adicional a multiprogramao
Grau de multiprogramao efetiva (diferencia aptos dos aptos-suspensos)
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 37
Escalonador de curto prazo

Mais importante
Determina qual processo apto dever utilizar o processador
Executado sempre que ocorre eventos importantes:
Interrupo de relgio
Interrupo de entrada/sada
Instituto de Informtica - UFRGS

Chamadas de sistemas
Sinais (interrupo software)
Oliveira, Carissimi, Toscani

Sistemas Operacionais 38
Diagrama de escalonamento

Escalonador Interrupo de tempo


de longo prazo
Processos Fila de aptos Escalonador Trmino
curto prazo
CPU
Escalonador de
mdio prazo
Usurios Fila de suspensos (apto)
interativos
Instituto de Informtica - UFRGS

Filas de suspensos (bloqueado)


Oliveira, Carissimi, Toscani

Fila de bloqueados
Evento Espera por evento

Sistemas Operacionais 39
Tipos de escalonador

Um vez escalonado, o processo utiliza o processador at que:


No preemptivo:
! Trmino de execuo do processo

! Execuo de uma requisio de entrada/sada ou sincronizao

! Liberao voluntria do processador a outro processo (yield)

Preemptivo:
Instituto de Informtica - UFRGS

! Trmino de execuo do processo

! Execuo de uma requisio de entrada/sada ou sincronizao

! Liberao voluntria do processador a outro processo (yield)


Oliveira, Carissimi, Toscani

! Interrupo de relgio

! Processo de mais alta prioridade esteja pronto para executar

Sistemas Operacionais 40
Algoritmos de escalonamento (1)

Algoritmo de escalonamento seleciona qual processo deve executar


em um determinado instante de tempo
Existem vrios algoritmos para atingir os objetivos do
escalonamento
Os algoritmos buscam:
Instituto de Informtica - UFRGS

Obter bons tempos mdios invs de maximizar ou minimizar um determinado


critrio
Privilegiar a varincia em relao a tempos mdios
Oliveira, Carissimi, Toscani

Sistemas Operacionais 41
Algoritmos de escalonamento (2)

Algoritmos no preemptivos (cooperativos)


First-In First-Out (FIFO) ou First-Come First-Served (FCFS)
Shortest Job First (SJF) ou Shortest Process Next (SPN)
Algoritmos preemptivos
Round robin (circular)
Baseado em prioridades
Instituto de Informtica - UFRGS

Existem outros algoritmos de escalonamento


High Response Ratio Next (HRRN)
Oliveira, Carissimi, Toscani

Shortest Remaining Time (SRT)


etc...

Sistemas Operacionais 42
FIFO - First In First Out (1)

First-Come, First-Served (FCFS)


Simples de implementar
Fila
Funcionamento:
Processos que se tornam aptos so inseridos no final da fila
Instituto de Informtica - UFRGS

Processo que est no incio da fila o prximo a executar


Processo executa at que:
! Libere explicitamente o processador
Oliveira, Carissimi, Toscani

! Realize uma chamada de sistema (bloqueado)

! Termine sua execuo

Sistemas Operacionais 43
FIFO - First In First Out (2)

Desvantagem:
Prejudica processos I/O bound
Tempo mdio de espera na fila de execuo:
Ordem A-B-C-D = (0 + 12 + 20 + 35 ) / 4 = 16.75 u.t.
Ordem D-A-B-C = (0 + 5 + 17 + 25 ) / 4 = 11.7 u.t.
Instituto de Informtica - UFRGS

Processo Tempo A
A 12 B
Oliveira, Carissimi, Toscani

B 8 C
C 15 D
D 5
0 12 20 35 40

Sistemas Operacionais 44
SJF - Shortest Job First (1)

Originrio do fato que o menor tempo de mdio obtido quando se


executa primeiro os processos de menor ciclo de processador (I/O
bound)

A
Processo Tempo B
A 12
Instituto de Informtica - UFRGS

C
B 8
D
C 15
D 5
0 5 13 25 40
Oliveira, Carissimi, Toscani

Tempo mdio: (0 + 5 + 13 + 25)/4 = 10.75 u.t

Sistemas Operacionais 45
SJF - Shortest Job First (2)

Algoritmo timo, isto , fornece o menor tempo mdio de espera


para um conjunto de processos
Processos I/O bound so favorecidos
Dificuldade determinar o tempo do prximo ciclo de CPU de cada
processo, porm:
Instituto de Informtica - UFRGS

Pode ser empregado em processos batch (long term scheduler)


Prever o futuro com base no passado
Oliveira, Carissimi, Toscani

Sistemas Operacionais 46
Prevendo o futuro... (1)

Pode ser feito utilizando os tempos de ciclos j passados e


realizando uma mdia exponencial
1. t n = tempo do ensimo ciclo de CPU
2. n +1 = valor previsto para o prximo ciclo de CPU
3. = armazena a informao dos ciclos passados (n - 1)
4. , 0 1
Instituto de Informtica - UFRGS

5. Define - se : n +1 = t n + (1 ) n .

Fator tem o efeito de considerar, de forma ponderada, os ciclos


Oliveira, Carissimi, Toscani

anteriores de processador

Sistemas Operacionais 47
Prevendo o futuro... (2)

No considera o ltimo ciclo de processador, s o passado ( =0)


n+1 = n
Considera apenas o ltimo ciclo de processador ( = 1)
n+1 = tn
Tipicamente se emprega =0.5
Instituto de Informtica - UFRGS

Tem o efeito de considerar o mesmo peso para a histria atual e a histria


passada

n+1 = tn+(1 - ) tn -1 + ... +(1 - ) j tn-j + +(1 - ) n+1 0


Oliveira, Carissimi, Toscani

Sistemas Operacionais 48
Exemplo de previso do futuro

Ciclo de cpu:
Real: 6 4 6 4 13 13 13 Parmetros: =0.5 0=10
Previsto: 10 8 6 6 5 9 11 12

14
12
10
Instituto de Informtica - UFRGS

8 Real
6 Previsto
Oliveira, Carissimi, Toscani

4
2
0
0 1 2 3 4 5 6 7

Sistemas Operacionais 49
Leituras complementares

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora


Sagra-Luzzato, 2001.
Captulo 4
A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).
Addison-Wesley, 1994.
Captulo 4, 5 e 6
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 50
Sumrio

Implementao do conceito de processos e threads


Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 51
Tipos de escalonador (lembrando...)

Um vez escalonado, o processo utiliza o processador at que:


No preemptivo:
! Trmino de execuo do processo

! Execuo de uma requisio de entrada/sada ou sincronizao

! Liberao voluntria do processador a outro processo (yield)

Preemptivo:
Instituto de Informtica - UFRGS

! Trmino de execuo do processo

! Execuo de uma requisio de entrada/sada ou sincronizao

! Liberao voluntria do processador a outro processo (yield)


Oliveira, Carissimi, Toscani

! Interrupo de relgio

! Processo de mais alta prioridade esteja pronto para executar

Sistemas Operacionais 52
Eventos de transio de estados

Interrupo por tempo


Admisso ou prioridade Trmino
Criao Destruio

Apto Executando
Instituto de Informtica - UFRGS

Seleo
Ocorrncia de evento Sincronizao ou
(interrupo) requisio de E/S
Oliveira, Carissimi, Toscani

Bloqueado

Sistemas Operacionais 53
Escalonadores preemptivos

Por interrupo de tempo


Round robin (circular)
Por prioridades
Instituto de Informtica - UFRGS
Oliveira, Carissimi, Toscani

Sistemas Operacionais 54
RR - Round Robin (1)

Similar ao algoritmo FIFO, s que:


Cada processo recebe um tempo limite mximo (time-slice, quantum) para
executar um ciclo de processador
Fila de processos aptos uma fila circular
Necessidade de um relgio para delimitar as fatias de tempo
Interrupo de tempo
Instituto de Informtica - UFRGS

A
Oliveira, Carissimi, Toscani

B
C
D

0 3 6 9 12 15 18 23 28 34 40

Sistemas Operacionais 55
RR - Round Robin (2)

Por ser preemptivo, um processo perde o processador quando:


Libera explicitamente o processador (yield)
Realize uma chamada de sistema (bloqueado)
Termina sua execuo
Quando sua fatia de tempo esgotada
Se quantum obtm-se o comportamento de um escalonador
Instituto de Informtica - UFRGS

FIFO
Oliveira, Carissimi, Toscani

Sistemas Operacionais 56
Problemas com o Round Robin

Problema 1: Dimensionamento do quantum


Compromisso entre overhead e tempo de resposta em funo do nmero de
usurios (1/k na presena de k usurios)
Compromisso entre tempo de chaveamento e tempo do ciclo de processador
(quantum)
Problema 2: Processos I/O bound so prejudicados
Instituto de Informtica - UFRGS

Esperam da mesma forma que processos CPU bound porm muito


provavelmente no utilizam todo o seu quantum
Soluo:
Oliveira, Carissimi, Toscani

! Prioridades: Associar prioridades mais altas aos processos I/O bound


para compensar o tempo gasto no estado de espera (apto)

Sistemas Operacionais 57
Escalonamento com prioridades

Sempre que um processo de maior prioridade que o processo


atualmente em execuo entrar no estado apto deve ocorrer uma
preempo
A existncia de prioridades pressupem a preempo
possvel haver prioridade no-preemptiva
Escalonador deve sempre selecionar o processo de mais alta
Instituto de Informtica - UFRGS

prioridade segundo uma poltica:


Round-Robin
FIFO (FCFS)
Oliveira, Carissimi, Toscani

SJF (SPN)

Sistemas Operacionais 58
Implementao de escalonador com prioridades

Mltiplas filas associadas ao estado apto


Cada fila uma prioridade
Pode ter sua prpria poltica de escalonamento (FIFO, SJF, RR)
Fila apto 0 Trmino
Dispatch
CPU
Prioridade 0
Instituto de Informtica - UFRGS

Fila apto 1

Prioridade 1
Fila apto n
Oliveira, Carissimi, Toscani

Prioridade n
Preempo
Fila de bloqueados Espera por evento
Evento
Sistemas Operacionais 59
Exemplo: pthreads

A poltica de escalonamento FIFO com prioridade considera:


Quando um processo em execuo preemptado ele inserido no nicio de
sua fila de prioridade
Quando um processo bloqueado passa a apto ele inserido no final da fila de
sua prioridade
Quando um processo troca de prioridade ele inserido no final da fila de sua
Instituto de Informtica - UFRGS

nova prioridade
Quando um processo em execuo passa a vez para um outro processo ele
inserido no final da fila de sua prioridade
Oliveira, Carissimi, Toscani

Sistemas Operacionais 60
Como definir a prioridade de um processo?

Prioridade esttica:
Um processo criado com uma determinada prioridade e esta prioridade
mantida durante todo o tempo de vida do processo
Prioridade dinmica:
Prioridade do processo ajustada de acordo com o estado de execuo do
processo e/ou do sistema
Instituto de Informtica - UFRGS

! e.g; ajustar a prioridade em funo da frao do quantum que foi

realmente utilizada pelo processo:


q = 100 ms
Oliveira, Carissimi, Toscani

Processo A utilizou 2ms ! nova prioridade = 1/0.02 = 50


Processo B utilizou 50ms ! nova prioridade = 1/0.5 = 2

Sistemas Operacionais 61
Problemas com prioridades

Um processo de baixa prioridade pode no ser executado


Postergao indefinida (starvation)
Processo com prioridade esttica pode ficar mal classificado e ser
penalizado ou favorecido em relao aos demais
Tpico de processos que durante sua execuo trocam de padro de
comportamento (CPU bound a I/O bound e vice-versa)
Instituto de Informtica - UFRGS

Soluo:
Mltiplas filas com realimentao
Oliveira, Carissimi, Toscani

Sistemas Operacionais 62
Mltiplas filas com realimentao

Baseado em prioridades dinmicas


Em funo do tempo de uso da CPU
a prioridade do processo aumenta e
diminui Fila apto 0 Trmino
Dispatch
CPU
Sistema de envelhecimento (agging)
evita postergao indefinida
Fila apto 1
Instituto de Informtica - UFRGS

Fila apto n
Oliveira, Carissimi, Toscani

Possibilidade de Preempo
trocar de fila Fila de bloqueados Espera por evento
Evento

Sistemas Operacionais 63
Estudo de caso: escalonamento UNIX (1)

Mltiplas filas com realimentao empregando round robin em cada


uma das filas
Prioridades so re-avaliadas uma vez por segundo em funo de:
Prioridade atual
Prioridade do usurio
Tempo recente de uso da CPU
Instituto de Informtica - UFRGS

Fator nice
Prioridades so divididas em faixas de acordo com o tipo do usurio
Oliveira, Carissimi, Toscani

A troca dinmica das prioridades respeita os limites da faixa

Sistemas Operacionais 64
Escalonamento UNIX (1)

Prioridades recebem valores entre 0 e 127 (menor o valor nmerico,


maior a prioridade)
0-49: processos do kernel
50-127: processo de usurio
Ordem decrescente de prioridades
Swapper
Instituto de Informtica - UFRGS

Controle de dispositivos de entrada e sada orientados a bloco


Manipulao de arquivos
Controle de dispositivos de entrada e sada orientados a caractere
Oliveira, Carissimi, Toscani

Processos de usurio

Sistemas Operacionais 65
Escalonamento UNIX (2)

Clculo de prioridade de processos de usurio:


Fator nice: valor variando entre 0 (mais prioritrio) a 39 (menos prioritrio),
sendo 20 o valor default
Uso recente do processador (p_cpu )

2 load _ average
decay =
(2 load _ average + 1)
Instituto de Informtica - UFRGS

p _ cpu decay
p _ usrpri = PUSER + + 2 p _ nice
4
Oliveira, Carissimi, Toscani

Onde:
! load_average o nmero mdio de processos aptos no ltimo segundo

! PUSER valor de base de prioridade para usurios (50)

Sistemas Operacionais 66
Estudo de caso: escalonamento Linux

Duas classes em funo do tipo de processos (threads)


Processos interativos e batch
Processos de tempo real
Polticas de escalonamento do linux (padro POSIX)
SCHED_FIFO: FIFO com prioridade esttica
! Vlido apenas para processos de tempo real
Instituto de Informtica - UFRGS

SCHED_RR: Round-robin com prioridade esttica


! Vlido apenas para processos de tempo real

SCHED_OTHER: Filas multinvel com prioridades dinmicas (time-sharing)


Oliveira, Carissimi, Toscani

! Processos interativos e batch

Sistemas Operacionais 67
Escalonamento linux (tempo real)

Linux implementa dois tipos de prioridade


Esttica: exclusivamente processos de tempo real
Dinmica: processos interativos e batch
Prioridade definida pelo usurio e no modificada pelo
escalonador
Somente usurios com privilgios especiais
Instituto de Informtica - UFRGS

Seleciona sempre processos de mais prioridade para executar


Executa segundo a poltica selecionada: SCHED_FIFO ou SCHED_RR
Oliveira, Carissimi, Toscani

Processo em tempo real tem preferncia (prioridade) sobre


processos interativos e batch

Sistemas Operacionais 68
Escalonamento linux (timesharing)

Baseado no uso de crditos e prioridade


Sistema de crditos:
Cada processo executa um certo nmero de crditos
O processo com maior crdito o selecionado
Cada interrupo de tempo o processo em execuo perde um crdito
Processo que atinge zero crditos suspenso (escalonador mdio prazo)
Instituto de Informtica - UFRGS

Se no estado apto no existir processos com crditos realizado uma


redistribuio de crditos para todos os processos (qualquer estado)
Oliveira, Carissimi, Toscani

Crditos
Crditos = + prioridade
2

Sistemas Operacionais 69
Estudo de caso: escalonamento windows 2000

Unidade de escalonamento a thread


Escalonador preemptivo com prioridades
Prioridades organizadas em duas classes:
Tempo real: prioridade esttica (nveis 16-31)
Varivel: prioridade dinmica (nveis 0-15)
Instituto de Informtica - UFRGS

Cada classe possui 16 nveis de prioridades


Cada nvel implementado por uma fila em uma poltica round-robin
! Mltiplas filas: classe de tempo real
Oliveira, Carissimi, Toscani

! Mltiplas filas com realimentao: classe de tempo varivel

Threads da classe tempo real tem precedncia sobre as da classe varivel

Sistemas Operacionais 70
Escalonamento windows 2000 (classe varivel)

Dois parmetros definem a prioridade de uma thread:


Valor de prioridade de base do processo
Prioridade inicial que indica sua prioridade relativa dentro do processo
Prioridade da thread varia de acordo com uso do processador
Preemptada por esgotar o quantum: prioridade reduzida
Preemptada por operao de E/S: prioridade aumentada
Instituto de Informtica - UFRGS

Nunca assume valor inferior a sua prioridade de base, nem superior a 15


Fator adicional em mquina multiprocessadoras: afinidade!
Oliveira, Carissimi, Toscani

Tentativa de escalonar uma thread no processador que ela executou mais


recentemente.
! Princpio: reaproveitamento de dados na memria cache

Sistemas Operacionais 71
Escalonamento no preemptivo com prioridades

SJF um forma de priorizar processos


A prioridade o inverso do prximo tempo previsto para ciclo de CPU
Processos de igual prioridade so executados de acordo com uma
poltica FIFO
Problema de postergao indefinida (starvation)
Instituto de Informtica - UFRGS

Processo de baixa prioridade no alocado a CPU por sempre existir um


processo de mais alta prioridade a ser executado
Soluo:
! Envelhecimento
Oliveira, Carissimi, Toscani

O conceito de prioridade mais consistente com preempo


Processo de maior prioridade interrompe a execuo de um menos prioritrio

Sistemas Operacionais 72
Leituras complementares

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora


Sagra-Luzzato, 2001.
Captulo 4, Captulo 9 (seo 9.4), Captulo 10 (seo10.4)
A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition)
Addison-Wesley, 1994.
Captulo 5
Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin, G. Gane; Applied Operating System


Concepts. (1st edition). Addison-Wesley, 2000.
Oliveira, Carissimi, Toscani

Captulo 4, 5 e 6
W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.
Captulo 9

Sistemas Operacionais 73

You might also like