Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismos de Processos e Threads - Coggle Diagram
Sincronismos de Processos e Threads
Seção Crítica (SC)
Trecho que altera dados compartilhados
Estrutura das seções: Entrada -> Crítica -> Saída -> Remanescente
Requisitos de solução
Exclusão mútua
Somente um SC por vez
Progresso
Somente processos que não executaram sua SC
Espera limitada
Um processo não ficará esperando eternamente para entrar na sua SC
Kernel
Com preempção
Responsivo. Sujeito a condições de corrida
Sem preempção
Não tem condições de corrida. Pouco responsivo
Soluções para SC
Hardware
Desligar Interrupções (DI/EI)
Simples, inadequado para multiprocessadores, arriscado e prejudicial em períodos longos
Test-And-Set Lock (TSL)
Operação atômica, bloqueia barramento de memória, busy wait e possibilidade de starvation
Software
Sleep/Wakeup
Evita desperdício de CPU, possível condição de corrida
Processo executa, dorme e espera ser acordado
Semáforo
Controla acesso múltiplo a recurso compartilhado
Decrementa e incrementa disponibilidade ao recurso
Semáforo binário = Mutex
Garantir sequência de eventos
Deadlock e statvation
Montitor
Acesso aos dados por meio de procedimentos do monitor
Problemas clássicos
Leitores/Escritores
Múltiplos leitores, somente um escritor
Possível starvation do escritor
Solução: acesso com prioridade de escritores
Filósofos Glutões
Exemplifica
Compartilhamento de recursos
Sincronismo de ações
Deadlocks