Transcript cap 4
Capítulo 4: Processos
Processos
• Conceito de Processo
• Escalonamento de Processos
• Operações sobre Processos
• Processos Cooperativos
• Comunicação entre Processos
• Comunicação em Sistemas ClienteServidor
Operating System Concepts
4.2
Silberschatz, Galvin and Gagne 2002
Conceito de Processo
• Um SO executa vários programas
• Sistemas Batch
•serviços (jobs)
• Sistemas de tempo compartilhado
(Time-sharing)
•programas de usuário ou tarefas
• Serviço e processo são sinônimos
Operating System Concepts
4.3
Silberschatz, Galvin and Gagne 2002
Conceito de Processo (cont.)
• Processo – um programa em
execução
• a execução de um processo é
sequencial
• Um processo inclui:
• Contador de instruções (PC)
• Pilha (stack)
• Seção de dados
Operating System Concepts
4.4
Silberschatz, Galvin and Gagne 2002
Estado do Processo
• Um processo passa por vários
estados
• Novo
• Em execução
• Em espera
• Pronto
• Terminado
Operating System Concepts
4.5
Silberschatz, Galvin and Gagne 2002
Diagrama de Estado dos
Processos
Operating System Concepts
4.6
Silberschatz, Galvin and Gagne 2002
Bloco de Controle de Processos
• Guarda informações associadas a
um processo
• Estado do processo
• Contador de instruções
• Registradores da CPU
• Alocação da CPU
• Gerenciamento de memória
• Contabilidade
• Estado de operações de E/S
Operating System Concepts
4.7
Silberschatz, Galvin and Gagne 2002
PCB
Operating System Concepts
4.8
Silberschatz, Galvin and Gagne 2002
Transferência da CPU entre
processos
Operating System Concepts
4.9
Silberschatz, Galvin and Gagne 2002
Filas para Escalonamento
• Fila de Processos
• Todos os processos do sistema
• Fila de Processos Prontos
• Na memória principal
• Prontos para entrar em execução
• Fila de Dispositivos
• Esperando por um dispositivo de E/S
Operating System Concepts
4.10
Silberschatz, Galvin and Gagne 2002
Diagrama das Filas
Operating System Concepts
4.11
Silberschatz, Galvin and Gagne 2002
Escalonamento de Processos
Operating System Concepts
4.12
Silberschatz, Galvin and Gagne 2002
Escalonadores
• Escalonador de longo prazo
• Quais processos devem ser
carregados na memória
• Escalonador de curto prazo
• Qual processo que deve ser
executado
• Aloca a CPU
Operating System Concepts
4.13
Silberschatz, Galvin and Gagne 2002
Escalonamento de médio prazo
Operating System Concepts
4.14
Silberschatz, Galvin and Gagne 2002
Escalonadores (cont.)
• O escalonador da CPU é usado
muito freqüentemente
• Tem que ser rápido
• O escalonador de processos é
usado pouco freqüentemente
• Pode ser lento
Operating System Concepts
4.15
Silberschatz, Galvin and Gagne 2002
Escalonadores (cont.)
• O escalonador controla o grau de
multiprogramação
• Processos podem ser descritos
como
• Dependentes de E/S
• Dependentes da CPU
• Mistura ideal de processos
• Um pouco de cada
Operating System Concepts
4.16
Silberschatz, Galvin and Gagne 2002
Mudança de Contexto
• Para transferir o controle da CPU
• É preciso
• salvar o estado do processo antigo
• carregar o estado do novo processo
• O tempo de mudança de contexto é
desperdiçado
• O sistema não realiza trabalho útil
• Duração depende do hardware
Operating System Concepts
4.17
Silberschatz, Galvin and Gagne 2002
Criação de processos
• Processo pai cria processos filho
• Filhos criam outros processos
• Resultando árvore de processos
• Forma de compartilhamento de
recursos entre pais e filhos
• todos
• Um subconjunto
• Nenhum
Operating System Concepts
4.18
Silberschatz, Galvin and Gagne 2002
Criação de Processos
• Modos de execução
• Pai e filhos executam concorrentemente
• Pai espera até que os filhos terminem a
execução
• Espaço de endereços
• Filho é cópia do pai
• Filho tem um programa que deve ser
carregado para sua execução
Operating System Concepts
4.19
Silberschatz, Galvin and Gagne 2002
Exemplo - UNIX
• Chamada ao sistema fork cria
um novo processo
• exec usada após fork para
substituir o espaço de memória
do processo com novo programa
Operating System Concepts
4.20
Silberschatz, Galvin and Gagne 2002
Árvore de processos em um
sistema UNIX
Operating System Concepts
4.21
Silberschatz, Galvin and Gagne 2002
Término de Processos
• Depois do último comando uma
chamada ao SO (exit) é feita para
remover o processo do sistema
• Dados de saída do filho para o pai
(via wait)
• Recursos do processo são dealocados pelo sistema operacional
Operating System Concepts
4.22
Silberschatz, Galvin and Gagne 2002
Término de processos
• O processo pai pode terminar a
execução dos filhos (abort)
• Filho excedeu recursos alocados
• A tarefa atribuida ao filho não é mais
necessária
• O processo pai está terminando
• O SO não permite que a execução de um
processo filho continue se a do seu pai já
terminou
• Finalização em cascata
Operating System Concepts
4.23
Silberschatz, Galvin and Gagne 2002
Processos Cooperativos
• Processos independentes
• não podem afetar ou serem
afetados pela execução de outro
processo
• Processos cooperativos
• podem afetar ou serem afetados
pela execução de outro processo
Operating System Concepts
4.24
Silberschatz, Galvin and Gagne 2002
Processos Cooperativos (cont.)
• Vantagens de processos
cooperativos
• Compartilhamento de informações
• Aumento de velocidade de
processamento
• Modularidade
• Conveniência
Operating System Concepts
4.25
Silberschatz, Galvin and Gagne 2002
Produtor-Consumidor
• Paradigma para processos
cooperativos.
• Dois casos
• Área de armazenamento ilimitada
• Área de armazenamento limitada
Operating System Concepts
4.26
Silberschatz, Galvin and Gagne 2002
Área limitada – Solução de
memória compartilhada
• Dado compartilhado
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
• Máximo BUFFER_SIZE-1 elementos
Operating System Concepts
4.27
Silberschatz, Galvin and Gagne 2002
Área limitada – Processo
Produtor
item nextProduced;
while (1) {
while(((in+1)%BUFFER_SIZE)==
out); /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Operating System Concepts
4.28
Silberschatz, Galvin and Gagne 2002
Área limitada – Processo
Consumidor
item nextConsumed;
while (1) {
while (in==out);
/* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
Operating System Concepts
4.29
Silberschatz, Galvin and Gagne 2002
Comunicação entre Processos
• Mecanismo para
• Comunicação
• Sincronização de processos
• Sistema de mensagens
• sem uso de memória
compartilhada
Operating System Concepts
4.30
Silberschatz, Galvin and Gagne 2002
Comunicação entre Processos
• Duas operações:
• Send (mensagem)
• tamanho da mensagem fixa ou variável
• Receive (mensagem)
• Para processos P e Q se comunicarem,
eles precisam:
• Estabelecer um canal de comunicação entre
eles
• Trocar mensagens via send/receive
Operating System Concepts
4.31
Silberschatz, Galvin and Gagne 2002
Comunicação entre Processos
• Implementação do canal de
comunicação
• Física (por exemplo, memória
compartilhada)
• Lógica (por exemplo,
propriedades lógicas)
Operating System Concepts
4.32
Silberschatz, Galvin and Gagne 2002
Questões de implementação
• Como são estabelecidos os
canais?
• Um canal pode estar associado a
mais de dois processos?
• Quantos canais podem existir
entre cada par de processos?
Operating System Concepts
4.33
Silberschatz, Galvin and Gagne 2002
Questões de implementação
• Qual é a capacidade de um canal?
• Um canal pode acomodar
mensagens de tamanho variáveis?
• O canal é unidirecional ou
bidirecional?
Operating System Concepts
4.34
Silberschatz, Galvin and Gagne 2002
Comunicação Direta
• Os processos devem indicar
explicitamente o seu par
• Send (P, mensagem) – envia
mensagem para o processo P
• Receive (Q, mensagem) –
recebe mensagem do processo Q
Operating System Concepts
4.35
Silberschatz, Galvin and Gagne 2002
Propriedades do Canal
(Comunicação Direta)
• Canais estabelecidos
automaticamente
• Canal associado exatamente com
um par de processos
• Canal normalmente bidirecional
Operating System Concepts
4.36
Silberschatz, Galvin and Gagne 2002
Comunicação Indireta
• Mensagens são enviadas e
recebidas em caixas postais
(portas)
• Cada caixa postal tem uma
identidade
• Processos só podem se
comunicar se compartilharem
uma caixa postal
Operating System Concepts
4.37
Silberschatz, Galvin and Gagne 2002
Propriedades do Canal
(Comunicação Indireta)
• O canal estabelecido somente se
processos compartilham caixa postal
• Um canal pode ser associado com
vários processos
• Cada par de processos pode
compartilhar vários canais de
comunicação
• Canal unidirecional ou bidirecional
Operating System Concepts
4.38
Silberschatz, Galvin and Gagne 2002
Comunicação Indireta
• Operações
• Criar nova caixa postal
• Enviar e receber mensagens
• Destruir caixa postal
• Primitivas são definidas como:
Send (A, mensagem) – envia mensagem para
caixa postal A
Receive (A, mensagem) – recebe mensagem
da caixa postal A
Operating System Concepts
4.39
Silberschatz, Galvin and Gagne 2002
Comunicação Indireta
• Compartilhamento de caixa postal
• P1, P2, e P3 compartilham caixa postal A
• P1 envia; P2 e P3 recebem
• Quem pega a mensagem?
• Soluções
• Canal só pode ser associado 2 processos
• Permitir que apenas um processo execute
a operação receive por vez
• Permitir que o SO selecione o recipiente.
Remetente notificado sobre quem recebeu
Operating System Concepts
4.40
Silberschatz, Galvin and Gagne 2002
Sincronização
• Passagem de mensagem pode ser
ou blocante ou não-blocante
• Blocante é síncrona
• Não-blocante é assíncrona
• As primitivas send e receive
podem ser ou bloqueantes ou nãobloqueantes
Operating System Concepts
4.41
Silberschatz, Galvin and Gagne 2002
Buffering
• Fila de mensagens associada ao canal
• Implementada de três maneiras
• Capacidade zero
• 0 mensagens. Remetente deve esperar
pelo recipiente (rendez-vous)
• Capacidade limitada
• n mensagens. Remetente deve esperar
se o canal estiver cheio
• Capacidade ilimitada
• comprimento infinito. Remetente nunca
bloqueado
Operating System Concepts
4.42
Silberschatz, Galvin and Gagne 2002
Comunicação Cliente-Servidor
• Sockets
• Chamadas de
Procedimentos Remotos
(RPC)
• Invocação do Método
Remoto (RMI - Java)
Operating System Concepts
4.43
Silberschatz, Galvin and Gagne 2002
Sockets
• Final de um canal de comunicação
• Usa concatenação de endereço IP e
porta como identificador
• O socket 161.25.19.8:1625
• porta 1625
• host 161.25.19.8
• Comunicação feita entre pares de
sockets
Operating System Concepts
4.44
Silberschatz, Galvin and Gagne 2002
Comunicação entre Sockets
Operating System Concepts
4.45
Silberschatz, Galvin and Gagne 2002
Chamada de Procedimento
Remoto
Transforma chamadas remotas em “locais”
• Stubs
• No servidor
• recebe
mensagem
• recolhe
parâmetros
• executa
procedimento
• No cliente
• substituto
(proxy) do
procedimento
• localiza o
servidor
• junta os
parâmetros
Operating System Concepts
4.46
Silberschatz, Galvin and Gagne 2002
Execução de RPC
Operating System Concepts
4.47
Silberschatz, Galvin and Gagne 2002
Invocação do Método Remoto
• Mecanismo em Java similar a
RPC
Operating System Concepts
4.48
Silberschatz, Galvin and Gagne 2002
Recolhimento de Parâmetros
Operating System Concepts
4.49
Silberschatz, Galvin and Gagne 2002