Anda di halaman 1dari 0

Sistemas Operacionais

Gerncia do processador

2a edio
Reviso: Fev/2003

Captulo 4

Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos

Escalonamento

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Escalonamento preemptivos

Sistemas Operacionais

Introduo
Multiprogramao pressupe a existncia simultnea de vrios
processos disputando o processador
Necessidade de intermediar esta disputa de forma justa

Necessidade de representar um processo


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

Instituto de Informtica - UFRGS

Gerncia do processador
! Algoritmos de escalonamento

Sistemas Operacionais

Representao de processo
Processo um programa em execuo
reas na memria para cdigo, dados e pilha

Organizar os processos nos diferentes estados


Determinar eventos que realizam a transio entre os estados
Determinar quando um processo tem direito a utilizar o processador

Necessrio manter informaes a respeito do processo


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Possui uma srie de estados (apto, executando, bloqueado, etc)


para representar sua evoluo no tempo, implica em:

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


recursos que emprega, etc.

Sistemas Operacionais

Bloco descritor de processo


Abstrao de processo implementado atravs de uma estrutura de
dados
Bloco descritor de processos (Process Control Block - PCB)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Informaes normalmente presentes em um descritor de processo

Prioridade
Localizao e tamanho na memria principal
Identificao de arquivos abertos
Informaes de contabilidade (tempo CPU, espao de memria, etc)
Estado do processador (apto, executando, bloqueando, etc)
Contexto de execuo
Apontadores para encadeamento dos prprios descritores de processo
etc

Sistemas Operacionais

Os processos e as filas

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Um processo sempre faz parte de alguma


fila
Geralmente a prpria estrutura de
descritores de processos so empregadas
como elementos dessas filas:
Fila de livres
! Nmero fixo (mximo) de processos
! Alocao dinmica
Fila de aptos
Fila de bloqueados

livres
0
Aptos

4
1

Executando

Bloqueado

3
5

Eventos realizam transio de uma fila a


outra

Sistemas Operacionais

Exemplo de bloco descritor de processos (1)

struct desc_proc{
char
estado_atual;
int
prioridade;
unsigned inicio_memoria;
unsigned tamanho_mem;
struct
arquivos arquivos_abertos[20];
unsigned tempo_cpu;
unsigned proc_pc;
unsigned proc_sp;
unsigned proc_acc;
unsigned proc_rx;
struct
desc_proc *proximo;
}

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Estrutura de dados representado bloco descritor de processo

struct desc_proc tab_desc[MAX_PROCESS];

Sistemas Operacionais

Exemplo de bloco descritor de processos (2)


Estruturas de filas e inicializao
desc_proc
desc_proc
desc_proc
desc_proc

*desc_livre;
*espera_cpu;
*usando_cpu;
*bloqueados;

/* Inicializao das estruturas de controle */


for (i=0; i < MAX_PROCESS; i++)
tab_desc[i].prox = &tab_desc[i+1];
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

struct
struct
struct
struct

tab_desc[i].prox = NULL;
desc_livre = &tab_desc[0];
espera_cpu= NULL;
usando_cpu= NULL;
bloqueado = NULL;
Sistemas Operacionais

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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Execuo
Realizam das instrues da rea de cdigo
! Interao com sistema operacional via chamadas de sistema
Atualizao do bloco descritor de processo
! Retratar estados e recursos que evoluem dinamicamente com a execuo
Suscetvel ao acionamento do escalonador/dispatcher em resposta a eventos

Trmino
Liberao de recursos e estruturas de dados utilizadas
Sistemas Operacionais

O modelo de processo
Processo representado por:

Processo
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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...)

Espao de
usurio
Espao de
sistema
Sistemas Operacionais

SP Pilha

PC Cdigo Dados

Dados

Pilha

10

Exemplo: modelo de processo Unix (linux)


rea dados (sisop)

4 Gbytes

Pilha

Heap
BSS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Stack Pointer
(SP)

