O documento discute os conceitos de processos, threads, comunicação entre processos e problemas clássicos relacionados. Aborda técnicas como semáforos, monitores e regiões críticas para sincronização de acesso a recursos compartilhados e evitar condições de corrida. Apresenta exemplos como o problema do produtor-consumidor, jantar dos filósofos e barbeiro sonolento.
1. Sistemas Operacionais
-Gerência de Processos
Ernesto Massa
(slides fornecidos pela Prentice Hall
e adaptados para esta disciplina)
1
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
2. Processos e Threads
Processos
Threads
Comunicação interprocesso
Problemas clássicos de IPC
Escalonamento
Pearson Education
2
Sistemas Operacionais Modernos – 2ª Edição
3. Condições de Corrida
Exemplo 1: 1 3
7 7
Processo Processo
A
2
7 B 4
7+1 7-1
6 5
8 6
Resultado Final: Contador = 8 (ERRO!)
Pearson Education
3
Sistemas Operacionais Modernos – 2ª Edição
4. Condições de Corrida
Exemplo 2: Processo
2 suspenso
A
8 recebe CPU
10
Y 1 9
5 6 7 8
próxima
4
entrada
3 7
6 4 5
X 7 8
Processo 3 recebe CPU
Valor armazenado pelo B 7 suspenso
processo B é perdido.
Pearson Education
4
Sistemas Operacionais Modernos – 2ª Edição
5. 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
Pearson Education
5
Sistemas Operacionais Modernos – 2ª Edição
6. 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
Pearson Education
6
Sistemas Operacionais Modernos – 2ª Edição
7. 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.
Pearson Education
7
Sistemas Operacionais Modernos – 2ª Edição
8. 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.
Pearson Education
8
Sistemas Operacionais Modernos – 2ª Edição
9. 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.
Pearson Education
9
Sistemas Operacionais Modernos – 2ª Edição
11. Monitores
Exemplo de um
monitor
Pearson Education
11
Sistemas Operacionais Modernos – 2ª Edição
12. 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
Pearson Education
13
Sistemas Operacionais Modernos – 2ª Edição
13. Jantar dos Filósofos
Filósofos
comem/pensam
Cada um precisa de 2
garfos para comer
Pega um garfo por vez
Como prevenir deadlock
Pearson Education
14
Sistemas Operacionais Modernos – 2ª Edição
14. Jantar dos Filósofos
Uma solução errada para o
problema do jantar dos filósofos
Pearson Education
15
Sistemas Operacionais Modernos – 2ª Edição