Escolar Documentos
Profissional Documentos
Cultura Documentos
Processos+threads 2pp
Processos+threads 2pp
Mdulo 4: Processos
Conceito de Processo
"
Escalonamento de processos
"
"
Processos cooperantes
"
4.1
Sistemas Operacionais
Conceito de Processo
"
"
"
"
Um processo inclui:
Contador de programa (PC)
Pilha
Segmento (rea) de dados
4.2
Sistemas Operacionais
Estados de Processos
"
4.3
Sistemas Operacionais
4.4
Sistemas Operacionais
4.5
Sistemas Operacionais
4.6
Troca de processos
(ou context switch)
Sistemas Operacionais
4.7
Sistemas Operacionais
"
"
4.8
Sistemas Operacionais
4.9
Representao do escalonamento de
processos
Sistemas Operacionais
4.10
Sistemas Operacionais
Escalonadores
"
"
4.11
Sistemas Operacionais
4.12
Sistemas Operacionais
Escalonadores (Cont.)
"
"
"
"
Sistemas Operacionais
"
"
"
4.14
Sistemas Operacionais
Criao de processos
"
Processo pai cria filhos (ou clones), que por sua vez criam
outros formando uma rvore de processos
"
"
Execues possveis:
Pai e filhos executam concorrentemente
Pai espera at filhos terminarem
4.15
Sistemas Operacionais
"
"
Exemplos do UNIX
Chamada a fork cria novo processo
Chamada execve usada depois do fork (no cdigo do
clone) para substituir programa no espao do clone
4.16
Sistemas Operacionais
4.17
Sistemas Operacionais
Trmino de Processos
"
"
4.18
Sistemas Operacionais
Processos Cooperantes
"
"
"
4.19
Sistemas Operacionais
Problema ProdutorConsumidor
"
"
4.20
Sistemas Operacionais
Shared data
var n;
type item = ;
var buffer. array [0..n1] of item;
in, out: 0..n1;
Producer process
repeat
Sistemas Operacionais
BoundedBuffer (Cont.)
Consumer process
repeat
while in = out do noop;
nextc := buffer [out];
out := out+1 mod n;
until false;
4.22
Sistemas Operacionais
Threads
"
"
"
"
"
"
OBS: para executar com threads necessrio uma pilha por thread
(uma s nao suficiente), ao contrario das reas de cdigo, vars. e
heap que podem ser compartilhadas peals threads pares.
4.23
Sistemas Operacionais
Threads (Cont.)
"
Em uma tarefa com mltiplas threads, enquanto uma thread est bloqueada
e esperando, uma segunda thread na mesma tarefa pode executar
Cooperao de mltiplas threads no mesmo job confere maior vazo
(throughput) e melhoria de desempenho
Aplicaes que requerem compartilhamento de dados se beneficiam ao
utilizar threads (ex. buffer comum em padro produtorconsumidor)
"
"
Threads podem ser suportadas pelo ncleo do SO (ex. Mach, OS/2, Linux).
"
"
Sistemas Operacionais
4.25
Sistemas Operacionais
"
"
Sistemas Operacionais
Solaris 2 Threads
4.27
Sistemas Operacionais
"
"
"
"
Sistemas Operacionais
Questes de Implementao
"
"
"
"
"
"
4.29