Please enable JavaScript.
Coggle requires JavaScript to display documents.
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS - Coggle Diagram
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS
SISTEMAS MULTIPROGRAMAVEIS
Em sistemas multiprogramável com um único processador, os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional, mesmo não havendo paralelismo na execução das instruções. Em sistemas multiprocessados existe a possibilidade de paralelismo na execução das instruções.
COMUNICAÇÃO E SINCRONIZAÇÃO
Muitas vezes, em uma aplicação concorrente, é necessário que processos comuniquem-se entre si, e essa comunicação pode ser implementada de diversos mecanismos, como variáveis compartilhadas na memória principal, algumas vezes podem ocorrer alguns problemas devido a falha de sincronização entre processos concorrentes.
PROBLEMAS DE SIMULTANEIDADE
EXCLUSÃO MÚTUA
Cada recurso só pode estar alocado a um único processo em um determinado instante.
ESPERA POR RECURSO
Um processo pode estar esperando por outros recursos.
NÃO-PREEMPÇÃO
Um recurso não pode ser liberado de um processo só porque outros processos desejam o mesmo recurso.
ESPERA CIRCULAR
Um processo pode estar esperando por outros recursos.
MECANISMOS DE SINCRONIZAÇÃO
SINCRONIZAÇÃO CONDICIONAL
Um exemplo desse tipo de sincronização é a comunicação entre dois processos através de operações de gravação e leitura em buffer, onde os processos geram informações utilizadas por outros processos. nessa comunicação, enquanto um processo grava em um buffer, o outro lê os dados, concorrentemente.
SEMÁFOROS
Um semáforo é uma variável inteira, não-negativa, que só pode ser manipulada por duas instruções: DOWN e UP.
MONITORES
O monitor é formado por procedimentos e variáveis encapsulados dentro de um módulo, implementando de forma automática a exclusão mútua entre os procedimentos declarados.
TROCA DE MENSAGENS
Os processos cooperativos podem fazer uso de um buffer pra trocar mensagens través de duas rotinas: SEND e RECEIVE.
DEADLOCK
É a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que nunca ocorrerá.
Para que ocorra, 4 condições são necessárias simultaneamente: EXCLUSÃO MÚTUA, ESPERA POR RECURSOS, NÃO-PREEMPÇÃO e ESPERA CIRCULAR.
PREVENÇÃO
Para que um deadlock ocorra, todas as quatro condições devem ocorrer simultaneamente, se garantirmos que somente uma delas não possa ocorrer, estaremos prevenindo a ocorrência de deadlocks em um determinado sistema.
DETECÇÃO
Geralmente os algoritmos que implementam esse mecanismo verificam a existência da ESPERA CIRCULAR.
CORREÇÃO
O sistema Operacional deve de alguma forma corrigir o problema. Uma solução é eliminar um ou mais processos.