Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo e Processo de Threads - Coggle Diagram
Sincronismo e Processo de Threads
ALUNA: JESSICA NOGUEIRA DUQUE
DISCIPLINA: SO 2024/1
MAPA MENTAL 6
Antecedentes
Problema do produto/consumidor
Memória compartilhada (buffer)
Contador que acompanha
Rotinas produtor / consumidor que não funcionam concorrentemente
Problema nas instruções baixo nível
Race condition
Acesso concorrente de dados por processos
Problemas com diferentes partes do SO manipulando recursos
Processos rodando paralelamente / concorrentemente
Problema da seção crítica
A.k.a Região Crítica
Região código para alteração de dados comuns
Consistência de dados compartilhados: acesso apenas um processo
Problema de projeção de protocolo para cooperação
Seção de entrada
Solicitação necessária
Seção de saída
Seção remanescente
Requisitos boa solução
Exclusão mútua
Um por vez
Progresso
Processos sem estar na seção remanescente podem ter acesso
Espera limitada
Ao entrar na fila principal, terá espera limitada até ser sua vez
Manipulação seções críticas
Kernel com preempção
Permite interrupções processos modo kernel
Melhor capacidade resposta
Condições de corrida
Ruim em arquiteturas SMP
Kernel sem preempção
Sem intercepção em modo kernel
Até sair modalidade / ser bloqueado / abandonar voluntariamente controle CPU
Sem tempo bom resposta, mas sem condições corrida também
Problemas clássicos do sincronismo
Soluções hipotéticas bem adaptáveis
Problema dos leitores e escritores
Leitores: acessos simultâneo dados
Escritores: acesso exclusivo dados (incluindo leitura)
Possível starvation escritores
Prioridade baixa > constante negação acesso
Solução
Atender por ordem chegada
Priorizar escritores prontos para escrever
Problema dos filósofos glutões
5 filósofos em uma mesa, comida no meio
Necessidade pegar pauzinhos mais próximos
Ciclo de pensar, comer, parar