Escolar Documentos
Profissional Documentos
Cultura Documentos
Processos+threads 2pp PDF
Processos+threads 2pp PDF
4.1
Mdulo 4: Processos
Conceito de Processo
Escalonamento de processos
Processos cooperantes
Um processo inclui:
Contador de programa (PC)
Pilha
Segmento (rea) de dados
Sistemas Operacionais
4.3
Estados 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
Sistemas Operacionais
4.16
Criao de Processos (Cont.)
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
Sistemas Operacionais
4.17
Uma rvore de processos em um sistema UNIX tpico
Sistemas Operacionais
4.18
Trmino de Processos
Cascateamento de trminos
Sistemas Operacionais
4.19
Processos Cooperantes
Shared data
var n;
type item = ;
var buffer. array [0..n1] of item;
in, out: 0..n1;
Producer process
repeat
Consumer process
repeat
while in = out do noop;
nextc := buffer [out];
out := out+1 mod n;
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.
Sistemas Operacionais
4.24
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).