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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula 9 –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

2 Processos 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

3 Problemas clássicos de comunicação entre processos
Problema do Jantar dos Filósofos Cinco filósofos desejam comer espaguete; No entanto, para poder comer, cada filósofo precisa utilizar dois garfo e não apenas um. Portanto, os filósofos precisam compartilhar o uso do garfo de forma sincronizada. Os filósofos comem e pensam;

4 Problemas clássicos de comunicação entre processos
Problemas que devem ser evitados: Deadlock – um ou mais processos impedidos de continuar; Starvation – processos executam mas não progridem; 4 3 2 1

5 Solução 1 para Filósofos
4 3 2 1 Solução 1 para Filósofos

6 Solução 1 para Filósofos
Problema da solução 1: Execução do take_fork(i)  Se todos os filósofos pegarem o garfo da esquerda, nenhum pega o da direita  Deadlock; 4 3 2 1

7 Solução 1 para Filósofos
4 3 2 1 Solução 1 para Filósofos Se modificar a solução: Pegar o garfo da esquerda Verificar se o garfo da direita está disponível. Se não está, devolve o da esquerda e começa novamente Se tempo para tentativa for fixo  Starvation (Inanição); Se tempo for aleatório (abordagem utilizada pela rede Ethernet) – resolve o problema Serve para sistemas não-críticos;

8 Solução 1 para Filósofos
4 3 2 1 Solução 1 para Filósofos Mais uma opção possível... semaphore mutex = 1; down(&mutex); up(&mutex); Somente um filósofo come!

9 Solução 2 para Filósofos usando Semáforos
Permite o máximo de “paralelismo”; Não apresenta: Deadlocks; Starvation;

10 Solução 2 para Filósofos usando Semáforos (2/3)

11 Solução 2 para Filósofos usando Semáforos (3/3)


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google