gregr
Análise e Desenvolvimento de Sistemas – FAQI
Sistemas Operacionais – Aula 08
PARTE II
Introdução
• Compartilhamento de recursos:
• Entre processos pode ocasionar situações indesejáveis,
capazes de comprometer a execução das aplicações.
• Para evitar estes problemas mecanismos de sincronização.
• Garantir o processamento correto dos programas.
Introdução – Problema da Seção Crítica
• N processos competem para usar alguma estrutura de dados
compartilhada.
• Cada processo tem um segmento de código comum onde a estrutura é
acessada.
• Problema: garantir que quando um processo está executando aquele
segmento de código, nenhum outro processo pode fazer o mesmo.
• Todo processo executa a uma velocidade não nula.
• Não há nenhuma suposição quanto a velocidades relativas dos processos.
Introdução – Problema da Seção Crítica
• Requisitos para a solução do problema:
• Exclusão mútua: se um processo i está na seção crítica, nenhum outro
processo pode entrar nela.
• Progresso garantido: se nenhum outro processo está na seção crítica,
um processo que tente fazê-lo não pode ser detido indefinidamente.
• Espera limita: se um processo deseja entrar em uma seção crítica, há
um limite no número de outros processos que podem entrar nela antes dele. Introdução – Problema da Seção Crítica
ALGORITMO 1
ALGORITMO 2
• Variável compartilhada: turn
• Variável compartilhada: flag
• Satisfaz a exclusão mútua, mas não o
• Satisfaz a exclusão mútua, mas não
progresso.
progresso.
Introdução – Problema da Seção Crítica
ALGORITMO 3
• Variável compartilhada: turn e flag
• Satisfaz os três requisitos?
AULA 08
Sincronização e Comunicação entre Processos
Apresenta como a concorrência de processos pode ser implementada. Os problemas do compartilhamento de recursos, soluções e mecanismos do SO para sincronizar processos como semáforos e monitores •