Processos e Threads
Prof. Mariana Massimino Feres
Processos e Threads
Definio de Processo
Processos e Threads
nome
PID
owner (UID)
registradores
gerais
prioridade de
execuo
data/ hora
de criao
registrador PC
Contexto de
Software
Contexto de
Hardware
registrador SP
tempo de
processador
quotas
Programa
privilgios
Espao de
Endereamento
endereos de memria
principal alocados
registrador
de status
Processos e Threads
Processos e Threads
Estados do processo
Indefinido
Bloqueado ou em espera
Pronto para execuo
Em execuo
Processos e Threads
E/ S
E/ S
UCP
UCP
tempo
(a) CPU-bound
tempo
(b) I/ O-bound
Processos e Threads
Processos Foreground
Processo Background
Processos e Threads
Processos e Threads
Processos independentes
Processos e Threads
Subprocesso
Processos e Threads
Processos e Threads
Nesse conceito surgiu o conceito de threads
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Thread 1
Thread 2
Thread 3
Contexto de
software
Espao de
endereamento
Processos e Threads
Ambiente monothread
Possui apenas uma thread no processo
Para implementar concorrncia na aplicao precisa
usar processos independentes ou subprocessos
Processos e Threads
Ambiente multithread
Os programas so associados a threads e no a
processos
Processo pode compartilhar seu espao de
endereamento com inmeras threads
Assim, podemos definir thread como sendo uma
subrotina de um programa que pode ser executada
de forma assncrona, concorrentemente ao
programa chamador
Programador deve especificar quais partes sero
associada a threads
Processos e Threads
Processo
Variveis
Programa Principal
Thread_1
PC
SP
Contexto de
Hardware
...
Espao de
endereamento
Call Sub_1
Thread_2
Sub_1
Ret
PC
SP
Thread_3
Sub_2
...
Ret
PC
SP
Contexto de
Hardware
Fim
Contexto de
Hardware
Call Sub_2
Processos e Threads
Processos e Threads
Arquitetura microkernel
Processos e Threads
Processos e Threads
Vantagem:
Desvantagem:
tratamento individual de
sinais
Thread 4
Thread 2
Thread 1
Arquitetura e implementao
Em modo usurio
Thread 0
Modo
usurio
Biblioteca
Kernel
Modo
kernel
Processos e Threads
Em modo Kernel
Baixo desempenho
Utiliza muitas mudanas de modos de acesso
Kernel
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
Modo
usurio
Modo
kernel
Processos e Threads
Modo hbrido
TMU 5
TMU 4
TMU 3
TMU 2
TMU 1
TMU 0
Modo
usurio
Biblioteca
TMK 0
TMK 1
TMK 2
TMK 3
Modo
kernel
Kernel
Processos e Threads
Thread 4
Thread 2
Thread 1
Scheduler Activation
O ncleo do S.O. troca mensagens com a biblioteca
de threads
Evita mudanas de modo de acesso desnecessrias
Thread 0
Modo
usurio
Biblioteca
Kernel
Modo
kernel