Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo de Processos e Threads, Mapa Mental 6 Disciplina: SO 2024/2 …
Sincronismo de Processos e Threads
Problemas clássicos de sincronismo
Problema dos filósofos glutões
Demonstração de problemas de controle de concorrência
Solução
Um semáforo para cada chopstick
Problemas dos leitores e escritores
Leitores tem acesso simultâneo
Escritor e outro processo não podem acessar o banco de dados juntos
Escritores tem acesso exclusivo
Soluções para o problema da seção crítica
Soluções de software com bloqueio
Primitivas Sleep/Wakeup
Bloquear a execução quando sua entrada não é permitida
sleep()
Suspende a execução até que o outro acorde
wakeup()
Acorda o processo bloqueado
Semáforos
Não exige espera ocupada
Problemas
Deadlock
Starvation
Semáforo binário
lock(umtex)
unlock(umtex)
Semáforo de contagem
Domínio restrito
Acessado por duas operações atômicas
wait()
signal()
Monitores
Assegura que um processo de cada vez seja ativo
Mecanismos de sincronização adicional
condition
Não é suficientemente poderoso
Operações definidas dotadas de exclusão mútua dentro do monitor
Processo só pode acessar os dados por meio de procedimentos
Soluções de software com busy wait
Algoritmo de Peterson
Dois processos que se alteram na execução
O processo indica que é a vez do outro apenas tendo a intenção de entrar
Busy wait
Espera ocupada
Soluções de hardware
Instrução TSL
"Test and Set lock"
Bloqueia barramento de memória
Executada de forma atômica
Problemas
Starvation
Busy wait
Inibição de interrupções
Desativa todas as interrupções antes de entrar na RC
DI
Disable interrupt
EI
Enable interrupt
Problemas
Não funciona em ambiente multicore
Dessinteressante o usuário poder desabilitar interrupções
Antecedentes
O problema do Produto/Consumidor
Produto produz informações
para processo consumidor
Condição de Corrida
Processos acessam e manipulam os
mesmos dados concorrentemente
Sincronização para que não consuma um item que não foi produzido
O problema da seção
crítica
Projetar protocolo para processos utilizarem na cooperação
Região crítica é Pequena
Kernel com preempção
Processos interceptados
Kernel sem preempção
Processo não interceptado
Seção remanescente
Código restante
Seção de entrada
Para entrar na seção critica
Seção de saída
Para sair da seção critica
Processo pode alterar variáveis comuns
Para a solução ser boa
Exclusão mútua
Processos não podem executar ao mesmo tempo
Progresso
Processos que não estão na remanescente podem decidir quem vai executar
Espera limitada
Limite para o número de vezes
que podem entrar
Mapa Mental 6
Disciplina: SO 2024/2
Aluno: Caio Chiabai de Oliveira