Sei sulla pagina 1di 57

Captulo 3: Processos

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

Captulo 3: Processos

Conceito de processo
Escalonamento de processo
Operaes sobre processos
Processos em cooperao
Comunicao entre processos
Comunicao em sistemas cliente-servidor

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.2

Silberschatz, Galvin e Gagne 2007

Conceito de processo

Um sistema operacional executa diversos programas:


Sistemas batch jobs
Sistemas compartilhados no tempo programas
ou tarefas do usurio
Livro texto usa os termos job e processo para indicar
quase a mesma coisa
Processo um programa em execuo; a execuo
do processo deve progredir de modo seqencial
Um processo inclui:
contador de programa
pilha
seo de dados

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.3

Silberschatz, Galvin e Gagne 2007

Processo na memria

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.4

Silberschatz, Galvin e Gagne 2007

Estado do processo

Enquanto um processo executado, ele muda de


estado:
novo: O processo est sendo criado
executando: Instrues esto sendo executadas
esperando: O processo est esperando que ocorra
algum evento
pronto: O processo est esperando para ser
atribudo a um processo
terminado: O processo terminou a execuo

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.5

Silberschatz, Galvin e Gagne 2007

Diagrama de estado do processo

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.6

Silberschatz, Galvin e Gagne 2007

Process Control Block (PCB)


Informaes associadas a cada processo
Estado do processo
Contador de programa
Registradores da CPU
Informao de escalonamento da CPU
Informao de gerenciamento de memria
Informao de contabilidade
Informao de status de E/S

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.7

Silberschatz, Galvin e Gagne 2007

Process Control Block (PCB)

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.8

Silberschatz, Galvin e Gagne 2007

Troca de processos pela CPU

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.9

Silberschatz, Galvin e Gagne 2007

Filas de escalonamento de processo

Fila de job conjunto de todos os processos no sistema

Fila de pronto conjunto de todos os processos residindo


na memria principal, prontos e esperando para execuo

Filas de dispositivo conjunto de processos esperando


por um dispositivo de E/S

Processos migram entre as diversas filas

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.10

Silberschatz, Galvin e Gagne 2007

Fila de pronto e diversas filas de dispositivo


de E/S

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.11

Silberschatz, Galvin e Gagne 2007

Representao do escalonamento de
processos

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.12

Silberschatz, Galvin e Gagne 2007

Escalonadores

Escalonador a longo prazo (ou escalonador de


job) seleciona quais processos devem ser trazidos
para a fila de pronto

Escalonador a curto prazo (ou escalonador de


CPU) seleciona qual processo deve ser executado
em seguida e aloca CPU

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.13

Silberschatz, Galvin e Gagne 2007

Acrscimo do escalonamento do termo


do meio

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.14

Silberschatz, Galvin e Gagne 2007

Escalonadores (cont.)

O escalonador a curto prazo invocado muito


freqentemente (milissegundos) (deve ser rpido)
O escalonador a longo prazo invocado muito
infreqentemente (segundos, minutos) (pode ser lento)
O escalonador a longo prazo controla o grau de
multiprogramao
Os processos podem ser descritos como:
Processos voltados para E/S gasta mais tempo
realizando E/S do que clculos, com bursts de CPU
muito curtos
Processos voltados para CPU gasta mais tempo
realizando clculos; poucos bursts de CPU muito longos

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.15

Silberschatz, Galvin e Gagne 2007

rvores de processos em um Solaris


tpico

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.16

Silberschatz, Galvin e Gagne 2007

Troca de contexto

Quando a CPU passa para outro processo, o


sistema deve salvar o estado do processo antigo e
carregar o estado salvo para o novo processo
O tempo de troca de contexto overhead; o sistema
no realiza trabalho til enquanto faz a troca
Tempo dependente do suporte do hardware

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.17

Silberschatz, Galvin e Gagne 2007

Criao de processo

Processo pai cria processos filho que, por sua vez,


criam outros processos, formando uma rvore de
processos
Compartilhamento de recursos
Pai e filhos compartilham todos os recursos
Filhos compartilham subconjunto dos recursos
do pai
Pai e filho no compartilham recursos
Execuo
Pai e filhos executam simultaneamente
Pai espera at que filhos terminem

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.18

Silberschatz, Galvin e Gagne 2007

Criao de processo (cont.)

