Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronismo de Processos e Threads, MAPA MENTAL 6, DISCIPLINA: SO 2023/1,…
Sincronismo de Processos e Threads
Problema da Seção Crítica
Seção crítica
segmento de código que pode alterar
dados comuns a vários processos/threads
dois processos não podem executar suas seções críticas ao mesmo tempo
Problema
projetar um protocolo que processos possam utilizar para a cooperação
requisitos para uma boa solução
Exclusão Mútua
Enquanto um processo estiver executando sua RC, outros
processos não poderão executar suas RCs.
Progresso
Espera limitada
: Há um limite para o número de vezes em que outros processos
podem entrar em suas RCs
Kernels com preempção
permite que um processo seja
interceptado
Kernels sem preempção
não permite que um
processo sendo executado em modalidade de kernel seja interceptado
Introdução
Processo cooperativo
Pode afetar ou ser afetado
por outros processos em execução no sistema
Podem compartilhar diretamente um espaço de
endereços lógicos
Acesso concorrente aos dados compartilhados
Pode resultar
inconsistência de dados
Manutenção da consistência dos dados
precisa de mecanismos para garantir a execução ordenada dos processos em cooperação
Soluções
de Hardware
Inibição de interrupções
Solução DI/DE
DI = Disable Interrupt
EI = Enable Interrupt
Problema
não funciona com vários processadores.
não é bom dar ao processos de usuários o poder de desabilitar interrupcões
pode-se perder a
sincronização com os dispositivos periféricos
garante o acesso exclusivo
aos dados compartilhados
Instrução TSL (apresenta busy wait)
TSL
“Test and Set Lock” (Teste e atualize a variável de
trava)
executada de forma atômica
Vantagens
Simplicidade de uso
Não dá aos processos de usuário o poder de desabilitar interrupções
Presente em quase todos os processadores atuais
Desvantagens
busy wait
Espera ocupada
starvation
Possibilidade de postergação infinita
de software com busy wait
Algoritmo de Peterson
Ao marcar a sua intenção de entrar, o processo já indica (para o caso de empate) que a vez é do outro
Busy wait
espera ativa ou espera ocupada
Consequência
desperdício de tempo de CPU
Problema da inversão de prioridade
processo LowPriority nunca vai ter a
chance de sair da sua RC
de software com bloqueio
Sleep/Wakeup
bloqueia a execução dos processos quando não é permitido entrar em suas RC's
Semáforos
Menos complicado
Quanto um semáforo só pode assumir os valores 0 ou 1
chamados de mutex
Monitores
Resultado
: o código da seção crítica não é mais duplicado em cada
processo
Problemas Clássicos de Sincronismo
Problema dos Leitores e Escritores
leitores
podem ter acesso simultâneo aos
dados compartilhados
escritores
podem apenas ter acesso
exclusivo aos dados compartilhados
Problema dos Filósofos Glutões
quando um filosofo fica com fome, ele pega os dois pauzinhos mais próximos, come um de cada vez e depois volta a pensar
MAPA MENTAL 6
DISCIPLINA: SO 2023/1
ALUNA: KAILANY FAUSTINO DE SOUZA