Gerncia do processador
2a edio
Reviso: Fev/2003
Captulo 4
Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Sistemas Operacionais
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
Sistemas Operacionais
Representao de processo
Processo um programa em execuo
reas na memria para cdigo, dados e pilha
Sistemas Operacionais
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
livres
0
Aptos
4
1
Executando
Bloqueado
3
5
Sistemas Operacionais
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;
}
Sistemas Operacionais
*desc_livre;
*espera_cpu;
*usando_cpu;
*bloqueados;
struct
struct
struct
struct
tab_desc[i].prox = NULL;
desc_livre = &tab_desc[0];
espera_cpu= NULL;
usando_cpu= NULL;
bloqueado = NULL;
Sistemas Operacionais
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
Espao de
usurio
Espao de
sistema
Sistemas Operacionais
SP Pilha
PC Cdigo Dados
Dados
Pilha
10
4 Gbytes
Pilha
Heap
BSS
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
SP
Espao de
sistema
Sistemas Operacionais
Pilha
Processo n
PC Cdigo Dados
Dados
Pilha
...
SP Pilha
PC
Dados
Cdigo
Dados
Pilha
12
Cdigo
Dados
Descritor de processo
Conceito de thread
Oliveira, Carissimi, Toscani
Sistemas Operacionais
Processo 1
Pilha
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
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
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
Sistemas Operacionais
16
Single-Threaded
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
18
SP1
PC2
SP2
PCn
Processo
SPn
Espao de
usurio
Oliveira, Carissimi, Toscani
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:
Sistemas Operacionais
20
Modelo 1:1
Threads a nvel do sistema
kernel level threads ou ainda system scope
Sistemas Operacionais
21
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:
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
Sistemas Operacionais
24
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
Sistemas Operacionais
26
Vantagens de multithreading
Sistemas Operacionais
27
Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora
Sagra-Luzzato, 2001.
Captulo 4.
Captulo 4
Sistemas Operacionais
28
Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Sistemas Operacionais
29
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
Sistemas Operacionais
31
Sistemas Operacionais
32
Admisso
Apto
Trmino
Destruio
Executando
Seleo
Criao
Ocorrncia de evento
(interrupo)
Sistemas Operacionais
Bloqueado
Sincronizao ou
requisio de E/S
33
Processo 1
Salva estado PCB0
Apto
Apto
Salva estado PCB1
Oliveira, Carissimi, Toscani
Apto
34
Nveis de escalonamento
Longo prazo
Mdio prazo
Curto prazo
Sistemas Operacionais
35
Sistemas Operacionais
36
Sistemas Operacionais
37
Interrupo de relgio
Interrupo de entrada/sada
Chamadas de sistemas
Sinais (interrupo software)
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)
Processos
Interrupo de tempo
Evento
Sistemas Operacionais
Fila de bloqueados
39
Tipos de escalonador
Sistemas Operacionais
40
Sistemas Operacionais
41
Algoritmos preemptivos
Sistemas Operacionais
42
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
Processo
A
B
C
D
Tempo
12
8
15
5
A
B
C
D
0
Sistemas Operacionais
12
20
35
40
44
Processo
A
B
C
D
Tempo
12
8
15
5
A
B
C
D
0
13
25
40
Sistemas Operacionais
45
Sistemas Operacionais
46
n +1 = t n + (1 ) n .
Sistemas Operacionais
47
n+1 = tn
Sistemas Operacionais
48
14
10
8
Real
Previsto
6
Oliveira, Carissimi, Toscani
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
Sistemas Operacionais
50
Sumrio
Implementao do conceito de processos e threads
Escalonamento
Escalonadores no -preemptivos
Escalonamento
Escalonamento preemptivos
Sistemas Operacionais
51
Sistemas Operacionais
52
Admisso
Apto
Destruio
Executando
Seleo
Criao
Ocorrncia de evento
(interrupo)
Sistemas Operacionais
Bloqueado
Sincronizao ou
requisio de E/S
53
Escalonadores preemptivos
Por interrupo de tempo
Round robin (circular)
Por prioridades
Sistemas Operacionais
54
Interrupo de tempo
A
B
C
D
0
Sistemas Operacionais
12 15 18
23
28
34
40
55
Sistemas Operacionais
56
Sistemas Operacionais
57
Round-Robin
FIFO (FCFS)
SJF (SPN)
Sistemas Operacionais
58
Trmino
CPU
Prioridade 0
Fila apto 1
Prioridade 1
Oliveira, Carissimi, Toscani
Fila apto 0
Fila apto n
Prioridade n
Preempo
Fila de bloqueados
Evento
Sistemas Operacionais
Exemplo: pthreads
Sistemas Operacionais
60
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
Soluo:
Mltiplas filas com realimentao
Oliveira, Carissimi, Toscani
Sistemas Operacionais
62
Fila apto 0
Dispatch
Trmino
CPU
Fila apto 1
Fila apto n
Oliveira, Carissimi, Toscani
Preempo
Possibilidade de
trocar de fila
Fila de bloqueados
Evento
Sistemas Operacionais
63
Sistemas Operacionais
64
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
decay =
2 load _ average
(2 load _ average + 1)
p _ usrpri = PUSER +
Oliveira, Carissimi, Toscani
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
Sistemas Operacionais
67
Sistemas Operacionais
68
Crditos =
Sistemas Operacionais
Crditos
+ prioridade
2
69
Sistemas Operacionais
70
Sistemas Operacionais
71
Sistemas Operacionais
72
Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Sagra-Luzzato, 2001.
Captulo 5
Captulo 4, 5 e 6
Sistemas Operacionais
73