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 2 Processos Introdução Escalonamento de Processos Comunicação entre Processos Comunicação entre Processos Condição de Disputa Condição de Disputa Região Crítica Região Crítica Formas de Exclusão Mútua Formas de Exclusão Mútua Problemas Clássicos Problemas Clássicos Threads Deadlock

3 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 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;

5 5 Solução 1 para Filósofos

6 6 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;

7 7 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 8 Solução 1 para Filósofos Mais uma opção possível... down(&mutex); up(&mutex); Somente um filósofo come! semaphore mutex = 1;

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

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

11 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