Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Capítulo 4: Processos
2
Processos Conceito de Processo Escalonamento de Processos
Operações sobre Processos Processos Cooperativos Comunicação entre Processos Comunicação em Sistemas Cliente-Servidor Operating System Concepts
3
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
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
5
Um processo passa por vários estados
Estado do Processo Um processo passa por vários estados Novo Em execução Em espera Pronto Terminado Novo: o processo está sendo criado Em execução: o processo tem controle da CPU Em espera: o processo está esperando por algum evento (E/S, recebimento de sinal, etc.) Pronto: o processo está pronto para obter o controle do processador Terminado: o processo terminou de ser executado Operating System Concepts
6
Diagrama de Estado dos Processos
Operating System Concepts
7
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
8
PCB Operating System Concepts
9
Transferência da CPU entre processos
Operating System Concepts
10
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
11
Diagrama das Filas Operating System Concepts
12
Escalonamento de Processos
Operating System Concepts
13
Escalonador de longo prazo
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
14
Escalonamento de médio prazo
Operating System Concepts
15
O escalonador da CPU é usado muito freqüentemente
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
16
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 O escalonador de processos controla o grau de multiprogramação (nº de processos na memória) Processos podem ser descritos como: Mais dependentes de E/S – gastam mais tempo fazendo operações de E/S do que computação (vários rajadas (bursts) pequenos da CPU) Mais dependentes da CPU – gastam mais tempo fazendo computações (poucos e longos rajadas (bursts) da CPU) Operating System Concepts
17
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 Para transferir o controle da CPU de um processo para outro, é necessário armazenar o estado do processo antigo e carregar o estado do novo processo O tempo de mudança de contexto é relativo a um trabalho adicional requerido pelo próprio sistema, durante o qual ele não realiza trabalho útil O tempo é dependente do suporte de hardware Operating System Concepts
18
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
19
Criação de Processos Modos de execução Espaço de endereços
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
20
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
21
Árvore de processos em um sistema UNIX
Operating System Concepts
22
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 Operating System Concepts
23
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
24
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
25
Processos Cooperativos (cont.)
Vantagens de processos cooperativos Compartilhamento de informações Aumento de velocidade de processamento Modularidade Conveniência Operating System Concepts
26
Produtor-Consumidor Paradigma para processos cooperativos. Dois casos
Área de armazenamento ilimitada Área de armazenamento limitada Paradigma para processos cooperativos. O processo produtor produz informação que é consumida por um processo consumidor Área de armazenamento ilimitada não impõe um limite prático para o tamanho da área de armazenamento Área de armazenamento limitada considera existir um tamanho fixo para a área de armazenamento Operating System Concepts
27
Á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
28
Á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
29
Área limitada – Processo Consumidor
item nextConsumed; while (1) { while (in==out); /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } Operating System Concepts
30
Comunicação entre Processos
Mecanismo para Comunicação Sincronização de processos Sistema de mensagens sem uso de memória compartilhada Operating System Concepts
31
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
32
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
33
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
34
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
35
Os processos devem indicar explicitamente o seu par
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
36
Propriedades do Canal (Comunicação Direta)
Canais estabelecidos automaticamente Canal associado exatamente com um par de processos Canal normalmente bidirecional Operating System Concepts
37
Mensagens são enviadas e recebidas em caixas postais (portas)
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
38
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
39
Comunicação Indireta Operações Primitivas são definidas como:
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
40
Comunicação Indireta Compartilhamento de caixa postal Soluções
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
41
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 Operating System Concepts
42
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
43
Comunicação Cliente-Servidor
Sockets Chamadas de Procedimentos Remotos (RPC) Invocação do Método Remoto (RMI - Java) Operating System Concepts
44
Sockets Final de um canal de comunicação
Usa concatenação de endereço IP e porta como identificador O socket :1625 porta 1625 host Comunicação feita entre pares de sockets Operating System Concepts
45
Comunicação entre Sockets
Operating System Concepts
46
Chamada de Procedimento Remoto
Transforma chamadas remotas em “locais” Stubs No cliente substituto (proxy) do procedimento localiza o servidor junta os parâmetros No servidor recebe mensagem recolhe parâmetros executa procedimento Operating System Concepts
47
Execução de RPC Operating System Concepts
48
Invocação do Método Remoto
Mecanismo em Java similar a RPC Operating System Concepts
49
Recolhimento de Parâmetros
Operating System Concepts
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.