0xFFFFFFFF

Data
Program Counter
(PC)

Dados no inicializados
Dados inicializados

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

Processo 1

Espao de
usurio
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

e.g.; contexto, espao de endereamento, etc...

SP

Espao de
sistema

Sistemas Operacionais

Pilha

Processo n

PC Cdigo Dados

Dados

Pilha

...

SP Pilha

PC

Dados

Cdigo

Dados

Pilha

12

Vrios fluxos em um nico processo

Cdigo
Dados
Descritor de processo

Conceito de thread
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Um fluxo de instruo implementado


atravs do contador de programa (PC) e
de uma pilha (SP)
Estruturas comuns compartilhadas
SP1
SP2
Espao de
usurio
Espao de
sistema

Sistemas Operacionais

Processo 1
Pilha

PC2 Cdigo Dados


PC1

SP3

PC3
Dados

Pilha

13

Multiprogramao pesada
Custos de gerenciamento do modelo de processos
Criao do processo
Troca de contextos
Esquemas de proteo, memria virtual, etc
Unidade de manipulao o processo (arquivo)
Mecanismos de IPC (Inter Process Communications) necessitam tratamento
de estruturas complexas que representam o processo e sua propriedades
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Custos so fator Limitante na interao de processos

Soluo
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
Comunicao atravs do compartilhamento direto da rea de dados
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Registradores (Pilha, apontador de programa, registradores de uso geral)

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)
Espao de usurio
Espao de sistema
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Podem ser implementadas em dois nveis diferentes:

Sistemas Operacionais

16

Modelos de processos single Threaded e multithreaded

Single-Threaded

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Kernel
Stack

Thread
Control
Block

Thread
Control
Block

Thread
Control
Block

Process
Control
Block

User
Stack

User
Stack

User
Stack

Kernel
Stack

Kernel
Stack

Kernel
Stack

User
Stack

User
Address
Space

Thread

User
Address
Space

Process
Control
Block

Multithreaded
Thread
Thread

Sistemas Operacionais

17

Modelo N:1
Threads a nvel de usurio
User level threads ou ainda process scope

Threads so implementadas por uma biblioteca que ligada ao programa


Interface de programao (API) para funes relacionadas com threads
! e.g; criao, sincronismo, trmino, etc
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Todas as tarefas de gerenciamento de threads feito a nvel da


aplicao

O sistema operacional no enxerga a presena das threads


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

SP1

PC2

SP2

PCn

Processo

SPn

Espao de
usurio
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

PC1

Dados

Pilha

PC Cdigo

Dados

Escalonador
biblioteca
CPU virtual

Biblioteca

Espao de
sistema

SP

Pilha

Escalonador
sistema operacional
CPU

Sistemas Operacionais

19

Vantagens e desvantagens
Vantagens:

Desvantagens:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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
Uma thread que realiza uma chamada de sistema bloqueante leve ao
bloqueio de todo o processo
! e.g.; operaoes de entrada/sada
No explora paralelismo em mquinas multiprocessadoras

Sistemas Operacionais

20

Modelo 1:1
Threads a nvel do sistema
kernel level threads ou ainda system scope

Sistema operacional mantm informaes sobre processos e sobre threads


Troca de contexto necessita a interveno do sistema operacional

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Resolver desvantagens do modelo N:1


O sistema operacional enxerga as threads

O conceito de threads considerado na implementao do sistema


operacional

Sistemas Operacionais

21

Implementao modelo 1:1

Oliveira, Carissimi, Toscani

Espao de
usurio

SP1

PC2
Instituto de Informtica - UFRGS

PC1

SP2

PCn

Processo

SPn

Espao de
sistema

Dados

SP
Pilha

Pilha

PC Cdigo

Dados

CPU
virtual

CPU
virtual

CPU
virtual

Escalonador
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:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Implementao mais pesada que o modelo N:1

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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Dificuldade parametrizar M e N

Sistemas Operacionais

24

Implementao modelo M:N

Oliveira, Carissimi, Toscani

Espao de
usurio

SP1

PC2
Instituto de Informtica - UFRGS

PC1

SP2

PCn

Processo

SPn

SP
Pilha

Dados

Dados

CPU
virtual

biblioteca

Espao de
sistema

PC Cdigo

Escalonador
biblioteca
CPU
virtual

Pilha
Escalonador
sistema operacional
CPU

Sistemas Operacionais

25

Porque utilizar threads ?

Possibilidade de associar threads a dispositivos de entrada/sada

Sobrepor operaes de clculo com operaes de entrada e sada


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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

Sistemas Operacionais

26

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
comunicao por memria compartilhada sem interao com o
ncleo
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Vantagens de multithreading

Sistemas Operacionais

27

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora
Sagra-Luzzato, 2001.

Captulo 4.

Captulo 4

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).


Addison-Wesley, 1994.

Sistemas Operacionais

28

Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos

Escalonamento

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Escalonamento preemptivos

Sistemas Operacionais

29

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
Requisitos e restries diferentes em relao a utilizao da CPU
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Escalonamento

Duas partes:
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)


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

Instituto de Informtica - UFRGS

Tempo total para executar um determinado processo

Minimizar o tempo de resposta


Tempo decorrido entre uma requisio e a sua realizao

Sistemas Operacionais

31

Situaes tpicas para execuo do escalonador

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
! Processo executou por um perodo de tempo mximo permitido
Interrupo de dispositivos de entrada e sada
Interrupo por falta de pgina (segmento) em memria
! Endereo acessado no est carregado na memria (memria virtual)
Interrupo por erros

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Dependem se o escalonador preemptivo ou no, se considera


prioridades ou no, etc...

Sistemas Operacionais

32

Eventos de transio de estados

Admisso

Apto

Trmino

Destruio

Executando
Seleo

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Criao

Interrupo por tempo


ou voluntria

Ocorrncia de evento
(interrupo)

Sistemas Operacionais

Bloqueado

Sincronizao ou
requisio de E/S

33

Chaveamento de contexto (dispatcher)


Processo 0

Processo 1
Salva estado PCB0

Apto

Apto
Salva estado PCB1
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Restaura estado PCB1

Restaura estado PCB0

Apto

PCB: Process Control Block


Sistemas Operacionais

34

Nveis de escalonamento

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Longo prazo
Mdio prazo
Curto prazo

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
Quanto maior o nmero de processos ativos, menor a porcentagem de
tempo de uso do processador por processo
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Controla o grau de multiprogramao do sistema

Sistemas Operacionais

36

Escalonador mdio prazo


Associado a gerncia de memria
Participa do mecanismo de swapping

Suporte adicional a multiprogramao

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Grau de multiprogramao efetiva (diferencia aptos dos aptos-suspensos)

Sistemas Operacionais

37

Escalonador de curto prazo

Interrupo de relgio
Interrupo de entrada/sada
Chamadas de sistemas
Sinais (interrupo software)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Mais importante
Determina qual processo apto dever utilizar o processador
Executado sempre que ocorre eventos importantes:

Sistemas Operacionais

38

Diagrama de escalonamento
Escalonador
de longo prazo
Fila de aptos

Usurios
interativos

Escalonador
curto prazo

Trmino
CPU

Escalonador de
mdio prazo
Fila de suspensos (apto)

Filas de suspensos (bloqueado)


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Processos

Interrupo de tempo

Evento

Sistemas Operacionais

Fila de bloqueados

Espera por evento

39

Tipos de escalonador

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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:
! Trmino de execuo do processo
! Execuo de uma requisio de entrada/sada ou sincronizao
! Liberao voluntria do processador a outro processo (yield)
! Interrupo de relgio
! Processo de mais alta prioridade esteja pronto para executar

Sistemas Operacionais

40

Algoritmos de escalonamento (1)

Obter bons tempos mdios invs de maximizar ou minimizar um determinado


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

Instituto de Informtica - UFRGS

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:

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)
Round robin (circular)
Baseado em prioridades

Existem outros algoritmos de escalonamento


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Algoritmos preemptivos

High Response Ratio Next (HRRN)


Shortest Remaining Time (SRT)
etc...

Sistemas Operacionais

42

FIFO - First In First Out (1)


First-Come, First-Served (FCFS)
Simples de implementar
Fila

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Funcionamento:
Processos que se tornam aptos so inseridos no final da fila
Processo que est no incio da fila o prximo a executar
Processo executa at que:
! Libere explicitamente o processador
! 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:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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.

Processo
A
B
C
D

Tempo
12
8
15
5

A
B
C
D
0

Sistemas Operacionais

12

20

35

40

44

SJF - Shortest Job First (1)

Processo
A
B
C
D

Tempo
12
8
15
5

A
B
C
D
0

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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


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

13

25

40

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

Sistemas Operacionais

45

SJF - Shortest Job First (2)

Pode ser empregado em processos batch (long term scheduler)


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

Instituto de Informtica - UFRGS

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:

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
4. , 0 1
5. Define - se :
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

3. = armazena a informao dos ciclos passados (n - 1)

n +1 = t n + (1 ) n .

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


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

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


passada
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tipicamente se emprega =0.5

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

Sistemas Operacionais

48

Exemplo de previso do futuro


Ciclo de cpu:
Real:
6 4 6 4 13 13 13
Previsto: 10 8 6 6 5 9 11 12

Parmetros: =0.5 0=10

14

10
8

Real
Previsto

6
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

12

4
2
0
0
Sistemas Operacionais

7
49

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Sagra-Luzzato, 2001.

Captulo 4

Captulo 4, 5 e 6

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition).


Addison-Wesley, 1994.

Sistemas Operacionais

50

Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos

Escalonamento

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Escalonamento preemptivos

Sistemas Operacionais

51

Tipos de escalonador (lembrando...)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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:
! Trmino de execuo do processo
! Execuo de uma requisio de entrada/sada ou sincronizao
! Liberao voluntria do processador a outro processo (yield)
! Interrupo de relgio
! Processo de mais alta prioridade esteja pronto para executar

Sistemas Operacionais

52

Eventos de transio de estados

Admisso

Apto

Destruio

Executando
Seleo

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Criao

Interrupo por tempo


Trmino
ou prioridade

Ocorrncia de evento
(interrupo)

Sistemas Operacionais

Bloqueado

Sincronizao ou
requisio de E/S

53

Escalonadores preemptivos
Por interrupo de tempo
Round robin (circular)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Por prioridades

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

Interrupo de tempo

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Fila de processos aptos uma fila circular


Necessidade de um relgio para delimitar as fatias de tempo

A
B
C
D
0

Sistemas Operacionais

12 15 18

23

28

34

40

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


FIFO
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Sistemas Operacionais

56

Problemas com o Round Robin


Problema 1: Dimensionamento do quantum

Problema 2: Processos I/O bound so prejudicados

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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)
Esperam da mesma forma que processos CPU bound porm muito
provavelmente no utilizam todo o seu quantum
Soluo:
!
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

Escalonador deve sempre selecionar o processo de mais alta


prioridade segundo uma poltica:
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A existncia de prioridades pressupem a preempo


possvel haver prioridade no-preemptiva

Round-Robin
FIFO (FCFS)
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)
Dispatch

Trmino
CPU

Prioridade 0
Fila apto 1
Prioridade 1
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Fila apto 0

Fila apto n

Prioridade n
Preempo
Fila de bloqueados
Evento
Sistemas Operacionais

Espera por evento


59

Exemplo: pthreads

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
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

Instituto de Informtica - UFRGS

A poltica de escalonamento FIFO com prioridade considera:

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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Prioridade dinmica:
Prioridade do processo ajustada de acordo com o estado de execuo do
processo e/ou do sistema
! e.g; ajustar a prioridade em funo da frao do quantum que foi
realmente utilizada pelo processo:
q = 100 ms
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)

