Você está na página 1de 38

UESB

Sistemas de Informao
Processos e Threads

Prof. VANILDO MEIRA
Prof. Vanildo Meira
Reviso das Questes de Reviso
3. O que a tcnica spooling?
9. Diferencie interrupo e trap?
10. Explique a Segunda Classificao dos SO.

Sistemas Monolticos
Sistemas
em
Camadas
Mquinas Virtuais
Sist. Cliente/Servidor
Prof. Vanildo Meira
Reviso das Questes de Reviso
11. Explique o que um pipeline 3 estgios?
Prof. Vanildo Meira
Reviso das Questes de Reviso
12. O que uma CPU superescalar?

Prof. Vanildo Meira
Processo - Reviso





1. O que mesmo um Processo?
2. dinmico ou esttico?
3. Pode ser constitudo por...
4. Quais os trs principais estados de um processo?
5. Diferencie: Bloqueado-Suspenso x Pronto-Suspenso.
6. O que um processo zumbi (Unix)?
7. Faa analogia Programa-Processo em oficina mecnica.
8. Neste caso, quem seria o escalonador?
9. Quais os principais eventos que criam Processos?
10. Quais os principais eventos que matam Processos?
11. Fale sobre hierarquia de processos.
12. Existe hierarquia no Windows?
Prof. Vanildo Meira
Tipos de Processos





(a) Processo Foreground
(b) Processo Background
sada
sada
arquivo
de sada
terminal terminal
entrada
entrada
arquivo
de entrada
Prof. Vanildo Meira
Tipos de Processos