Espao de endereos
Filho duplicata do pai
Filho tem um programa carregado
Exemplos do UNIX
Chamada do sistema fork cria novo processo
Chamada do sistema exec usada aps um
fork para substituir o espao de memria do
processo por um novo programa

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.19

Silberschatz, Galvin e Gagne 2007

Criao de processo

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.20

Silberschatz, Galvin e Gagne 2007

Criao de processo no POSIX

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.21

Silberschatz, Galvin e Gagne 2007

Criao de processo no Win32

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.22

Silberschatz, Galvin e Gagne 2007

Criao de processo em Java

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.23

Silberschatz, Galvin e Gagne 2007

Trmico de processo

Processo executa ltima instruo e pede ao sistema


operacional para exclu-la (exit)
Dados de sada do filho para o pai (via wait)
Recursos do processo so desalocados pelo sistema
operacional
Pai pode terminar a execuo dos processos dos filhos
(abort)
Filho excedeu recursos alocados
Tarefa atribuda ao filho no mais exigida
Se o pai estiver saindo
Algum sistema operacional no permite que o
filho continue se o pai terminar
Todos os filhos terminaram trmino em
cascata

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.24

Silberschatz, Galvin e Gagne 2007

Comunicao entre processos


Passagem de mensagem

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

Memria compartilhada

3.25

Silberschatz, Galvin e Gagne 2007

Problema do produtor-consumidor

Paradigma para processos em cooperao,


processo produtor produz informaes que
so consumidas por um processo
consumidor
Buffer ilimitado no impe limite prtico
sobre o tamanho do buffer
Buffer limitado assume que existe um
tamanho de buffer fixo

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.26

Silberschatz, Galvin e Gagne 2007

Simulando memria compartilhada em


Java

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.27

Silberschatz, Galvin e Gagne 2007

Buffer vinculado soluo de memria


compartilhada

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.28

Silberschatz, Galvin e Gagne 2007

Buffer vinculado soluo de memria compartilhada

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.29

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Figura 3.16 mtodo insert()

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.30

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Figura 3.17 mtodo remove()

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.31

Silberschatz, Galvin e Gagne 2007

Passagem de mensagens

Sistema de mensagem processos se comunicam entre si


sem lanar mo de variveis compartilhadas
Facilidade de passagem de mensagem oferece duas
operaes:
send(mensagem) tamanho da mensagem fixo ou
varivel
receive(mensagem)
Se P e Q quiserem se comunicar, eles precisam:
estabelecer um link de comunicao entre eles
trocar mensaegns por meio de send/receive
Implementao do link de comunicao
fsico (por exemplo, memria compartilhada, barramento
de hardware)
lgico (por exemplo, propriedades lgicas)

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.32

Silberschatz, Galvin e Gagne 2007

Questes de implementao

Como os links so estabelecidos?


Um link pode estar associado a mais de dois
processos?
Quantos links pode haver entre cada par de
processos em comunicao?
Qual a capacidade de um link?
O tamanho de uma mensagem que o link pode
acomodar fixo ou varivel?
Um link unidirecional ou bidirecional?

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.33

Silberschatz, Galvin e Gagne 2007

Comunicao direta

Processos devem nomear um ao outro explicitamente:


send (P, mensagem) envia uma mensagem ao
processo P
receive(Q, mensagem) recebe uma mensagem do
processo Q
Propriedades do link de comunicao
Links so estabelecidos automaticamente
Um link associado a exatamente um par de processos
em comunicao
Entre cada par existe exatamente um link
O link pode ser unidirecional, mas normalmente
bidirecional

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.34

Silberschatz, Galvin e Gagne 2007

Comunicao indireta

As mensagens so direcionadas e recebidas de caixas


de correio (tambm conhecidas como portas)
Cada caixa de correio tem uma id exclusiva
Os processos s podem se comunicar se
compartilharem uma caixa de correio
Propriedades do link de comunicao
Link estabelecido somente se os processos
compartilharem uma caixa de correio comum
Um link pode estar associado a muitos processos
Cada par de processos pode compartilhar vrios
links de comunicao
O link pode ser unidirecional ou bidirecional

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.35

Silberschatz, Galvin e Gagne 2007

Comunicao indireta

