Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo de Processos e Threads, MAPA MENTAL 6 DISCIPLINA: SO 2023/2 …
Sincronismo de Processos e Threads
Problema produtor consumidor.
Paradigma de sistemas cooperativos.
Envolve dois tipos de processos.
O consumidor consome recursos.
O produtor gera recursos.
Coordenação para evitar conflitos é um desafio.
Requer mecanismos de sincronização.
Problema da seção crítica.
Criação de um protocolo para a cooperação entre processos.
Cada processo precisa solicitar permissão para entrar em sua seção crítica.
Três requisitos fundamentais:
Exclusão Mútua.
Apenas um processo de cada vez pode executar sua seção crítica.
Progresso.
Se a seção crítica estiver vazia, processos podem competir para entrar.
Espera Limitada.
Um limite no número de tentativas de entrada antes de a solicitação ser atendida.
Não são feitas suposições sobre a velocidade dos processos.
Resolução com tipos de kernel.
Kernel preemptivo.
Permite interrupções de processos em execução no kernel.
Melhor capacidade de resposta.
Suscetível a condições de corrida.
Adequado para programação em tempo real.
Desafiador em arquiteturas SMP.
Kernel não preemptivo.
Não permite interrupções de processos em execução no kernel.
Livre de condições de corrida.
Pode ter menor capacidade de resposta em comparação com o kernel com preempção.
Soluções para o problema da
seção crítica.
Busy wait.
Espera ativa.
"Espera fazendo alguma coisa".
Algoritmo de Peterson.
Instrução TSL.
Soluções de hardware.
Inibição de interrupções.
Usa Disable Interrupt e Enable Interrupt.
Desativa todas as interrupções antes de entrar na RC.
Reativa-as depois de sair.
Garante exclusividade no acesso aos dados compartilhados.
Problemas.
Não recomendado para processos de usuário.
Não funciona bem com múltiplos processadores.
Pode causar atrasos e perda de sincronização com dispositivos periféricos.
Instrução TSL.
Test and Set Lock.
Solução para exclusão mútua em multiprocessadores.
Bloqueia o barramento de memória durante a execução.
Leitura atômica e atualização da variável de bloqueio.
Vantagens.
Simples.
Amplamente suportada.
Funciona em sistemas multiprocessadores.
Desvantagens.
Gera busy wait.
Possível postergação infinita.
Soluções de software.
Com busy wait
Algoritmo de Peterson.
Pode ser generalizado para N processos.
Não garante funcionamento em todas as arquiteturas modernas.
Ao marcar a intenção de entrar, o processo indica que a vez é do outro.
Atende aos requisitos de exclusão mútua, progresso e espera limitada.
Solução simples para o problema da exclusão mútua.
Com bloqueio.
Sleep/Wakeup.
Impedem o desperdício de tempo de CPU.
sleep()
Bloqueia o processo e o suspende até receber um sinal para acordar.
wakeup()
Sinaliza e acorda um processo previamente bloqueado pelo sleep().
Semáforos.
Ferramenta de sincronização.
Duas operações padrão.
acquire() decrementa o semáforo.
release() incrementa o semáforo.
Semáforos binários (mutex) são usados para exclusão mútua.
Exclusão mútua: uso de semáforo para controlar acesso a RC.
Alocação de recurso entre processos.
Sincronização de execução.
Monitores.
Abstração de alto nível apenas para exclusão mútua.
Seções críticas são procedimentos dentro do monitor.
Dados compartilhados estão contidos no monitor.
Procedimentos do monitor são executados mutuamente exclusivos.
Usado em linguagens de programação avançadas, como C# e Java.
Problemas clássicos de sincronismo.
Leitores e escritores.
Leitores podem acessar dados compartilhados simultaneamente.
Escritores só podem acessar dados compartilhados exclusivamente.
Problema de starvation.
Possível inanição (starvation) dos escritores.
Solução
Atender aos processos na ordem de chegada, priorizando os escritores.
Problema dos filósofos glutões.
5 filósofos sentados em torno de uma mesa.
Cada filósofo precisa de 2 garfos para comer.
Há apenas 5 garfos disponíveis.
Desafio.
Evitar que os filósofos entrem em deadlock ou passem fome.
Filósofos pegam garfos, comem e colocam garfos de volta.
Solução.
Usar semáforos ou mutexes para controlar o acesso aos garfos.
Garante que filósofos peguem garfos apenas quando ambos estiverem disponíveis.
Existem múltiplas abordagens para prevenir deadlocks e compartilhar garfos igualmente.
MAPA MENTAL 6
DISCIPLINA: SO 2023/2
ALUNO: JOÃO PEDRO SPINASSÉ VIANA