(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound
Prof. Vanildo Meira
Implementao de Processos





O S.O. precisa manter informaes sobre o
estado corrente de cada processo e de cada
recurso. Exemplo: Estado do processo,
Contador de programa, Ponteiro de pilha,
Alocao de memria, Arquivos abertos, etc.
Prof. Vanildo Meira
Implementao de Processos





Para tanto, ele implementa
uma tabela chamada PCB
(Process Control Block) ou
Bloco de Controle do
Processo, contendo, entre
outras informaes:
Estado do processo,
Contador de programa
Ponteiro de pilha
Alocao de memria
Arquivos abertos, etc.
.
.
.
.
.
.
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memria
Lista de arquivos abertos
Prof. Vanildo Meira
Implementao de Processos
Prof. Vanildo Meira
Implementao de Processos





Quando um processo passa do estado Em
execuo para o estado pronto ou para o
estado bloqueado, os campos do bloco de
controle do processo cujo valor foi
modificado so salvos.
Ao escalonar um novo processo estes valores
so restaurados na CPU (ex. PC, ponteiro de
pilha, registradores, etc.).
Prof. Vanildo Meira
Implementao de Processos





Resumo das aes executadas na ocorrncia de
uma interrupo:
Prof. Vanildo Meira
Estrutura de Dados dos Processos





Prof. Vanildo Meira
Sinais x Interrupes/Excees





Hardware
Sistema Operacional
Interrupes
Excees
Sinai s
Processo Processo
Programa
Contexto de
Software
Contexto de
Hardware
Espao de
Endereamento
Prof. Vanildo Meira
Contexto dos Processos





Prof. Vanildo Meira
1. Contexto de hardware





Refere-se ao contedo dos registradores da
CPU para um certo processo.
Quando o processo perde a utilizao da CPU, o
sistema salva estas informaes referente
quele processo.
Chama-se de mudana de contexto, salvar o
contedo dos registradores do processo que
esta saindo executado e carreg-los com os
valores referentes ao do novo processo que
ser executado a seguir.
Prof. Vanildo Meira
Mudana de Contexto





Carrega registradores do
Processo B
Carrega registradores do
Processo A
Sistema Operacional
Salva registradores do
Processo A
executando
executando
executando
Salva registradores do
Processo B
Processo A Processo B
Prof. Vanildo Meira
2. Contexto de software





Neste contexto so especificadas caractersticas
e limites dos recursos que podem ser alocados
pelo processo, por exemplo:
Nmero mximo de arquivos abertos
simultaneamente,
Prioridade de execuo e
Tamanho do buffer dos dispositivos de E/S.
Muitas destas caractersticas so determinadas
no momento da criao do processo, enquanto
outras podem ser alteradas posteriormente.
Prof. Vanildo Meira
Grupos de Contexto de software





O contexto de software composto por
trs grupos de informaes sobre o
respectivo processo:
A. Identificao,
B. Quotas e
C. Privilgios.
Prof. Vanildo Meira
A. Identificao





Cada processo criado pelo sistema recebe uma
identificao nica (chamada de PID Process
IDentification), representada por um nmero e
em alguns casos tambm atravs de um nome.
atravs do PID que o SO e outros processos
podem fazer referncia a qualquer processo
existente, consultando e at alterando suas
caractersticas.
*O processo possui tambm a identificao do
usurio (UID) ou do processo que o criou
(owner).
Prof. Vanildo Meira
B. Quotas





So os limites de cada recurso do sistema que um
processo pode alocar. Caso uma quota seja
insuficiente, o processo poder ser executado
lentamente, interrompido ou mesmo no ser
executado. Alguns exemplos de quotas nos SO
modernos:
N mx.. arquivos abertos simultaneamente;
Tamanho mximo de memria principal e
secundaria que o processo pode alocar;
N. mx.. operaes de E/S pendentes;
T mx. buffer para operaes de E/S;
N. mx. sub processos e threads criados.
Prof. Vanildo Meira
C. Privilgios





Os privilgios ou direitos definem as aes
que um processo pode fazer em ralao a ele
mesmo (Ex. limite de recursos) , aos demais
processos (Ex. prioridade de execuo) e ao
SO (acesso ao Hw). Por exemplo, processos
com maior prioridade retiram do processador
processo com menor prioridade.
No sistema Unix, existe a conta root, no
Windows 2000 a conta administrador e no
Open VMS a conta system.
Prof. Vanildo Meira
3. Espao de endereamento





a rea de memria pertencente ao
processo onde as instrues e dados do
programa so armazenados para execuo.
Cada processo possui seu prprio espao de
endereamento, que deve ser devidamente
protegido do acesso dos demais processos.

A Figura a seguir ilustra as caractersticas da
estrutura (contextos) de um processo.
Prof. Vanildo Meira
Contexto dos Processos





Programa
Contexto de
Software
prioridade de
execuo
registrador PC
data/hora
de criao
tempo de
processador
registrador SP
quotas
privilgios
endereos de memria
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espao de
Endereamento
Prof. Vanildo Meira
Mudana de Contexto





Como vimos anteriormente, muitas vezes
preciso mudar de contexto. Esta uma
operao cara (demanda muita CPU).
Para trocar de atividade precisamos sempre
mudar o contexto? A soluo seria realizar
mltiplas atividades num mesmo contexto.
Foi a que surgiram os threads. A principal
razo para existirem os threads que na
maioria das aplicaes existem atividades que
podem ser executadas ao mesmo tempo.
Prof. Vanildo Meira
Thread





Podemos definir thread como uma linha de
execuo onde tarefas so realizadas no
mesmo contexto, ou seja, duas ou mais tarefas
executadas simultaneamente.
De forma simplificada, um thread pode ser
definido como uma sub-rotina de um
programa que pode ser executada de forma
assncrona (paralelamente ao chamador).
Deve haver no SO suporte para implementao
dos threads.
Prof. Vanildo Meira
Thread





Uma linha de execuo permite que o usurio
de programa utilize uma funcionalidade do
ambiente enquanto outras linhas de execuo
realizam outros clculos e operaes.
Os sistemas que suportam apenas uma nica
linha de execuo so chamados de
monothread (SO antigos) e aqueles que
suportam mltiplas linhas de execuo so
chamados de multithread (SO modernos: Unix,
Sun, Solaris, Windows a partir do 2000, Linux...).
Prof. Vanildo Meira
Thread x Processo





Permite separar contexto de tarefa:
Processo: unidade de contexto.
Thread: unidade de atividade ou tarefa.
Prof. Vanildo Meira
Thread





Itens inerentes ao processo: Espao de
endereamento, variveis globais, arquivos
abertos, processos filhos, alarmes pendentes,
sinais e manipuladores de sinais, estatsticas.
Compartilhados pelas threads do processo.
Itens inerentes aos threads (privativos do
thread): PC, registradores, pilha e estado.
Cada thread tem sua
pilha de execuo ->
Prof. Vanildo Meira
Thread





(a) Trs processos com uma thread cada
(b) Um processo com trs threads
Prof. Vanildo Meira
Multithread






Mltiplos threads em um processo compartilham
espao de endereamento (cdigo e variveis),
arquivos abertos, filhos, alarmes, sinais, e
outros recursos (no h proteo de acesso a
memria entre threads de mesmo processo.
O controle da CPU alternado entre os threads.
De forma semelhante aos processos os estados
dos threads so: pronto, bloqueado e em
execuo.
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espao de
endereamento
C
o
n
t
e
x
t
o

d
e
s
o
f
t
w
a
r
e
Thread 3 Thread 2 Thread 1
Prof. Vanildo Meira
Multithread





Prof. Vanildo Meira
Thread - Vantagens





Compartilham espao de endereamento;
Ganho mximo de desempenho para threads E/S
bound (CPU-bound vantagem mnima).
Maior facilidade e rapidez para criar e destruir
threads (at 100 x mais rpido que processo);
Concorrncia melhor desempenho quando as
threads alternam uso da CPU e E/S;
Sistemas mltiplas CPUs paralelismo real.
Exemplo: Editor de texto threads diferentes
para interface, formatao, salvamento
automtico e outras funes.
Prof. Vanildo Meira
Editor de textos com 3 threads







Implementao de threads
No espao do processo de usurio;
No espao do ncleo do SO.
Hibridos.
Prof. Vanildo Meira
Threads de usurio





So implementadas no espao do usurio.
Gerenciados por pacotes de threads, inseridos
no cdigo do processo sistema supervisor.
Procedimentos do supervisor: thread_create,
thread_exit, thread_wait, thread_yield, etc.
Tabela de threads por processo espao de
memria do processo Um bloco descritor por
thread: PC, ponteiro de pilha de execuo,
registradores, estado, etc.
Prof. Vanildo Meira
Threads de ncleo





Gerenciadas pelo ncleo do SO que mantm uma
tabela de threads para todas os threads do
sistema Cada descritor: PC, registradores,
estado, etc.
Criadas e terminadas atravs de chamadas SO.
Escalonador seleciona thread entre as threads
prontas do sistema (de qualquer processo).
Custo maior para gerenciamento.
Podem ser escalonadas em processadores
diferentes em um sistema paralelo.
Prof. Vanildo Meira
Threads hbridos





Usar threads de ncleo e multiplexar threads de
usurio Ncleo mantm/escalona suas threads.
Cada thread de ncleo possui um conjunto de
threads usurio, gerenciadas por sistema supervisor.
Ativaes do escalonador:
Ncleo cria CPUs virtuais para processo, supervisor
do processo escalona threads nestas CPUs.
Se uma thread bloquear o ncleo ele ativa o
supervisor do processo mecanismo upcall.
Supervisor trata a thread bloqueada e pode
escalonar outra thread.
Prof. Vanildo Meira
Threads pop-up

Você também pode gostar