49
Capítulo 4: Processos

Capítulo 4: Processos. Silberschatz, Galvin and Gagne 2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Embed Size (px)

Citation preview

Page 1: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Capítulo 4: Processos

Page 2: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.2Operating System Concepts

Processos

• Conceito de Processo• Escalonamento de Processos• Operações sobre Processos• Processos Cooperativos• Comunicação entre Processos• Comunicação em Sistemas Cliente-Servidor

Page 3: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.3Operating System Concepts

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

Page 4: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.4Operating System Concepts

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

Page 5: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.5Operating System Concepts

Estado do Processo•Um processo passa por vários estados •Novo•Em execução•Em espera•Pronto•Terminado

Page 6: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.6Operating System Concepts

Diagrama de Estado dos Processos

Page 7: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.7Operating System Concepts

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

Page 8: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.8Operating System Concepts

PCB

Page 9: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.9Operating System Concepts

Transferência da CPU entre processos

Page 10: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.10Operating System Concepts

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

Page 11: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.11Operating System Concepts

Diagrama das Filas

Page 12: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.12Operating System Concepts

Escalonamento de Processos

Page 13: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.13Operating System Concepts

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

Page 14: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.14Operating System Concepts

Escalonamento de médio prazo

Page 15: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.15Operating System Concepts

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

Page 16: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.16Operating System Concepts

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

Page 17: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.17Operating System Concepts

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

Page 18: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.18Operating System Concepts

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

Page 19: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.19Operating System Concepts

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

Page 20: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.20Operating System Concepts

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

Page 21: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.21Operating System Concepts

Árvore de processos em um sistema UNIX

Page 22: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.22Operating System Concepts

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 de-alocados pelo sistema operacional

Page 23: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.23Operating System Concepts

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

Page 24: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.24Operating System Concepts

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

Page 25: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.25Operating System Concepts

Processos Cooperativos (cont.)

•Vantagens de processos cooperativos•Compartilhamento de informações

•Aumento de velocidade de processamento

•Modularidade•Conveniência

Page 26: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.26Operating System Concepts

Produtor-Consumidor

•Paradigma para processos cooperativos.

•Dois casos•Área de armazenamento ilimitada•Área de armazenamento limitada

Page 27: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.27Operating System Concepts

Área limitada – Solução de memória compartilhada

• Dado compartilhado#define BUFFER_SIZE 10Typedef struct {. . .} item;item buffer[BUFFER_SIZE];int in = 0;int out = 0;

• Máximo BUFFER_SIZE-1 elementos

Page 28: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.28Operating System Concepts

Área limitada – Processo Produtor

item nextProduced;

while (1) {while(((in+1)%BUFFER_SIZE)== out); /* do nothing */buffer[in] = nextProduced;in = (in + 1) % BUFFER_SIZE;}

Page 29: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.29Operating System Concepts

Área limitada – Processo Consumidor

item nextConsumed;

while (1) {while (in==out);

/* do nothing */nextConsumed = buffer[out];out = (out + 1) % BUFFER_SIZE;}

Page 30: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.30Operating System Concepts

Comunicação entre Processos

•Mecanismo para •Comunicação•Sincronização de processos

•Sistema de mensagens •sem uso de memória compartilhada

Page 31: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.31Operating System Concepts

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

Page 32: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.32Operating System Concepts

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)

Page 33: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.33Operating System Concepts

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?

Page 34: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.34Operating System Concepts

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?

Page 35: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.35Operating System Concepts

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

Page 36: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.36Operating System Concepts

Propriedades do Canal (Comunicação Direta)

•Canais estabelecidos automaticamente

•Canal associado exatamente com um par de processos

•Canal normalmente bidirecional

Page 37: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.37Operating System Concepts

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

Page 38: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.38Operating System Concepts

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

Page 39: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.39Operating System Concepts

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 AReceive (A, mensagem) – recebe mensagem da caixa postal A

Page 40: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.40Operating System Concepts

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

Page 41: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.41Operating System Concepts

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ão-bloqueantes

Page 42: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.42Operating System Concepts

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

Page 43: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.43Operating System Concepts

Comunicação Cliente-Servidor

•Sockets•Chamadas de Procedimentos Remotos (RPC)

•Invocação do Método Remoto (RMI - Java)

Page 44: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.44Operating System Concepts

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

Page 45: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.45Operating System Concepts

Comunicação entre Sockets

Page 46: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.46Operating System Concepts

Chamada de Procedimento Remoto

• Stubs• No cliente

•substituto (proxy) do procedimento

•localiza o servidor

•junta os parâmetros

• No servidor •recebe mensagem

•recolhe parâmetros

•executa procedimento

Transforma chamadas remotas em “locais”

Page 47: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.47Operating System Concepts

Execução de RPC

Page 48: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.48Operating System Concepts

Invocação do Método Remoto

•Mecanismo em Java similar a RPC

Page 49: Capítulo 4: Processos. Silberschatz, Galvin and Gagne  2002 4.2 Operating System Concepts Processos Conceito de Processo Escalonamento de Processos Operações

Silberschatz, Galvin and Gagne 20024.49Operating System Concepts

Recolhimento de Parâmetros