Comunicação entre Processos

Documentos relacionados
Comunicação entre processos

Sincronização de Processos (2)

Sincronização e Comunicação

Sistemas Operacionais: Sincronização entre processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sistemas Operacionais. Comunicação entre processos

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Sincronização e comunicação entre processos

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Tipos de Soluções (cont.)

Sistemas Operacionais. Condição de corrida e Região crítica

Sistemas Distribuídos Aula 7

Comunicação entre processos (2)

Sistemas Operacionais

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Sistemas Operacionais

Sistemas Distribuídos Aula 5

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Capítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Mecanismos de Sincronização com Variáveis Compartilhadas

Tipos de Soluções (cont.)

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica

Sistemas Operacionais

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

Exclusão Mútua (mutex)

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 6. Primitivas de Sincronização

Sistemas Operacionais. Prof. André Y. Kusumoto

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Revisão Ultima aula [1/2]

Programação Orientada a Objetos. Concorrência

Programação concorrente (processos e threads)

ENADE 2011 SISTEMAS OPERACIONAIS

Sincronização e Comunicação entre Processos

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS

Monitores. Programação Concorrente September 11, 2012

Programação Concorrente Locks

1B Conceitos Básicos: Indique Verdade/Falso

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Solução para o Problema do Produtor-Consumidor

INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)

7 SINCRONIZAÇÃO DE PROCESSOS

Problema do Produtor -Consumidor. Solução por semáforos

Programação Concorrente. Prof. Hugo Vieira Neto

TAREFAS COORDENAÇÃO ENTRE TAREFAS AULA 09 Sistemas Operacionais Gil Eduardo de Andrade

Programação Concorrente

Sistemas Operacionais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Threads e Sincronização no Linux

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

Sistemas Operacionais II

Transcrição:

Programação Paralela e Distribuída Ordenação e Sincronização Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/ Comunicação entre Processos Processos Independentes. Não afetam nem são afetados por outros processos. Processos Cooperados. Compartilham: Memória; Arquivos; Dispositivos de E/S; Etc. 1

Processos Cooperados Compartilhamento de dados. Processo produtor de dados. Processo consumidor de dados, Buffer: Limitado: Produtor e Consumidor. Ilimitado: Somente Consumidor. Implementação. Via memória compartilhada; Via IPC (Interprocess Comunication - SO) Buffer Circular Implementação como um array circular. próxima entrada 4 próxima saída 8 5 Contador Introdução de um contador de quantidade. Produtor e Consumidor manipulam o contador. 5 2

Condições de Corrida Mecanismo de Sincronização. Garante o compartilhamento de recursos e a comunicação entre os processos. Garante a integridade e a confiabilidade dos dados compartilhados. Condições de Corrida: Situações onde dois ou mais processos estão acessando dados compartilhados. O resultado final pode variar de acordo com a ordem de execução. Exemplo 1: Condições de Corrida 1 2 Processo Processo A B 3 4 +1-1 5 8 Resultado Final: Contador = (ERRO!) 3

Exemplo 2: Condições de Corrida 4 5 Processo A 10 Y 1 9 próxima entrada 3 8 2 8 suspenso recebe CPU Valor armazenado pelo processo B é perdido. X 4 Processo B 5 8 3 recebe CPU suspenso Condições de Corrida Região Crítica: Parte do código onde é feito acesso a recursos compartilhados, e que podem levar a condições de corrida. Ex: Processo A. Código normal Início da Seção Crítica (Protocolo de Entrada) Seção Crítica Término da Seção Crítica (Protocolo de Saída) Código normal 4

Concorrência em programas Enquanto um processo estiver usando um recurso, os outros devem aguardar até que o recurso esteja liberado. Exclusão Mútua. Exclusividade no acesso a um determinado recurso. A exclusão mútua deve afetar os processos concorrentes quando um deles estiver em uma região crítica. Problemas de Sincronização Velocidades muito diferentes dos processos: Podem causar problema de solução de sincronização entre processos. Ex: Problema produtor / consumidor. Starvation (Indefinitely Postponed): Um processo nunca consegue executar sua região crítica e acessar o recurso compartilhado. Outros processos são sempre prioritários. 5

Soluções de Hardware Desabilitação das interrupções: Solução mais simples para a exclusão mútua; Falha de Proteção: O processo precisa voltar a habilitar as interrupções. Instrução Test-and-Set. Utilização de uma variável para testar a possibilidade de executar a região crítica. O processo impedido de executar sua região crítica executa um loop de espera. Gasto de CPU. Soluções de Software Variável de Travamento; Gera condições de corrida. Estrita Alternância. Starvation. Em geral, as soluções por software resolvem a exclusão mútua, mas geram a espera ocupada (Busy Wait): Teste contínuo de uma variável até que ocorra uma mudança no seu valor; O processo impedido de executar sua região crítica executa um loop de espera. Gasto de CPU.

Soluções de Software Implementações de uso das regiões críticas sem a espera ocupada: Semáforos (Counting Semaphores); Semáforos Binários (Mutual Exclusion Semaphores); Mutex; Monitores. Semáforos Ferramenta de sincronização criada por Dijkstra (195); Características: Variável inteira; Não negativa. Manipulados por duas operações atômicas: DOWNou Wait (P - Proberen - Testar) UP ou Signal (V - Verhogen - Incrementar) Implementados como chamada ao sistema.

Semáforos Semáforos (Counting Semaphores); Sincronização entre processos. Full / Empty. Associado a um recurso compartilhado. Indica quando o recurso está alocado a algum processo. Semáforos Semáforos Binários (Mutual Exclusion Semaphores); Controle da exclusão mútua. Down / Wait: Antes da região crítica. Up / Signal : Após a região crítica. Chamados MUTEX ou BINÁRIOS, por só assumirem valores 0 e 1. 8

Mutex Estrutura de sincronização bastante simples que pode estar em dois estados: Locked; Unlocked. Duas operações são definidas sobre um mutex: Lock; Unlock. lock Processo 1 unlock lock Mutex unlock Processo 2 Monitores Mecanismo de sincronização de alto nível proposto por Hoare (194) e Brinch Hansen (195); Conjunto de procedimentos, variáveis e estruturas de dados agrupados em um módulo especial; Característica mais importante é a implementação automática da exclusão mútua: Somente um processo pode estar ativo em um monitor em um determinado instante de tempo. 9

Monitores A implementação da exclusão múltipla é de responsabilidade do compilador; Utilização de variáveis de condição com uma fila de processos associados a elas; Um processo em uma fila (bloqueado) só poderá prosseguir quando outro processo executar um SIGNAL sobre a respectiva variável de condição. Monitores A comunicação do processo com o monitor é feita unicamente através de chamadas a seus procedimentos e dos parâmetros passados para eles; Podem ser chamadas duas operações: Wait (variable) Signal (variable) 10