Operaes
cria uma nova caixa de correio
envia e recebe mensagens por meio da caixa de
correio
destri uma caixa de correio
Primitivos so definidos como:
send(A, mensagem) envia uma mensagem caixa de
correio A
receive(A, mensagem) recebe uma mensagem da
caixa de correio A

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.36

Silberschatz, Galvin e Gagne 2007

Comunicao indireta

Compartilhamento de caixa de correio


P1, P2 e P3 compartilham caixa de correio A

P1 envia; P2 e P3 recebem

Quem recebe a mensagem?


Solues
Permite que um link seja associado a no mximo dois
processos
Permite que somente um processo de cada vez execute
uma operao de recepo
Permite que o sistema selecione arbitrariamente o
receptor.
Permite que o sistema selecione arbitrariamente o
receptor. Emissor notificado de quem foi o receptor.

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.37

Silberschatz, Galvin e Gagne 2007

Sincronismo

A passagem de mensagens pode ser com bloqueio ou


sem bloqueio
Bloqueio considerado sncrono
Envio com bloqueio deixa o emissor bloqueado at
que a mensagem recebida
Recepo com bloqueio deixa o receptor bloqueado
at que a uma mensagem esteja disponvel
No bloqueio considerado assncrono
Envio sem bloqueio faz com que o emissor envie a
mensagem e continue
Recepo sem bloqueio faz com que o receptor receba
uma mensagem vlida ou nulo

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.38

Silberschatz, Galvin e Gagne 2007

Buffers

Fila de mensagens conectadas ao link;


implementados de trs maneiras
1. Capacidade zero 0 mensagens
Emissor deve esperar pelo receptor
(rendezvous)
2. Capacidade limitada tamanho finito de n
mensagens
Emissor deve esperar se o link estiver cheio
3. Capacidade ilimitada tamanho infinito
Emissor nunca espera

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.39

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Soluo de passagem de


mensagem

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.40

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Soluo de passagem de


mensagem

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.41

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Soluo de passagem de


mensagem

O produtor

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.42

Silberschatz, Galvin e Gagne 2007

Buffer vinculado Soluo de passagem de


mensagem

O consumidor

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.43

Silberschatz, Galvin e Gagne 2007

Passagem de mensagem no Windows XP

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.44

Silberschatz, Galvin e Gagne 2007

Comunicao cliente-servidor

Soquetes

Chamadas de procedimento remoto

Invocao de mtodo remoto (Java)

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.45

Silberschatz, Galvin e Gagne 2007

Soquetes

Um soquete definido como uma extremidade


para comunicao
Concatenao de endereo IP e porta
O soquete 161.25.19.8:1625 refere-se porta
1625 no host 161.25.19.8
A comunicao consiste entre um par de
soquetes

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.46

Silberschatz, Galvin e Gagne 2007

Comunicao por soquete

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.47

Silberschatz, Galvin e Gagne 2007

Comunicao por soquete em Java

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.48

Silberschatz, Galvin e Gagne 2007

Comunicao por soquete em Java

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.49

Silberschatz, Galvin e Gagne 2007

Chamadas de procedimento remoto

Chamada de procedimento remoto (RPC) passa


chamadas de procedimento entre processos nos
sistemas em rede.
Stubs proxy no cliente para o procedimento real
no servidor.
O stub no cliente localiza o servidor e organiza os
parmetros.
O stub no servidor recebe essa mensagem,
desempacota os parmetros organizados e realiza
o procedimento no servidor.

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.50

Silberschatz, Galvin e Gagne 2007

Execuo da RPC

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.51

Silberschatz, Galvin e Gagne 2007

Invocao de mtodo remoto

Invocao de mtodo remoto (RMI) um


mecanismo da Java semelhante s RPCs.
RMI permite que um programa Java em uma
mquina chame um mtodo em um objeto
remoto.

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.52

Silberschatz, Galvin e Gagne 2007

Organizao de parmetros

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.53

Silberschatz, Galvin e Gagne 2007

Exemplo de RMI

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.54

Silberschatz, Galvin e Gagne 2007

Exemplo de RMI

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.55

Silberschatz, Galvin e Gagne 2007

Exemplo de RMI

Conceitos de Sistema Operacional com Java 7a edio, 15/11/2006

3.56

Silberschatz, Galvin e Gagne 2007

Final do Captulo 3

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

Potrebbero piacerti anche