Tpico de processos que durante sua execuo trocam de padro de


comportamento (CPU bound a I/O bound e vice-versa)

Soluo:
Mltiplas filas com realimentao
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Processo com prioridade esttica pode ficar mal classificado e ser


penalizado ou favorecido em relao aos demais

Sistemas Operacionais

62

Mltiplas filas com realimentao

Fila apto 0

Dispatch

Trmino
CPU

Fila apto 1

Fila apto n
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Baseado em prioridades dinmicas


Em funo do tempo de uso da CPU
a prioridade do processo aumenta e
diminui
Sistema de envelhecimento (agging)
evita postergao indefinida

Preempo

Possibilidade de
trocar de fila

Fila de bloqueados
Evento

Sistemas Operacionais

Espera por evento

63

Estudo de caso: escalonamento UNIX (1)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

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
Fator nice

Prioridades so divididas em faixas de acordo com o tipo do usurio


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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Ordem decrescente de prioridades

Swapper
Controle de dispositivos de entrada e sada orientados a bloco
Manipulao de arquivos
Controle de dispositivos de entrada e sada orientados a caractere
Processos de usurio

Sistemas Operacionais

65

Escalonamento UNIX (2)


Clculo de prioridade de processos de usurio:

decay =

2 load _ average
(2 load _ average + 1)

p _ usrpri = PUSER +
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Fator nice: valor variando entre 0 (mais prioritrio) a 39 (menos prioritrio),


sendo 20 o valor default
Uso recente do processador (p_cpu )

p _ cpu decay
+ 2 p _ nice
4

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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Polticas de escalonamento do linux (padro POSIX)


SCHED_FIFO: FIFO com prioridade esttica
! Vlido apenas para processos de tempo real
SCHED_RR: Round-robin com prioridade esttica
! Vlido apenas para processos de tempo real
SCHED_OTHER: Filas multinvel com prioridades dinmicas (time-sharing)
! 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

Somente usurios com privilgios especiais

Seleciona sempre processos de mais prioridade para executar


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

Instituto de Informtica - UFRGS

Prioridade definida pelo usurio e no modificada pelo


escalonador

Processo em tempo real tem preferncia (prioridade) sobre


processos interativos e batch

Sistemas Operacionais

68

Escalonamento linux (timesharing)

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)
Se no estado apto no existir processos com crditos realizado uma
redistribuio de crditos para todos os processos (qualquer estado)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Baseado no uso de crditos e prioridade


Sistema de crditos:

Crditos =

Sistemas Operacionais

Crditos
+ prioridade
2

69

Estudo de caso: escalonamento windows 2000


Unidade de escalonamento a thread
Escalonador preemptivo com prioridades
Prioridades organizadas em duas classes:

Cada classe possui 16 nveis de prioridades


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tempo real: prioridade esttica (nveis 16-31)


Varivel: prioridade dinmica (nveis 0-15)
Cada nvel implementado por uma fila em uma poltica round-robin
! Mltiplas filas: classe de tempo real
! 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
Preemptada por esgotar o quantum: prioridade reduzida
Preemptada por operao de E/S: prioridade aumentada
Nunca assume valor inferior a sua prioridade de base, nem superior a 15

Fator adicional em mquina multiprocessadoras: afinidade!


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Prioridade da thread varia de acordo com uso do processador

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

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Processos de igual prioridade so executados de acordo com uma


poltica FIFO
Problema de postergao indefinida (starvation)
Processo de baixa prioridade no alocado a CPU por sempre existir um
processo de mais alta prioridade a ser executado
Soluo:
! Envelhecimento

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)

Captulo 5

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


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

Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. (4th edition)


Addison-Wesley, 1994.

Captulo 4, 5 e 6

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 9

Sistemas Operacionais

73

Anda mungkin juga menyukai