Você está na página 1de 7

Processos (cap.

4)
Sistemas Operacionais Sistemas Operacionais
Sistemas Operacionais Processos 2
Sumrio Sumrio
Definio de processo no S.O.
Escalonamento de processos
Operaes implementadas sobre processos
Formas de cooperao entre processos
Comunicao entre processos
Vamos saltar: comunicao no modelo cliente-servidor
Sistemas Operacionais Processos 3
O conceito de processo O conceito de processo
Um S.O. executa uma variedade de programas
Sistemas em batch: jobs
Sistemas de tempo compartilhado: programas
Processo: um programa em execuo
Um fluxo de controle de execuo de instrues
Um contador de programa
Uma pilha de chamadas
Uma rea de dados (memria)
Sistemas Operacionais Processos 4
Etapas de um processo Etapas de um processo
Criao
nicializao do PCB
Definio da imagem na memria:
Execuo
Escalonamento pelo ncleo
Comunicao entre processos
Acesso a dispositivos
Terminao
Liberao de recursos
Cdigo
(intrues)
Dados
(variveis globais)
Heap
(alocao dinmica)
Pilha de execuo
Mapa de memria
Sistemas Operacionais Processos 5
Estado de um processo Estado de um processo
Condio do processo no S.O.:
novo: o processo acaba de ser criado
executando: CPU est executando suas instrues
em espera: processo aguarda algum evento
pronto: o processo espera pela CPU
terminado: processo completou sua execuo
Sistemas Operacionais Processos 6
Diagrama de estados de processo Diagrama de estados de processo
Novo
Pronto Executando
Em espera
Terminado
Criao de
processos
Destruio
de processos
Admitido no
sistema
nterrupo
Deciso do
escalonador
Sada
Requisio
de E/S E/S
completada
Sistemas Operacionais Processos 7
Bloco de controle de processo Bloco de controle de processo
(PCB) (PCB)
nformao associada com cada processo
Estado do processo
Contador de programa associado
Contedo dos registradores da CPU
nformaes de escalonamento da CPU
nformaes de gerncia de memria
nformaes de contabilidade
nformaes sobre estado de eventos de E/S
Sistemas Operacionais Processos 8
Bloco de controle de processo Bloco de controle de processo
(PCB) (PCB)
Sistemas Operacionais Processos 9
Escalonamento de processos Escalonamento de processos
Aumentar a utilizao do processador
Paralelismo aparente e transparente
O S.O. decide quem, quando e como!
Processo 1
Processo 2
Processo 3
Tempo
Processo 1
Processo 2
Processo 3
Tempo
Sistemas Operacionais Processos 10
Filas de escalonamento de Filas de escalonamento de
processos processos
Fila de jobs conjunto de todos os processos
Fila de prontos todos os processos presentes na
memria, prontos e esperando pela CPU
Podem haver vrias filas de prontos com nveis de
prioridades diferentes
Filas de dispositivos processos aguardando pela
resposta de um dispositivo de E/S
Sistemas Operacionais Processos 11
Filas de escalonamento de Filas de escalonamento de
processos processos
Sistemas Operacionais Processos 12
Representao do escalonamento Representao do escalonamento
de processos de processos
Sistemas Operacionais Processos 13
Escalonadores Escalonadores
Escalonadores de longo prazo (de jobs)
Seleciona os processos a serem inseridos na fila de
prontos (entrar no sistema)
Escalonadores de curto prazo (de CPU)
Seleciona o processo a receber a CPU a cada instante
Sistemas Operacionais Processos 14
Escalonadores Escalonadores
Escalonador de CPU chamado frequentemente
(mili-segundos)
deve ser muito rpido
Escalonador de jobs chamado com menor frequncia
(segundos, minutos)
pode ser mais lento e usar mais informao
controla o grau de multiprogramao (no. de processos
que podem executar "em paralelo)
Sistemas Operacionais Processos 15
Escalonadores Escalonadores
Processo podem ser descritos como:
"/O bound (intensivos em E/S)
passa mais tempo esperando por E/S que computando
muitas rajadas curtas de processamento
"CPU bound (intensivos em processamento)
passa mais tempo em processamento
perodos longos de processamento, na CPU
Sistemas Operacionais Processos 16
Escalonamento de mdio prazo Escalonamento de mdio prazo
Alguns sistemas podem retirar processos da fila de
prontos temporariamente
Sistemas Operacionais Processos 17
Troca/chaveamento de contexto Troca/chaveamento de contexto
( (context switch context switch) )
Mudana do processo em execuo
O S.O. deve salvar o estado do processo atual e
carregar o estado do novo processo
Troca de contexto overhead
Tempo gasto depende do hardware e da estrutura do
processo no S.O.
Sistemas Operacionais Processos 18
Troca/chaveamento de contexto Troca/chaveamento de contexto
( (context switch context switch) )
Sistemas Operacionais Processos 19
Criao de processos Criao de processos
Um processo cria (pai) outros (filhos), que por sua vez
podem criar ainda outros
Estabelece-se uma rvore de processos
Filhos podem ser cpias do processo pai ou derivados de
outros programas
Diversos nveis de compartilhamento so possveis entre
nveis da rvores (pais e filhos)
Execuo de pais e filhos pode ser concorrente ou pais
podem esperar pelos filhos
Sistemas Operacionais Processos 20
Criao de processos no Unix Criao de processos no Unix
fork()
S.O. cria um novo PCB
Cria-se uma cpia da memria do processo pai
Recursos de E/S so compartilhados
exec()
S.O. busca um programa da memria e o carrega sobre a
rea do programa que fez a chamada
Execuo passa para o incio do programa principal
carregado.
Sistemas Operacionais Processos 21
Criao de processos no Unix Criao de processos no Unix
if ((child_pid=fork()) > 0) {
/* Aqui o processo pai */
} else if (child_pid==0) {
/* Processo "filho" */
if(execl(programfile,/*...*/)<0) {
perror(Erro execl); exit(1);
}
fprintf(stderr,No chega aqui);
} else {
perror("Erro fork"); exit(2);
}
Sistemas Operacionais Processos 22
rvore de processos no Unix rvore de processos no Unix
Sistemas Operacionais Processos 23
Terminao de processos Terminao de processos
Ao terminar seu processamento, processo pede
ao S.O. para retir-lo da fila de jobs
O pedido pode ser bem comportado ou causado
por erros de execuo
O processo criador (pai) informado de seu fim
Os recursos do processo so liberados pelo S.O.
Sistemas Operacionais Processos 24
Terminao de processos Terminao de processos
O S.O. ou o processo pai pode interromper a
execuo de processos filhos
O filho pode ter excedido os recursos alocados
A tarefa do filho pode no ser mais necessria
O pai pode ter que terminar ele mesmo
sem um comando especial, o S.O. no permite
que processos filhos continuem sem seus pais
terminao em cascata
Sistemas Operacionais Processos 25
Cooperao entre processos Cooperao entre processos
Processos independentes no podem afetar
ou ser afetados pela execuo de outros
Vantagens da cooperao entre processos
Compartilhamento de informao
Aumento da velocidade de processamento
Modularidade
Convenincia
Sistemas Operacionais Processos 26
Problema do produtor/consumidor Problema do produtor/consumidor
Modelo bsico de cooperao geral
Produtor produz informao e entrega ao cons.
Consumidor utiliza informao recebida
Comunicao pode ser feita por um buffer
Buffer de tamanho limitado impe restries
Mesmo buffer ilimitado deve caber na memria
Comunicao tambm pode ser por mensagens
Sistemas Operacionais Processos 27
Buffer fixo (mem. compartilhada) Buffer fixo (mem. compartilhada)
Dados compartilhados em fila circular
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
#define BUF_FULL (((in+1)%BUFFER_SIZE)==out)
S pode usar BUFFER_SZE-1 posies
Sistemas Operacionais Processos 28
Buffer fixo (mem. compartilhada) Buffer fixo (mem. compartilhada)
item nextProduced;
while (1) {
while (((in+1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Sistemas Operacionais Processos 29
Buffer fixo (mem. compartilhada) Buffer fixo (mem. compartilhada)
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
Sistemas Operacionais Processos 30
Comunicao entre processos (PC) Comunicao entre processos (PC)
Sistema de troca de mensagens, sem memria
compartilhada
comunicao e sincronizao
Baseado em duas operaes bsicas:
send(message) tamanho fixo ou varivel
receive(message)
Sistemas Operacionais Processos 31
Comunicao entre processos (PC) Comunicao entre processos (PC)
Se P e Q querem se comunicar, eles devem:
estabelecer um canal de comunicao
trocar mensagens com send/receive
mplementao do canal de comunicao
escolha do meio: barramento de HW, memria
comportamento lgico: como funciona
Sistemas Operacionais Processos 32
Decises de implementao Decises de implementao
Como os canais so criados/estabelecidos?
Um canal pode ligar mais de dois processos?
Quantos canais podem ligar um mesmo par?
Qual a capacidade do canal?
As mensagens so de tam. fixo ou varivel?
Cada canal uni- ou bi-direcional?
Qual o comportamento de send/receive se
o canal est cheio, ou
as chamadas no ocorrem ao mesmo tempo?
Sistemas Operacionais Processos 33
Comunicao direta Comunicao direta
Processos identificam o outro explicitamente
send (P, message) envia msg p/ processo P
receive(Q, message) recebe msg do proc. Q
recepo pode usar mscara, como "Q=qualquer um
Sistemas Operacionais Processos 34
Comunicao direta Comunicao direta
Propriedades do canal de comunicao direta
Estabelecimento automtico
Cada canal liga exatamente um par de processos
Existe apenas um canal entre cada par
Canais so usualmente bi-direcionais
Sistemas Operacionais Processos 35
Comunicao indireta Comunicao indireta
Mensagens so originadas de e direcionadas para caixas
de correio (ports = portas/portos)
Cada caixa tem um identificador nico
Processos s se comunicam se compartilharem uma caixa
de correio
Caixas de correio so recursos independentes que
precisam ser criados e destrudos
Sistemas Operacionais Processos 36
Comunicao indireta Comunicao indireta
Propriedades dos canais
Estabelecimento vinculado ao compartilhamento
Um canal pode ligar vrios processos
Cada par de processos pode ter vrios canais
Canais podem ser uni- ou bi-direcionais
Sistemas Operacionais Processos 37
Comunicao indireta Comunicao indireta
Compartilhamento de caixas de correio
P1, P2 e P3 compartilham a caixa de correio A
P1 envia uma mensagem; quem recebe?
Diversas solues so possveis
Restringir o compartilhamento a dois processos
Permitir que s um processo chame receive de cada vez
Escolher arbitrariamente quem recebe a msg
Entregar uma cpia a cada receive
Sistemas Operacionais Processos 38
Sincronizao de primitivas Sincronizao de primitivas
Troca de mensagens: bloqueante ou no
Bloqueante: sncrona
No bloqueante: assncrona
Cada primitiva (send/receive) pode se comportar de uma
forma. Mais comum:
send assncrono (retorna imediatamente)
receive sncrono (bloqueia at mensagem chegar)
Sistemas Operacionais Processos 39
Controle de espao no canal Controle de espao no canal
mplementao da fila de mensagens associadas a um
canal enquanto em transito
Capacidade zero: o canal no guarda mensagens, o
transmissor deve faz-lo, esperando pelo receptor
(rendezvous)
Capacidade limitada: send assncrono enquanto a
capacidade no alcanada
Capacidade ilimitada: send nunca espera
Sistemas Operacionais Processos 40
Estamos saltando a seo 4.6:
comunicao entre processos em rede

Você também pode gostar