ALGORITMOS DISTRIBUÍDOS Exclusão mútua

Propaganda
Faculdade de Informática - PUCRS
ALGORITMOS DISTRIBUÍDOS
Exclusão mútua
Sistemas Distribuídos
222
Algoritmos Distribuídos (exclusão mútua)
Faculdade de Informática - PUCRS
z Problema: recursos que não podem ser usados simultaneamente
por diversos processos
z Acesso exclusivo deve ser provido pelo sistema
z Esta exclusividade é conhecida como exclusão mútua
Sistemas Distribuídos
223
1
Algoritmos Distribuídos (exclusão mútua)
Faculdade de Informática - PUCRS
z Um algoritmo que implementa exclusão mútua deve satisfazer os
seguintes critérios:
y exclusão mútua: dado um recurso compartilhado que pode ser acessado por
diversos processos ao mesmo tempo, somente um processo pode acessar
aquele recurso a qualquer momento
y starvation: cada processo que requisita o recurso deve recebe-lo em algum
momento
Sistemas Distribuídos
224
Faculdade de Informática - PUCRS
Algoritmos Distribuídos (exclusão mútua)
z Algoritmo centralizado
z Neste algoritmo, um processo do sistema é eleito como o
coordenador e coordena as entradas na seção crítica (SC)
z Cada processo que deseja entrar em uma SC deve antes pedir
autorização para o coordenador
z Se não existe processo acessando a SC, então o coordenador pode
imediatamente garantir acesso ao processo que fez a requisição
z Se mais de um pede acesso à SC, então só um ganha acesso
z Após término do uso, processo informa coordenador
z Coordenador pode então liberar SC para outro processo (se existir)
Sistemas Distribuídos
225
2
Algoritmos Distribuídos (exclusão mútua)
Faculdade de Informática - PUCRS
z Algoritmo Distribuído
z Se processo deseja acessar SC, então ele envia mensagem para
todos os outros processos
z Mensagem contem:
y identificador do processo
y nome da SC que ele deseja acessar
y um timestamp único gerado pelo processo que enviou a mensagem
Sistemas Distribuídos
226
Algoritmos Distribuídos (exclusão mútua)
Faculdade de Informática - PUCRS
z Ao receber mensagem, processo:
y responde ao processo que enviou msg e garante acesso à SC se:
n não quer acessar SC
n quer acessar SC mas seu timestamp é maior que o timestamp do
processo que enviou a mensagem
y não responde se:
n processo que recebeu mensagem está executando na SC
n processo está esperando para acessar SC e seu timestamp é menor que
o timestamp do processo que enviou a mensagem
Sistemas Distribuídos
227
3
Algoritmos Distribuídos (exclusão mútua)
P1 e P2 querem entrar na seção crítica
TS=6
P2
P1
TS=4
TS=6
TS=6
TS=4
TS=4
P3
P4
Faculdade de Informática - PUCRS
OK
P1
P2 Entra na
seção crítica
OK
P4
P1
P1
OK
OK
P2 P1 P4
Defere resposta
p/ P1 e P2
P4 na seção crítica
P1
Responde a P2
P3
Entra na
seção
crítica
P1
P4
P2 Defere resposta p/ P1
OK
P3
Responde a P1 e P2
OK
P2 Sai da seção crítica
P3
Sai da seção crítica
Sistemas Distribuídos
228
Faculdade de Informática - PUCRS
Enunciado do 1ro Trabalho Prático
z Implementar o algoritmo de exclusão mútua distribuída baseado na garantia de
acesso a partir da autorização de todos
z Supor relógios das máquinas sincronizados
z Trabalho deve ser feito na linguagem C, utilizando RPC
z O recurso compartilhado pelos diversos processos é um arquivo que está em uma
área comum das diversas máquinas onde os processos vão ser executados. No
início este arquivo tem um valor aleatório. Cada processo deve ler o último valor
que se encontra neste arquivo, realizar uma operação sobre o valor, e armazenar
o resultado na próxima posição (append). A seqüência de operações (o conteúdo
do arquivo) deve constar no documento final a ser entregue. Cada vez que o
processo acessa o recurso (arquivo) ele deve imprimir o valor que lá se
encontrava, a operação que foi realizada, e o novo valor que lá foi armazenado.
Cada processo deve realizar no mínimo 5 operações sobre o valor do arquivo.
Cada processo deve ter uma operação diferente dos outros, de tal forma que o
resultado de dois processos com base na mesma entrada é sempre diferente.
z Devem existir no mínimo 5 processos executando
Sistemas Distribuídos
229
4
Algoritmos Distribuídos (exclusão mútua)
Faculdade de Informática - PUCRS
z Algoritmo baseado na passagem de token
y Neste método, exclusão mútua é conseguida pelo uso de um token único que
circula entre os processos do sistema
y Um token é uma mensagem especial que dá ao detentor da mensagem
direito de acesso à SC
y Para que o algoritmo seja justo, os processos são organizados em um anel
y O token circula entre os processos no anel sempre na mesma direção
Sistemas Distribuídos
230
5
Download