Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC 541 - SISTEMAS OPERACIONAIS I Aula 10 –Comunicação e Sincronização de Processos Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos José Santana Slides adaptados de Luciana A. F. Martimiano baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Exclusão Mútua Problema dos Leitores / Escritores Modela o acesso compartilhado a uma base de dados Processos leitores e processos escritores competem por um acesso a essa base
Exclusão Mútua Problema dos Leitores / Escritores Vários processos leitores podem acessar a base ao mesmo tempo Variável compartilhada por todos processos leitores controla o número de leitores na base - rc Vários processos acessam rc – necessidade de exclusão mútua – semáforo mutex
Exclusão Mútua Problema dos Leitores / Escritores Um único processo escritor pode escrever (modificar) a base de dados em um determinado instante Quando a base está sendo modificada não pode haver processos leitores acessando a base. Controlar acesso a leitor ou a escritor Semáforo - db
Exclusão Mútua Problema dos Leitores / Escritores
Exclusão Mútua Problema do Barbeiro Na barbearia há: Um barbeiro, Uma cadeira de barbeiro , n cadeiras para os clientes esperarem Quando não há clientes, o barbeiro senta-se na cadeira do barbeiro e dorme Quando um cliente chega, ele precisa acordar o barbeiro Se outros clientes chegarem enquanto o barbeiro estiver ocupado, eles ocupam um das cadeiras disponíveis, se houver. Se todas as cadeiras estiverem ocupadas, cliente vai embora.
Exclusão Mútua Problema do Barbeiro Deve ser controlado: Quando número de clientes = 0 barbeiro dorme Semáforo – customers Número de clientes esperando Variável compartilhada entre cliente e barbeiro – waiting Semáforo para acesso a variável waiting - mutex Barbeiro livre? Semáforo barber
Exclusão Mútua Problema do Barbeiro
Processos Threads Agora Exercício Próxima Semana Introdução Escalonamento de Processos Comunicação entre Processos Condição de Disputa Região Crítica Formas de Exclusão Mútua Problemas Clássicos Threads Deadlock Agora Exercício Próxima Semana
2º Exercício em Aula (Exclusão Mútua) Considere os processos de P1, P2 e P3 que compartilham um mesmo recurso. Sendo que o processo P1 produz itens que serão consumidos pelos processos P2 e P3, conforme diagrama abaixo. P1 P2 P3 Recurso Escrever um algoritmo para cada um dos processos (P1, P2 e P3), utilizando como formas de sincronismo monitores ou semáforos. Comentar o algoritmo explicando para que serve cada variável.