Gerncia do processador
2a edio Captulo 4
Reviso: Fev/2003
Sumrio
Sistemas Operacionais 2
Introduo
Implementao de processos
! Estruturas de dados
Oliveira, Carissimi, Toscani
Sistemas Operacionais 3
Representao de processo
Sistemas Operacionais 4
Bloco descritor de processo
Contexto de execuo
Apontadores para encadeamento dos prprios descritores de processo
etc
Sistemas Operacionais 5
Os processos e as filas
1 2
! Alocao dinmica
3
Sistemas Operacionais 6
Exemplo de bloco descritor de processos (1)
unsigned tempo_cpu;
unsigned proc_pc;
unsigned proc_sp;
unsigned proc_acc;
Oliveira, Carissimi, Toscani
unsigned proc_rx;
struct desc_proc *proximo;
}
Sistemas Operacionais 7
Exemplo de bloco descritor de processos (2)
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
Sistemas Operacionais 9
O modelo de processo
Processo
Espao de
usurio
Sistemas Operacionais 10
Exemplo: modelo de processo Unix (linux)
4 Gbytes Heap
Instituto de Informtica - UFRGS
Program Counter
(PC) Texto Cdigo
0x0000000
Sistemas Operacionais 11
Vrios processos
Processo 1 Processo n
Espao de
usurio SP
Pilha PC Cdigo Dados
... SP Pilha
PC
Cdigo Dados
Oliveira, Carissimi, Toscani
Sistemas Operacionais 12
Vrios fluxos em um nico processo
PC1
Conceito de thread Espao de SP3
usurio PC3
Oliveira, Carissimi, Toscani
Sistemas Operacionais 13
Multiprogramao pesada
Sistemas Operacionais 14
Multiprogramao leve
Sistemas Operacionais 15
Implementao de threads
Espao de sistema
Oliveira, Carissimi, Toscani
Sistemas Operacionais 16
Modelos de processos single Threaded e multithreaded
Single-Threaded Multithreaded
Thread Thread Thread
Sistemas Operacionais 17
Modelo N:1
Processo
PC1 SP1
SP Escalonador
PC2 SP2 Pilha PC Cdigo Dados biblioteca
PCn SPn
Instituto de Informtica - UFRGS
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
Sistemas Operacionais 20
Modelo 1:1
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
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
Escalonador
sistema operacional
CPU
Sistemas Operacionais 25
Porque utilizar threads ?
Sistemas Operacionais 26
Vantagens de multithreading
Sistemas Operacionais 27
Leituras complementares
Sistemas Operacionais 28
Sumrio
Sistemas Operacionais 29
Escalonamento
Sistemas Operacionais 30
Objetivos do escalonamento
Sistemas Operacionais 31
Situaes tpicas para execuo do escalonador
Sistemas Operacionais 32
Eventos de transio de estados
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
Apto
Instituto de Informtica - UFRGS
Apto
Oliveira, Carissimi, Toscani
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
Sistemas Operacionais 36
Escalonador mdio prazo
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
Fila de bloqueados
Evento Espera por evento
Sistemas Operacionais 39
Tipos de escalonador
Preemptivo:
Instituto de Informtica - UFRGS
! Interrupo de relgio
Sistemas Operacionais 40
Algoritmos de escalonamento (1)
Sistemas Operacionais 41
Algoritmos de escalonamento (2)
Sistemas Operacionais 42
FIFO - First In First Out (1)
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)
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
Sistemas Operacionais 45
SJF - Shortest Job First (2)
Sistemas Operacionais 46
Prevendo o futuro... (1)
5. Define - se : n +1 = t n + (1 ) n .
anteriores de processador
Sistemas Operacionais 47
Prevendo o futuro... (2)
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
Sistemas Operacionais 50
Sumrio
Sistemas Operacionais 51
Tipos de escalonador (lembrando...)
Preemptivo:
Instituto de Informtica - UFRGS
! Interrupo de relgio
Sistemas Operacionais 52
Eventos de transio de estados
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
Sistemas Operacionais 54
RR - Round Robin (1)
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)
FIFO
Oliveira, Carissimi, Toscani
Sistemas Operacionais 56
Problemas com o Round Robin
Sistemas Operacionais 57
Escalonamento com prioridades
SJF (SPN)
Sistemas Operacionais 58
Implementao de escalonador com prioridades
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
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
Sistemas Operacionais 61
Problemas com prioridades
Soluo:
Mltiplas filas com realimentao
Oliveira, Carissimi, Toscani
Sistemas Operacionais 62
Mltiplas filas com realimentao
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)
Fator nice
Prioridades so divididas em faixas de acordo com o tipo do usurio
Oliveira, Carissimi, Toscani
Sistemas Operacionais 64
Escalonamento UNIX (1)
Processos de usurio
Sistemas Operacionais 65
Escalonamento UNIX (2)
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
Sistemas Operacionais 66
Estudo de caso: escalonamento Linux
Sistemas Operacionais 67
Escalonamento linux (tempo real)
Sistemas Operacionais 68
Escalonamento linux (timesharing)
Crditos
Crditos = + prioridade
2
Sistemas Operacionais 69
Estudo de caso: escalonamento windows 2000
Sistemas Operacionais 70
Escalonamento windows 2000 (classe varivel)
Sistemas Operacionais 71
Escalonamento no preemptivo com prioridades
Sistemas Operacionais 72
Leituras complementares
Captulo 4, 5 e 6
W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.
Captulo 9
Sistemas Operacionais 73