Buscar

Sistemas Operacionais - ComunicacaoP

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
*
Comunicação Entre Processos
Sistemas Operacionais parte II
*
*
*
Comunicação entre Processos
Condições de Corrida
Dois ou mais processos acessando dados compartilhados
*
*
*
Comunicação entre Processos
Exclusão Mútua
Região Crítica
Parte do programa cujo processamento pode levar a condições de corrida.
*
*
*
Exclusão Mutua
*
*
*
Comunicação entre Processos
 Condições para uma boa solução
Dois ou mais processos não podem estar simultaneamente dentro de suas RC
Nenhuma consideração sobre suas velocidades relativas ou nº de processadores
Nenhum processo fora de sua RC pode bloquear outro processo
Nenhum processo pode ser obrigado a esperar indefinidamente para entrar em sua RC
*
*
*
Comunicação entre Processos
Exclusão Mutua
Inibição de Interrupção
Útil para processos do Kernel
Variáveis de Travamento
Não funciona, por que?
Estrita Alternância
Ruim quando um processo é muito mais lento que o outro.
*
*
*
Estrita alternancia
*
*
*
Solução de Peterson
*
*
*
Instrução TSL
enter_region:
TSL REGISTER,LOCK 	|copia lock para o registrador e seta 				 lock para 1
CMP REGISTER,#0 	| lock = zero?
JNE enter3region 		|Se foi diferente de zero, bloqueio 				foi ativado, loop
RET				| retorna para a funçao chamadora, 				entrou regiao critica
Leave_region:
MOVE LOCK,#0 		| Coloca 0 lock
RET 				| return to caller
*
*
*
Comunicação entre Processos
Soluções de Software - Histórico
Solução para o problema da exclusão mútua entre dois processos
Dekker, Peterson
Solução para o problema da exclusão mútua entre n processos
Dijkstra, Peterson
Problema de starvation
Problema de espera ocupada (spin lock)
Looping de espera consome tempo do processador desnecessariamente
*
*
*
Comunicação entre Processos
Spin Lock
Problema da prioridade invertida
Bloqueio e Desbloqueio de Processos
Sleep/ wakeup
Comando para colocar um processo no estado de espera até ser liberado por outro processo
Fatores: legibilidade, simplicidade e correção dos programas concorrentes
Atômico
Problema do Produtor - Consumidor
*
*
*
Condição de Corrida
*
*
*
Semáforo
Um semáforo é uma variável de sincronização que pode ter valores inteiros não-negativos. Foram inventados por Edsger Dijkstra in 1965. Duas operações são definidas sobre semáforos: 
P (do holandês "proberen", testar): uma operação atômica que espera o semáforo ficar positivo, e a seguir decrementa-o de 1. Tanenbaum utiliza down. 
V (do holandês "verhogen", incrementar): uma operação atômica que incrementa o semáforo de 1. Tanenbaum utiliza up. 
*
*
*
Semáforo
Semáforos provêm uma abstração simples e elegante que é útil para implementar exclusão mútua e outras tarefas de sincronização. 
*
*
*
Exclusão Mútua e
Sincronização entre Processos
*
*
*
Comunicação entre Processos
Signal: Um processo notifica outro através de uma interrupção de software (Ex. kill do unix).
Semaphore: Processos bloqueados, aguardando sua vez, recebem uma notificação (signal).
Pipes: Fluxo de comunicação unidirecional.
Message passing: Processos enviam e recebem
mensagens (send/receive), podendo a comunicaçãoser individual (dois processos) ou em grupo.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando