Buscar

TRABALHO DE 12.09 (1)

Prévia do material em texto

O que é exclusão mútua e como é implementada?
É a solução para evitar problemas de compartilhamento, impedindo que dois ou mais processos acessem um mesmo recurso simultaneamente, assim enquanto um processo estiver acessando um recurso, os demais que queiram acessa-los deverão esperar pelo termino da utilização do recurso. São implementadas através de protocolos de E/S.
O que e starvation e como podemos solucionar esse problema?
Starvation é uma espera indefinida. Um processo fora da sua região crítica impede que outros processos utilizem o recurso compartilhado. Soluções de hardware: Desabilitação de interrupções; Soluções de software: Algoritmo de Dekker; Algoritmo de Peterson; Algoritmo para exclusão mútua entre N processos.
O que é espera ocupada e qual o seu problema?
Espera ocupada é um modelo de programação paralela caracterizado por testes repetidos de um condição que impedem o progresso de um processo e que só pode ser alterada por outro processo.
O que é deadlock, qual as condições para obte-lo?
Na espera ocupada, toda vez que um processo não consegue entrar em sua região crítica, por já existir outro processo acessando o recurso, o processo permanece em looping, testando uma condição, até que lhe seja permitido o acesso. Dessa forma, o processo em looping consome tempo do processador desnecessariamente, podendo ocasionar problemas ao desempenho do sistema. 
Qual o problema com a solução que desabilitada as interrupções para implementar a exclusão mutua?
Essa solução apesar de simples, apresenta algumas limitações. Primeiramente, a multiprogramação pode ficar seriamente comprometida, já que a concorrência entre processos tem como base o uso de interrupções. Um caso mais grave poderia ocorrer caso um processo desabilitasse as interrupções e não tornasse a habilitá-las. Nesse caso, o sistema, provavelmente, teria seu funcionamento seriamente comprometido.
explique o que é sincronização condicional.
Sincronização condicional é uma situação onde o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Um recurso pode não se encontrar pronto para uso devido a uma condição específica. Nesse caso, o processo que deseja acessá-lo deverá permanecer bloqueado até que o recurso fique disponível.
explique o que são semáforos e de dois exemplos de sua utilização: um para a solução da exclusão mútua e outro para a sincronização condicional.
Um semáforo é uma variável interna, não negativa, que só pode ser manipulada por duas instruções: DOWN (decrementa o valor da variável) e UP (incrementa o valor da variável);
Quanto a exclusão mútua, citamos como exemplo de utilização de semáforo, quando for entrar na região crítica, o processo executa um DOWN; se o semáforo for igual a um, este valor é decrementado e o processo entra na região crítica; se o valor for zero, então o processo impedido de entrar na seção crítica, e seu estado passa a ser de espera, liberando o processador.
Quanto a sincronização condicional, como exemplo tem-se a solicitação de E/S, onde o processo que solicita a E/S executa um DOWN e fica em estado de espera até a operação de E/S ser completada.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes