Você está na página 1de 13

Roteiro

• Introdução

• Operações nos Processo


• Criação
• Término
• Processos Cooperativos
• Comunicação entre Processos

• Questões

Operações nos Processos

Introdução
• Os processos podem executar de forma concorrente

• S.O. provê mecanismos especiais:


• Criação
• Destruição (término)
• Processos Cooperativos
• Comunicação inter-processos
• Interprocess communication (IPC)

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

• Exatamente um processo pai cria um processo filho

• Quando um processo pai é destruído, o SO pode responder de duas


formas:
• Destruir todos os processos filhos do processo pai destruído
• Permitir os processos filhos continuarem independentes de seus pais

Operações nos Processos

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

2007 Sistemas Operacionais I - SO I Parte V - prof. Gregorio Perez 4

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).

• Além dos recursos mencionados, os dados de inicialização (entrada)


podem ser passados do processo pai para o processo filho.

Operações nos Processos

Criação
• Quando um processo cria um novo processo, existem duas
possibilidades em termos de execução:

• O processo pai continua a executar de forma concorrente com os filhos


• O processo pai espera até que alguns ou todos os filhos tenham
terminado.

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)

• Cópia filha do processo pai


• A chamada de sistema fork cria novo processo que consiste em uma cópia
do espaço de endereçamento do processo original
• Permite que o processo pai se comunique facilmente com o filho
• Ambos (pai e filho) continuam a execução da instrução após fork
• Código de retorno de fork é zero para o filho, enquanto o identificador de
processo filho é retornado ao pai

Criação

Árvore de Processos (UNIX)


raiz

pagedaemon swapper init

usuário 1 usuário 2 usuário 3

4
Criação

Árvore de Processos (Linux)

init

kswap khubd pdflush login xfs klogd

bash

vi myprog finger

Criação

Árvore de Processos (Solaris)


sched
Pid = 0

init pageout fsfhush


pid = 1 pid = 2 pid = 3

inetd dtlogin
pid = 140 pid = 251

telnetdeamon Xsession
pid = 7776 pid = 284

Csh sdt_shel
pid = 7778 pid = 340

Netscape Emacs Csh


pid = 7785 pid = 8105 pid = 1400

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)

• Existem circunstâncias adicionais nas quais ocorre o término de um


processo. Um processo pode causar o término de outro processo via uma
chamada adequada ao sistema (ex. abort)

Operações nos Processos

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)

• Motivos para fornecer um ambiente que permita a cooperação:


• Compartilhamento de informações: Como vários usuários podem estar
interessados na mesma informação (ex. um arquivo compartilhado), é
preciso fornecer um ambiente que permita o acesso concorrente a esses
tipos de recursos

Operações nos Processos

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

• Processo Produtor produz informação que é consumida por um


processo Consumidor. Exemplo

• Programa de impressão produz caracteres que são


consumidos pelo driver do dispositivo de impressão

• Para permitir que os processos de produtor e consumidor executem


de forma concorrente, é preciso ter disponível um buffer de itens que
pode ser preenchido pelo produtor e esvaziado pelo consumidor

Processos Cooperativos

Produtor - Consumidor
• Execução Concorrente
• Buffer é preenchido pelo Produtor
• Buffer é esvaziado pelo Consumidor

• O produtor e o consumidor devem estar sincronizados, de


modo que o consumidor não tente consumir um item que ainda
não tenha sido produzido. Nesse caso o consumidor deve
aguardar até que o item seja produzido

8
Processos Cooperativos

Produtor - Consumidor
• Produtor produz um item enquanto um Consumidor está consumindo
outro item

• Produtor e Consumidor devem ser sincronizados


• Consumidor não tenta consumir um item ainda não produzido
• Consumidor deve esperar a produção

• Produtor-consumidor de Buffer não limitado


• Não há limite prático no tamanho do buffer
• Produtor sempre pode produzir novos itens

• Produtor-consumidor de Buffer limitado


• Assume que há um tamanho fixo do buffer
• Produtor deve esperar se buffer estiver cheio

Operações nos Processos

Comunicação entre Processos


• Interprocess Communication (IPC): Fornece o meio para os
processos cooperativos se comunicarem entre sí

• Mecanismo que permite aos processos:

• Comunicarem entre si;


• Sincronizarem suas ações;
• Comunicação sem compartilhar o mesmo espaço de endereçamento
(buffer);

• O IPC é particularmente útil em ambientes distribuídos, o qual os


processos em comunicação podem residir em diferentes
computadores da rede. Ex. Chat

9
Comunicação entre Processos

Sistema de Troca de Mensagens


• A função de um sistema de mensagens é permitir que os processos
se comuniquem entre sí, sem a necessidade de recorrer a dados
compartilhados
• Recurso IPC fornece pelo menos duas operações
• send (mensagem) – tamanho fixo ou variável
• receive (mensagem)

• Mensagem de Tamanho Fixo


• Implementação (nível do sistema) mais simples
• A programação é mais difícil

• Mensagem de Tamanho variável


• Implementação (nível do sistema) mais complexa
• A programação é mais simples

Comunicação entre Processos

Sistema de Troca de Mensagens


• Se dois processos P e Q querem se comunicar, devem:
• Estabelecer um link de comunicação entre eles
• Trocar mensagens através de send/receive

• Implementação do link de comunicação


• física (p.e., memória compartilhada, barramento, ...)
• lógica (p.e., propriedades lógicas)

• 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

• Propriedades do canal (link) de comunicação na comunicação direta:


• Um canal é estabelecido automaticamente
• Um canal é associado com exatamente um par de processos
• Entre cada par existe exatamente um canal
• O canal pode ser unidirecional, mas normalmente é bidirecional

Sistema de Troca de Mensagens

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.

• Dois processos só podem se comunicar se tiverem uma caixa de correio em


comum
• send (A, mensagem) - envia mensagem para a caixa de correio A
• receive (A, mensagem) - recebe mensagem da caixa de correio A

11
Sistema de Troca de Mensagens

Comunicação Indireta
• Propriedades do canal de comunicação para este esquema:

• Um canal é estabelecido apenas se a par de processos tiverem uma caixa de


correio compartilhada
• Um canal pode ser associado a mais de dois processos
• Entre cada par de processos comunicantes podem existir vários canais
diferentes, com cada canal correspondendo a uma caixa de correio
• O canal pode ser unidirecional ou bidirecional

Operações nos Processos

Questões
• Quantos pais um filho pode ter ? • Por que um processo pai terminaria
Explique um processo filho ?

• O que é uma árvore de processos ? • O que é um processo cooperativo ?

• Como pode ocorrer o • O que pode acontecer se um


compartilhamento de recursos entre processo cooperativo tiver buffer
processos pais e filhos limitado ?

• O que ocorre com o processo filho


• Quando ocorre um “término em
quando um processo pai é cascata” ? Explique.
terminado ?

• Um processo pai pode terminar um


processo filho ?

12
Referência Bibliográfica
• Sistemas Operacionais
• Deitel, Deitel e Choffnes;
• Ed. Pearson 3a Edição
• www.prenhall.com/deitel_br

• Sistemas Operacionais, Conceitos e Aplicações


• A. Silberschatz, P. Galvin, G. Gagne;
• Ed. Campus Tradução da 6a Edição
• www.wiley.com/college/silberschatz6e/
0471417432/slides/slides.html

• Sistemas Operacionais Modernos


• Andrew Tanenbaum;
• Ed. Pearson 2a Edição
• www.prenhall.com/tanenbaum_br

13

Você também pode gostar