Comunicação entre processos

Documentos relacionados
Sistemas Operacionais

Comunicação entre Processos

Sistemas Operacionais. Comunicação entre processos

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

Sincronização e Comunicação

Capítulo 2 Processos e Threads

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

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

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

Sistemas Operacionais

Sincronização de Processos (2)

Comunicação entre processos (2)

Sistemas Operacionais: Sincronização entre processos

Tipos de Soluções (cont.)

Fundamentos de Sistemas Operacionais

7 SINCRONIZAÇÃO DE PROCESSOS

Sistemas Operacionais

Sistemas Operacionais

Sistemas Distribuídos Aula 7

Sincronização e comunicação entre processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Exclusão Mútua (mutex)

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

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)

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

Sistemas Operacionais. Prof. André Y. Kusumoto

Tipos de Soluções (cont.)

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

Revisão Ultima aula [1/2]

Solução para o Problema do Produtor-Consumidor

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

Sistemas Operacionais

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

Sincronização e Comunicação entre Processos. Sincronização e Comunicação Volnys Bernal 1. Agenda

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

Programação concorrente (processos e threads)

Sistemas Distribuídos Aula 5

Concorrência entre Processos

Sistemas Operacionais

Sincronização e Comunicação entre Processos

Programação Orientada a Objetos. Concorrência

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

Fundamentos de Sistemas Operacionais

6. Mostre os principais modelos de organização interna de um sistema operacional.

ENADE 2011 SISTEMAS OPERACIONAIS

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

Programação Concorrente Locks

Sistemas Operacionais II

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 Distribuídos

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Problema dos Leitores/Escritores

Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMAS OPERACIONAIS

LEIC/LERC 2009/10 Repescagem do 1º Teste de Sistemas Operativos

Prof. Silvana Rossetto 9 de julho de DCC/IM/UFRJ

Mecanismos de Sincronização com Variáveis Compartilhadas

Parte I Multiprocessamento

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

Ferramentas para Programação em Processadores Multi-Core

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Prof. Kleber R. Rovai

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Transcrição:

Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Bacharelado em Sistemas de Informação Comunicação entre processos Macilon Araújo Costa Neto macilon@ufac.br Capítulo 2 do livro do Tanenbaum (2003)

Na aula anterior Conceitos Região crítica Condição de disputa Exclusão mútua Exclusão mútua com espera ociosa Inibição de interrupções Variáveis de travamento Estrita alternância Solução de Peterson Instrução TSL CCET182 Sistemas Operacionais 2

Agenda Exclusão mútua sem espera ociosa Acordar e dormir Semáforos Mutexes Monitores Troca de mensagens Barreiras CCET182 Sistemas Operacionais 3

Problemas com espera ociosa A maioria das soluções anteriores tem o defeito de usar espera ociosa Quando um processo deseja entrar em sua região crítica ele verifica se é possível Não havendo possibilidade naquele momento, ele executa um laço ocioso para esperar Além do gasto de tempo pelo processador pode ter efeitos colaterais indesejáveis Problema da inversão de prioridade CCET182 Sistemas Operacionais 4

Inversão de prioridade Dois processos H (alta prioridade) e L (baixa prioridade) H deve rodar sempre que estiver Pronto Em certo momento L está em sua região crítica H torna-se pronto (estava aguardando uma E/S) Então H inicia uma espera ocupada Como H tem prioridade sobre L L nunca conseguirá deixar sua região crítica H nunca deixará de esperar CCET182 Sistemas Operacionais 5

Dormir e acordar Bloquear o processo em vez de gastar tempo Forma mais simples é usar duas primitivas sleep é uma chamada de sistema que bloqueia o processo que a chamou wakeup tem um parâmetro, o processo que deverá ser acordado Ambas podem ter um outro parâmetro Endereço de memória para casar a sleep com a wakeup correspondente CCET182 Sistemas Operacionais 6

Problema do Produtor-Consumidor Também conhecido como problema do buffer limitado (bounded buffer) Dois processos compartilham um buffer de tamanho fixo O produtor coloca informações no buffer O consumidor retira informações do buffer Situação problemática o produtor quer colocar informações, mas o buffer está cheio o consumidor que retirar informações, mas o buffer está vazio Solução produtor deve dormir até que o consumidor retire algo do buffer consumidor deve dormir até que o produtor coloque algo no buffer CCET182 Sistemas Operacionais 7

Primitivas sleep/wakeup CCET182 Sistemas Operacionais 8

