A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 4: Processos.

Apresentações semelhantes


Apresentação em tema: "Capítulo 4: Processos."— Transcrição da apresentação:

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


Carregar ppt "Capítulo 4: Processos."

Apresentações semelhantes


Anúncios Google