Escolar Documentos
Profissional Documentos
Cultura Documentos
• Introdução
• Questões
Introdução
• Os processos podem executar de forma concorrente
1
Operações nos Processos
Criação
• Um processo pode criar novos processos através de uma chamada
ao sistema para a criação de processo, durante sua execução
• O processo criador é chamado de processo pai
• O processo criado (processo novo) é chamado de processo filho ou
subprocesso
Criação
• Processo Pai cria processos filhos
• Processos filhos podem criar novos processos filhos
A
• Árvore de processos
• Compartilhamento recursos B C D
• Pais e filhos compartilham todos os recursos
• Filhos compartilham um
E F G
subconjunto dos recursos dos pais
• Pais e filhos não compartilham recursos
H
• Execução
• Pais e filhos executam concorrentemente I
• Pai espera até que o filho acabe
2
Operações nos Processos
Criação
• Quando um processo cria um subprocesso, esse subprocesso pode
ser capaz de obter seus recursos diretamente do S.O. ou pode ser
limitado a um subconjunto dos recursos do processo pai (limitar um
processo filho a um subconjunto de recursos do pai evita que algum
processo sobrecarregue o sistema criando subprocessos demais).
• O processo pai pode ter que dividir seus recursos entre os filhos, ou
compartilhar recursos entre vários filhos (como memória ou
arquivos).
Criação
• Quando um processo cria um novo processo, existem duas
possibilidades em termos de execução:
3
Operações nos Processos
Criação
• Existem também duas opções em termos de espaço de
endereçamento do novo processo:
• O processo filho é uma cópia do processo pai (duplicata)
• O processo Filho contém um programa carregado
• Exemplo do UNIX
• Processo é identificado por um número inteiro
(identificador de processo)
Criação
4
Criação
init
bash
vi myprog finger
Criação
inetd dtlogin
pid = 140 pid = 251
telnetdeamon Xsession
pid = 7776 pid = 284
Csh sdt_shel
pid = 7778 pid = 340
ls Cat
pid = 2123 pid = 2536
5
Operações nos Processos
Término
• Um processo termina quando acaba de executar sua instrução final e
pede que o S.O. o exclua, usando a chamada ao sistema exit
• O processo filho pode retornar dados (Saída) para o pai (via chamada
wait)
• Recursos dos processo são liberados pelo S.O. (mem. Física e virtual,
arquivos abertos, buffers de I/O)
Término
• Pai pode terminar a execução do processo filho (abort), por
vários motivos:
• Filho pode ter excedido os recursos alocados (o pai deve ter um
mecanismo para isnpecionar o estado dos seus filhos)
• Tarefa associada ao filho não é mais requerida
• O pai está saindo (término do pai). O S.O não permite que um filho
continue se o pai terminar
• Término em Cascata
• Muitos S.O. (Ex. VMS) não permitem que filho continue sem pai
• Se um processo pai terminar (de forma normal ou anormal), todos os
filhos são eliminados (término em cascata)
• Normalmente, este término em cascata é iniciado pelo S.O.
6
Operações nos Processos
Processos Cooperativos
• Os processos concorrentes executando no S.O. podem ser
processos independentes ou cooperativos.
• Processos Independentes
• Processo não pode afetar ou ser afetado pela execução de outro processo
(não compartilham dados)
• Processos Cooperativos
• Processo pode afetar ou ser afetado pela execução de outro processo
(compartilham dados)
Processos Cooperativos
• Motivos para fornecer um ambiente que permita a cooperação
(continuação):
• Velocidade de Computação : Se queremos que uma tarefa execute mais
rápido, é preciso quebrá-la em subtarefas, cada qual sendo executada em
paralelo com as demais. (o aumento na velocidade só pode ser alcançado
se o computador tiver multiplas CPU´s ou canais de I/O)
• Modularidade: Construção do sistema de forma modular, dividindo as
funções dos sistemas em processos separados.
• Conveniência: Mesmo um usuário individual pode ter muitas tarefas nas
quais quer trabalhar em determinado momento. Ex. editar imprimir,
compilar, etc
7
Processos Cooperativos
Produtor - Consumidor
• Para ilustrar esse conceito, vamos considerar o problema do
produtor-consumidor, que é um paradigma comum para processos
cooperativos
Processos Cooperativos
Produtor - Consumidor
• Execução Concorrente
• Buffer é preenchido pelo Produtor
• Buffer é esvaziado pelo Consumidor
8
Processos Cooperativos
Produtor - Consumidor
• Produtor produz um item enquanto um Consumidor está consumindo
outro item
9
Comunicação entre Processos
• Implementação Lógica
• Comunicação direta ou indireta
• Comunicação simétrica ou assimétrica
• Buffering automático ou explícito
• Enviar por cópia ou por referência
• Mensagem de tamanho fixo ou variável
10
Sistema de Troca de Mensagens
Comunicação Direta
• Cada processo que deseja se comunicar precisa identificar
explicitamente o Destino ou Remetente da comunicação
• send (P, mensagem) envia mensagem para processo P
• receive (Q, mensagem) recebe mensagem do processo Q
Comunicação Indireta
• O enviou e recebimento de mensagens é feito por caixas de correio
(portas). Uma caixa de correio pode ser vista de forma abstrata como
um objeto no qual as mensagens podem ser colocadas por processos e
do qual as mensagens podem ser retiradas. Cada caixa de correio tem
uma identificação exclusiva.
11
Sistema de Troca de Mensagens
Comunicação Indireta
• Propriedades do canal de comunicação para este esquema:
Questões
• Quantos pais um filho pode ter ? • Por que um processo pai terminaria
Explique um processo filho ?
12
Referência Bibliográfica
• Sistemas Operacionais
• Deitel, Deitel e Choffnes;
• Ed. Pearson 3a Edição
• www.prenhall.com/deitel_br
13