Primitivas sleep/wakeup, cont... Condição de disputa por ocorrer devido ao acesso à variável count Consumidor ler count (cujo valor é zero) Ocorre uma interrupção e o produtor começa a rodar Produtor coloca um item no buffer e incrementa count Verifica que count tinha zero então chama wakeup Porém o consumidor não está dormindo e o sinal emitido pela primitiva wakeup é perdido Consumidor volta a rodar baseado em count=0 vai dormir Mais cedo ou mais tarde o produtor vai encher o buffer Ambos vão dormir felizes para sempre CCET182 Sistemas Operacionais 9

Semáforos Em 1956 Dijkstra sugeriu o uso de uma nova variável inteira para controlar o numero de sinais armazenado para uso futuro Um semáforo pode ter valor 0 indicando que não há nenhum sinal armazenado ou um valor positivo indicando o número de sinais armazenados Uso de duas operações down e up CCET182 Sistemas Operacionais 10

Semáforos, cont... down verifica se o valor do semáforo é maior que zero Se for ele é decrementado e o processo continua sua progressão Se for igual a zero, o processo é posto para dormir up incrementa o valor do semáforo Se um ou mais processos estiverem dormindo neste semáforo, um deles será selecionado para que complete a operação down e o semáforo continuará com zero As ações de ler o semáforo, alterá-lo e acordar ou colocar para dormir um processo devem ser indivisíveis ou atômicas Essa é uma garantia para evitar condição de corridas Implementadas como chamadas ao sistema Esses mecanismos foram introduzidos na linguagem Algo 68 CCET182 Sistemas Operacionais 11

Semáforos, cont... CCET182 Sistemas Operacionais 12

Mutexes Quando não há a necessidade contar Versão simplificada de semáforos Gerenciar exclusão mútua de algum recurso ou parte de código compartilhada Um mutex (mutual exclusion) Variável com dois estados desimpedido e impedido Fornecem dois procedimentos mutex_lock e mutex_unlock CCET182 Sistemas Operacionais 13

Mutexes, cont... Implementação de mutex_lock e mutex_unlock são similares a enter_region e leave_region CCET182 Sistemas Operacionais 14

Situação de deadlock Problema com semáforos Os dois downs do código do produtor em ordem trocadas Sendo mutex decrementado antes do empty Se buffer estive cheio o produtor será bloqueado com mutex igual a zero Próxima vez que o consumidor tentar acesso ao buffer Irá executar um down sobre o mutex que é zero sendo também bloqueado Ambos os processos ficaram bloqueados indefinidamente Esta situação é denominada como deadlock CCET182 Sistemas Operacionais 15

Monitores Proposta de Hoare e Hansen para facilitar escrita de programas paralelos Conjunto de procedimentos, variáveis e estruturas de dados, tudo agrupado num módulo especial Processos podem chamar os procedimentos do monitor Não podem acessar diretamente as estruturas de dados e variáveis Apenas um processo pode está ativo dentro de um monitor CCET182 Sistemas Operacionais 16

Monitores, cont... Não bloqueia processos sem condições lógicas para continuarem Introdução de variáveis de condição com duas operações sobre elas wait: bloqueia o processo na fila associada à variável signal: acorda um processo que esteja bloqueado sob uma variável Para evitar que dois processos permaneçam no monitor ao mesmo tempo Exigi-se que um processo que emitir um signal saia imediatamente do monitor O signal deve ser o último comando num procedimento dentro do monitor CCET182 Sistemas Operacionais 17

Monitores, cont... CCET182 Sistemas Operacionais 18

Troca de mensagens Utiliza duas primitivas send e receive Algumas questões de projeto Operando em máquinas diferentes, mensagens podem se perder Tão logo receba uma mensagem deve-se enviar outra confirmando Se o transmissor não receber a confirmação num intervalo de tempo deverá retransmitir a mensagem Necessidade de números sequenciais nas mensagem para identificação Correta identificação da máquina na rede e do processo na máquina Questão de autenticação para evitar que se troque mensagens com impostores Quando operando na mesma máquina, esse processo demora mais que semáforos e monitores CCET182 Sistemas Operacionais 19

Troca de mensagens, cont... CCET182 Sistemas Operacionais 20

Barreiras Destinadas a grupos de processos Aplicações divididas em fases Nenhum processo pode avançar individualmente Ao chegar na barreira um processo é bloqueado Coloca-se uma barreira no final de cada fase Processos fazem chamadas à primitiva barrier CCET182 Sistemas Operacionais 21

Barreiras, cont... (a)processos se aproximando de uma barreira (b)todos os processos, exceto um, bloqueados pela barreira (c)último processo chega, todos passam CCET182 Sistemas Operacionais 22

Continua... Escalonamento de processos Escalonamento em sistemas em lote Escalonamento em sistemas interativos Escalonamento em sistemas de tempo real Política versus mecanismo CCET182 Sistemas Operacionais 23