17
1 n Sistemas Operacionais Moder Sistemas Operacionais -Gerência de Processos Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

Embed Size (px)

Citation preview

Page 1: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

1Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Sistemas Operacionais-Gerência de Processos

Ernesto Massa

(slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

Page 2: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

2Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Processos e Threads

Processos Threads Comunicação interprocesso Problemas clássicos de IPC Escalonamento

Page 3: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

3Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Condições de Corrida

Exemplo 1:

Resultado Final: Contador = 8 (ERRO!)

7Processo

A7+1

ProcessoB

7-1

1

73

7

6

8

2 4

5

6

Page 4: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

4Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Condições de Corrida

Exemplo 2:

Valor armazenado peloprocesso B é perdido.

65

4

3

próximaentrada

7

ProcessoA

ProcessoB

1

7

suspensorecebe CPU

2

8

recebe CPUsuspenso

3

7

4

75

8

6

X

10

Y 9

8

Page 5: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

5Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Condições de Corrida

Região Crítica: Parte do código onde é feito acesso a recursos

compartilhados, e que podem levar a condições de corrida.

Ex: Processo A. Código normal Início da Seção Crítica (Protocolo de Entrada) Seção Crítica Término da Seção Crítica (Protocolo de Saída) Código normal

Page 6: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

6Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Regiões Críticas

Quatro condições são necessárias para prover exclusão mútua:

Nunca dois processos simultaneamente em uma região crítica

Nenhuma afirmação pode ser feita sobre velocidades ou números de CPUs

Nenhum processo executando fora de sua região crítica pode bloquear outros processos

Nenhum processo deve esperar eternamente para entrar em sua região crítica

Page 7: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

7Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Soluções de Software

Implementações de uso das regiões críticas sem a espera ocupada: Semáforos (Counting Semaphores); Semáforos Binários

Mutex (Mutual Exclusion Semaphores); Monitores.

Page 8: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

8Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Soluções de Software

Chamadas sleep e wakeup: Sleep:

Coloca o processo chamador no estado de espera.

Wakeup: Coloca um outro processo que está em

espera no estado de pronto.

Page 9: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

9Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Soluções de Software

Semáforos: Ferramenta de sincronização criada por

Dijkstra (1965); Características:

Variável inteira; Não negativa.

Manipulados exclusivamente por duas operações atômicas:

DOWN (generalização do sleep) UP (generalização do wakeup) Implementados como chamada ao sistema.

Page 10: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

10Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Problema Produtor Consumidor Semáforos

Page 11: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

11Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Monitores

Exemplo de um monitor

Page 12: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

13Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Problemas Clássicos de Comunicação entre Processos

Problemas que ilustram situações reais de conflitos gerados pela concorrência entre processos. O Jantar dos Filósofos (Filósofos Glutões) O Barbeiro Sonolento Leitores e Escritores

Page 13: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

14Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Jantar dos Filósofos

Filósofos comem/pensam

Cada um precisa de 2 garfos para comer

Pega um garfo por vez Como prevenir deadlock

Page 14: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

15Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Jantar dos Filósofos

Uma solução errada para o problema do jantar dos filósofos

Page 15: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

16Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Barbeiro Sonolento

Page 16: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

17Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Barbeiro Sonolento

Page 17: 2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos

18Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Leitores e Escritores