A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,

Apresentações semelhantes


Apresentação em tema: "Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,"— Transcrição da apresentação:

1 Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso, todos os demais processos deverão esperar pelo término da utilização do recurso.

2 Exclusão Mútua A exclusão mútua deve afetar apenas os processos concorrentes somente quando um deles estiver fazendo acesso ao recurso compartilhado. A parte do programa onde é feito o acesso compartilhado é denominada REGIÃO CRÍTICA(RC).

3 Exclusão Mútua Os protocolos de entrada e saída garantem a exclusão mútua da região crítica de um programa. BEGIN. Entra_Regiao_Critica; (* Protocolo de Entrada *) Regiao_Critica; Sai_Regiao_Critica; (* Protocolo de saída *). END.

4 Exclusão Mútua Diversas soluções foram desenvolvidas com esse propósito; porém, duas situações indesejadas também devem ser evitadas. Espera indefinida e o processo fora da sua região crítica impede que outros entrem nas suas próprias regiões críticas.

5 Exclusão Mútua Soluções de Hardware Podem ser implementadas através de mecanismos de hardware, desabilitação interrupções e test-and-set.

6 Exclusão Mútua Desabilitação de Interrupções Antes de entrar em sua região crítica o processo desabilita todas as suas interrupções e as reabitam após deixar a sua região crítica.

7 Exclusão Mútua Desabilitação de Interrupções Begin. Desabilita_interrupções; Região_Critica; Habilita_interrupções ;. End.

8 Exclusão Mútua Desabilitação de Interrupções Limitação A multiprogramação pode ficar comprometida, pois, a concorrência entre processo tem como base o uso de interrupção

9 Exclusão Mútua Desabilitação de Interrupções Para arquitetura de múltiplos processadores a solução torna-se ineficiente, devido ao tempo de propagação quando um processador sinaliza aos demais que as interrupções devem ser habilitadas ou desabilitadas.

10 Exclusão Mútua Instruções Test-and-set Muitos processadores possuem uma instrução de máquina que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um valor à mesma variável.

11 Exclusão Mútua Instruções Test-and-set Característica – é executada sem interrupção Quando executada o valor lógico da variável Y é copiado para X, sendo atribuído à variável Y o valor lógico verdadeiro

12 Exclusão Mútua Instruções Test-and-set Quando a variável lógica Bloqueio for falsa, qualquer processo poderá alterar seu valor para verdadeiro através da instrução Test- and-set e acessar o recurso de forma exclusiva. Ao término do acesso retorna o valor da variável para falso, liberando o recurso.

13 Exclusão Mútua Instruções Test-and-set Desvantagem Starvation (quando dois processos diferentes tentam acessar o mesmo recurso, mas não existem recursos suficientes para os dois, um precisa abrir mão para o outro)

14 Exclusão Mútua Solução de Software Primeiro Algoritmo – Looping infinito Repeat/until Variável de bloqueio para liberar o recurso (variável global)

15 Exclusão Mútua Primeiro Algoritmo A sequência de comandos, dentro do loop, é formada por um protocolo de entrada, uma região crítica e um protocolo de saída. A região crítica é representada por uma rotina, onde o acesso ao recurso realmente acontece

16 Exclusão Mútua Primeiro Algoritmo Limitações Quando um processo A permanece muito tempo em uma rotina, é possível que um processo B queira executar sua região crítica e não consiga, mesmo eu o processo A não esteja utilizando o recurso.

17 Exclusão Mútua Primeiro Algoritmo Limitações No caso da ocorrência de algum problema com um dos processos, de forma que a variável de bloqueio não seja alterada, o outro processo permanecerá indefinida- mente bloqueado.

18 Exclusão Mútua Segundo Algoritmo Como o primeiro algoritmo utiliza a mesma variável global entre ambos os processos, o segundo introduz uma variável para cada processo (CA e CB) que indica se o processo está ou não em sua região crítica.

19 Exclusão Mútua Segundo Algoritmo Limitação Caso um processo tenha um problema dentro da sua região crítica ou antes de alterar a variável, o outro processo ficará indefinidamente bloqueado.

20 Exclusão Mútua Terceiro Algoritmo Soluciona o problema do segundo colocando a instrução de atribuição das variáveis antes do LOOP de teste, garantindo a Exclusão Mútua. Porém introduz um novo problema. Ambos os processos não poderão entrar em suas regiões críticas como se o recurso já estivesse alocado.

21 Exclusão Mútua Quarto Algoritmo Altera o estado da variável antes de entrar na sua região crítica, com a possibilidade de ser revertida.

22 Exclusão Mútua Quarto Algoritmo Limitação O bloqueio simultâneo dos processos

23 Exclusão Mútua Algoritmo de Dekker Primeira solução de software, sem a ocorrência de novos problemas. Baseado no primeiro e no quarto algoritmo, com uma lógica muito complexa. Mas Peterson propôs outra solução mais simples.

24 Exclusão Mútua Algoritmo de Peterson Solução para N processos Similar ao terceiro algoritmo (variáveis CA e CB) Introduz uma variável Vez (para conseguir resolver os conflitos gerados pela concorrência

25 Exclusão Mútua Algoritmo de Peterson While como protocolo de entrada na região Crítica. Variável Vez permitirá a continuidade da execução de um dos processos.

26 Exclusão Mútua Algoritmo para exclusão Mútua entre N processos Todas as soluções possuíam uma deficiência conhecida como espera ocupada (busy wait) que consome tempo do processador desnecessariamente.

27 Exclusão Mútua Algoritmo para exclusão Mútua entre N processos A solução do problema foi introduzir o mecanismo de sincronização que permitia que um processo, quando não pudesse entrar em sua RC, fosse colocado no estado espera. Conhecidos como semáforos e monitores.

28 Exclusão Mútua 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.

29 Exclusão Mútua Sincronização Condicional Um recurso pode não se encontrar pronto para uso devido a uma condição específica. Neste caso o processo que deseja acessá-lo deverá permanecer bloqueado até que o recurso fique disponível.

30 Exclusão Mútua Sincronização Condicional Limitação Espera ocupada que é solucionada com os mecanismos de sincronização semáforos e monitores.

31 Exclusão Mútua Semáforos Atualmente, a maioria das linguagens de programação disponibiliza rotinas para o uso de semáforos. Semáforos são variáveis inteiras, não- negativas, manipulados por duas instruções: Down – decrementa (P) Up – incrementa (V)

32 Exclusão Mútua Semáforos Semáforos são classificados como binários ou contadores: Binários (mutexes) podem assumir valores 0 e 1; Contadores podem assumir valor inteiro positivo, além do 0.

33 Exclusão Mútua Exclusão Mútua utilizando semáforos A implementação ocorre através de um semáforo binário associado ao recurso compartilhado. Não ocorre a espera ocupada As instruções DOWN e UP funcionam como protocolos de entrada e saída.

34 Exclusão Mútua Sincronização condicional utilizando semáforos Os semáforos podem ser utilizados nos casos onde a sincronização condicional é exigida. Exemplo: sincronização quando o processo solicita uma operação de E/S.

35 Exclusão Mútua Sincronização condicional utilizando semáforos O pedido faz com que o processo execute um DOWN no semáforo até que a operação seja completada. Ao término, a rotina de tratamento da interrupção executa um UP no semáforo, liberando o processo do estado espera.

36 Exclusão Mútua Problema dos Filósofos Há uma mesa com cinco pratos e cinco garfos, onde os filósofos podem sentar, comer e pensar. Toda vez que um filósofo pára de pensar e deseja comer, é necessário que ele utilize dois garfos, posicionados à sua direita e à sua esquerda

37 Exclusão Mútua Solução Permitir que apenas quatro filósofos sentem à mesa simultaneamente; Permitir que um filósofo pegue um garfo apenas se o outro estiver disponível; Permitir que um filósofo impar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto o par pegue o garfo da direita e, em seguida, o da esquerda;

38 Exclusão Mútua

39 Problema do Barbeiro Na barbearia há uma cadeira de barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega, caso o barbeiro esteja trabalhando, ele senta se houver cadeira vazia ou vai embora se todas estiverem ocupadas. No caso de o barbeiro não ter nenhum cliente para atender, ele senta na cadeira e dorme até que um novo cliente apareça.

40 Exclusão Mútua Solução Semáforo contador Clientes Semáforo binários Barbeiro e Mutex O processo cliente, garante a exclusão mútua da variável Espera (permitindo verificar se todas as cadeiras já estão ocupadas)

41 Exclusão Mútua Monitores São mecanismos de sincronização de alto nível e estruturados em função de serem implementados pelo compilador.

42 Exclusão Mútua Monitores O monitor é formado por procedimentos e variáveis encapsulados dentro de um módulo. Somente um processo pode estar executando um dos procedimentos do monitor em um determinado instante.

43 Exclusão Mútua Estrutura do Monitor

44 Exclusão Mútua Exclusão Mútua Utilizando Monitores Não é realizada diretamente pelo programador, como no caso do uso de semáforos. As regiões críticas devem ser definidas como procedimentos no monitor, e o compilador se encarregará de garantir a exclusão mútua entre esses procedimentos.

45 Exclusão Mútua Exclusão Mútua Utilizando Monitores A comunicação do processo com o monitor é feita unicamente através de chamadas a seus procedimentos e dos parâmetros passados.

46 Exclusão Mútua Sincronização Condicional Utilizando Monitores Utilizam variáveis especiais de condição WAIT – coloca o processo em espera, até que algum outro processo sinalize com a instrução SIGNAL SIGNAL - libera apenas um único processo da fila de espera.

47 Exclusão Mútua Troca de mensagens Possui um subsistema de mensagem (canal de comunicação) buffer ou link de uma rede; SEND (Receptor,mensagem) Reciver (Transmissor, mensagem) Execuções sincronizadas

48 Exclusão Mútua Troca de mensagens Comunicação indireta através MAILBOX ou PORT(buffer); Vários processos podem estar associados a MAILBOX; Forma assíncrona de comunicação (receptor e transmissor não permanece aguardando o envio e recebimento de mensagens).

49 Exclusão Mútua Deadlock Ocorre quando o processo aguarda por um recurso que nunca estará disponível ou um evento que não ocorrerá.

50 Exclusão Mútua Deadlock Condições para que ocorra um Deadlock: Exclusão mútua onde cada recurso pode estar alocado a um único processo Espera por recursos onde um processo pode estar esperando por outro recurso

51 Exclusão Mútua Deadlock Condições para que ocorra um Deadlock: Não-preempção onde um recurso não pode ser liberado só porque outros processos desejam o mesmo recurso; Espera circular onde um processo pode ter que esperar por um recurso alocado a outro processo e vice-versa.

52 Exclusão Mútua Espera circular

53 Exclusão Mútua Prevenção de Deadlock A prevenção da ocorrência das quatro condições é bastante limitadas, por isso não é utilizada na prática.

54 Exclusão Mútua Prevenção de Deadlock A solução mais conhecida é o algoritmo do banqueiro que exige que os processos informem o número máximo de cada tipo de recurso necessários para a sua execução. Este algoritmo também possui limitações: número fixo de processos ativos.

55 Exclusão Mútua Correção do Deadlock Eliminar os processos envolvidos no deadlock e liberar os seus recursos envolvidos. Caso o recurso seja uma atualização de um arquivo ou impressão, o sistema deve garantir que esses recursos sejam liberados sem problemas. A escolha é feita aleatoriamente.


Carregar ppt "Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,"

Apresentações semelhantes


Anúncios Google