Please enable JavaScript.
Coggle requires JavaScript to display documents.
Comunicação entre processos (Região Crítica/Seção Crítica (Dois processos…
Comunicação entre processos
Compartilhamento de armazenamento
entre processos
Armazenado em: memória principal, ou em arquivo compartilhado
Exclusão mútua
Não é confiável dar autonomia a processos do usuário de fazer exclusão mútua
O núcleo deve ser o responsável por desabilitar interrupções
Região Crítica/Seção Crítica
Dois processos não podem acessar ao mesmo tempo a região crítica
Nada pode ser afirmado sobre a velocidade ou número de CPUs
Nenhum processo executando fora da sua região crítica pode bloquear outros processos
Nenhum processo deve esperar eternamente para entrar na região crítica
Variáveis do tipo Lock (trava)
Um processo verifica se existe trava caso verdadeiro ele aguarda até que o valor da variável seja igual a zero para acessar a região crítica.
Chaveamento obrigatório
Espera ociosa
A variável de trava que usa a
espera ociosa é chamada de
Spin lock
Chavear não é uma boa ideia quando
um processo for muito mais lento que outro
Um processo pode ser bloqueado por outro que não esteja na região crítica
Instrução TSL
Test and set lock
Nenhum outro processador acessará ao valor
que está em memória até o processo acabar
Lê o conteúdo da memória, a palavra lock,
no registrador RX e, então, armazena um valor
diferente de zero no endereço de memória lock.
XCHG
Sleep, Wakeup
Semáforos
Dijkstra propôs o down e o up
Generalização do sleep e wakeup
UP incrementa o valor de sum semáforo
Down verifica se o valor da variável é maior que 0
Caso verdadeiro decrementa o valor
Se o valor for 0 o processo dorme
Atomicidade
Resolve condições de corrida e problemas de sicronização
MUTEX
Exclusão mútua
Estados: Impedido != 0 ou Desempedido valor 0
Permite ou bloqueia acesso a Região Crítica
Deadlock
Monitores
convertendo todas as regiões críticas em rotinas do
monitor, dois processos nunca executarão suas regiões críticas ao mesmo tempo.
Pagina 83