Sincronização e Comunicação Problemas Clássicos

Documentos relacionados
Sistemas Operacionais

Aula 7. Problemas Clássicos de Sincronização. 1.1 O Jantar dos Filósofos. 1.2 Leitores e Escritores. 1.3 O Barbeiro Dorminhoco

Sistemas Operacionais

Exclusão Mútua (mutex)

Capítulo 2 Processos e Threads

Threads e Sincronização no Linux

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

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)

Sistemas Operacionais. Prof. André Y. Kusumoto

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

Sistemas Operacionais: Sincronização entre processos

Problemas Clássicos de Sincronização

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

Semáforos. Gerenciamento de Recursos I

Sincronização e comunicação entre processos

Sincronização. Cooperação entre Processos

Sistemas Operacionais

8 PROBLEMAS CLÁSSICOS

Semáforos. Gerenciamento de Recursos I

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

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

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Sincronização. Objectivos da aula de hoje

Transmissão da Informação: Multiplexação TDM

Só podem ser executados por uma Thread que detenha o lock do objecto

Concorrência entre Processos

Arquitetura de Computadores. Revisão Volnys Bernal. Agenda. Revisão: Arquitetura de Computadores. Sobre esta apresentação

Mecanismos de Sincronização com Variáveis Compartilhadas

Retrospectiva da aula passada... Escalonamento. Na aula passada... Comunicação entre processos (-- O jantar dos filósofos --)

Problema dos Leitores/Escritores

Sistemas Operacionais

Sistemas Distribuídos Aula 5

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

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

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

Comunicação entre processos (2)

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

Comunicação entre Processos

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

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

Programação Concorrente

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

Codificação e transmissão de sinais digitais em banda básica

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

Comutação Volnys Borges Bernal

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

Tecnologia de Redes. NAT e Masquerade

Sistemas Operacionais

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

MC504 Sistemas Operacionais MC514 Sistemas Operacionais: Teoria e

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Sistemas Operacionais II

Sistemas Operativos LEIC LERCI. Colectânea de Exercícios de Sincronização

Sincronização. Cooperação entre Processos

Sistemas Operacionais

Sistemas Operacionais Sincronização e Comunicação entre Processos

Programação Orientada a Objetos. Concorrência

Sincronização de Processos (2)

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Operativos

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Transcrição:

2002-2016 Volnys Bernal 1 Sincronização e Comunicação Problemas Clássicos Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP

2002-2016 Volnys Bernal 2 Agenda Problemas Clássicos: Produtor-consumidor Leitores e escritores Jantar dos filósofos Barbeiro sonolento

Produtor-Consumidor 2002-2016 Volnys Bernal 3

2002-2016 Volnys Bernal 4 Produtor-consumidor Um sistema é composto por entidades produtoras e entidades consumidoras. Entidades produtoras Responsáveis pela produção de itens que são armazenados em um buffer (ou em uma fila) Itens produzidos podem ser consumidos por qualquer consumidor Entidades consumidoras Consomem os itens armazenados no buffer (ou na fila) Itens consumidos podem ser de qualquer produtor

2002-2016 Volnys Bernal 5 Produtor-consumidor Produtor 1 Consumidor 1 Produtor 2 Produtor 3 Consumidor 2

2002-2016 Volnys Bernal 6 Produtor consumidor Exercício: Resolva o problema produtor-consumidor supondo ambiente operacional preemptível e semáforos.

Leitores e Escritores 2002-2016 Volnys Bernal 7

2002-2016 Volnys Bernal 8 Leitores e escritores Um sistema com uma base de dados é acessado simultaneamente por diversas entidades. Estas entidades realizam dois tipos de operações: Leitura Escrita Neste sistema é aceitável a existência de diversas entidades lendo a base de dados. Porém, se um processo necessita escrever na base, nenhuma outra entidade pode estar realizando acesso à base.

2002-2016 Volnys Bernal 9 Leitores e escritores Entidade 1 (leitor) Entidade 2 (leitor) Entidade 3 (escritor) Leitura Leitura Escrita Escrita Entidade 4 (escritor)

2002-2016 Volnys Bernal 10 Leitores e escritores Exercício: Resolva o problema dos leitores e escritores supondo: Ambiente operacional (preemptível/não preemptível): Processadores (monoprocesador/multiprocessador): nleitura = 0 nescrita = 0 Leitor() { } Escritor() { }

Jantar dos Filósofos 2002-2016 Volnys Bernal 11

2002-2016 Volnys Bernal 12 Jantar dos Filósofos Cinco filósofos estão sentados ao redor de uma mesa circular para o jantar. Cada filósofo possui um prato para comer espaguete. Como o espaguete é muito escorregadio, é necessário a utilização de dois garfos. Entre cada par de pratos existe um garfo.

Jantar dos Filósofos 2002-2016 Volnys Bernal 13

2002-2016 Volnys Bernal 14 Jantar dos Filósofos A vida do filósofo consiste na alternância de períodos de alimentação e reflexão. Quando um filósofo fica com fome, ele tenta pegar os garfos a sua volta (garfos a sua esquerda e direira), em qualquer ordem, um de cada vez. Se o filósofo conseguir pegar os dois garfos ele inicia seu período de alimentação. Após algum tempo ele devove os garfos a sua posição original e retorna ao período de reflexão

2002-2016 Volnys Bernal 15 Jantar dos Filósofos Pergunta: É possível escrever um programa para possibilitar que cada filósofo possa realizar suas atividades sem problemas? Problemas? Se todos os filósofos resolverem comer ao mesmo tempo?

2002-2016 Volnys Bernal 16 Jantar dos filósofos Exercício: Resolva o problema do jantar dos filósofos supondo: Ambiente operacional (preemptível/não preemptível): Processadores (monoprocesador/multiprocessador): Filósofo() { }

2002-2016 Volnys Bernal 17 Problemas Clássicos: O Barbeiro Sonolento

2002-2016 Volnys Bernal 18 O Barbeiro Sonolento Uma barbearia possui: 1 barbeiro 1 cadeira de barbeiro N cadeira para espera de clientes Se, em um determinado momento, não houverem clientes para serem atendidos, o barbeiro dorme. Quando um cliente chega, ele acorda e atende o cliente. Quando um cliente chega e o barbeiro estiver atendendo um cliente, ele aguarda sua vez sentado na cadeira de espera. Quando um cliente chega e não existem cadeiras de espera disponíveis, o cliente vai embora.

O Barbeiro Sonolento 2002-2016 Volnys Bernal 19

2002-2016 Volnys Bernal 20 Barbeiro sonolento Exercício: Resolva o problema dos barbeiro sonolento supondo: Ambiente operacional (preemptível/não preemptível): Processadores (monoprocesador/multiprocessador): nclientes = 0 Barbeiro() { } Cliente() { }