Exclusão Mútua Distribuída



Documentos relacionados
SISTEMAS OPERACIONAIS

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Exclusão Mútua e Eleição

Exclusão Mútua em Sistemas Distribuídos

Sistemas Distribuídos. Aleardo Manacero Jr.

LaSiD/UFBA. Raimundo J. de A. Macêdo

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Programação Concorrente

Revisão Ultima aula [1/2]

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Processos e Threads (partes I e II)

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

void echo(); { chin = getchar(); chout = chin; putchar(chout); }

Sistemas Distribuídos

Ciência de Computadores Sistemas Distribuídos e Móveis

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sistemas Operacionais

Sistemas Operacionais

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer Kraemer

Sistemas Distribuídos

Sincronização de Processos (5) Troca de Mensagens

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Monitores. Conceito Sistemas Operacionais II

MC714 - Sistemas Distribuídos. Leandro Villas

Sincronização de Processos (1) Mecanismos de busy wait

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Fundamentos de Sistemas Distribuídos

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Sistemas Distribuídos Aula 17

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Distribuídos Modelo Cliente-Servidor

Sincronização em Sistemas Distribuídos

ALua. asynchronous communication in Lua

Capítulo 2 Processos e Threads Prof. Fernando Freitas


Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Sistemas Distribuídos Exclusão Mútua. Edeyson Andrade Gomes

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Distribuídos Grupos

Arquitetura de Sistemas Operacionais

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Tempo e estados globais. Tempo. Tempo. Sincronização de relógios físicos. Sincronização de relógios físicos: drift

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Sistemas Distribuídos Sincronização de Relógios. Edeyson Andrade Gomes

SISTEMAS DISTRIBUÍDOS

Arquitetura de Sistemas Operativos

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Sistemas Operacionais

Sistema P2P com Timestamping para Sincronização de Diretórios

Introdução à Computação: Sistemas Operacionais II

SISTEMAS DISTRIBUÍDOS

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes

Sistemas Cliente-Servidor

Sistemas Operacionais Sincronização e Comunicação entre Processos

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Manual da Interface SpeedTAXI

Sistemas Distribuídos

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Sistemas Distribuídos

Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

9 - Sincronização e Comunicação entre Processos

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

PROCESSOS COMPONENTES DE UM PROCESSO. A execução de um processo possui vários componentes. PID e PPID

Comunicação entre Processos

Sistemas Operacionais Processos e Threads

Sistemas Operacionais. Prof. André Y. Kusumoto

Sincronização em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Sistema de Automaçaõ de Vendas Manual Passo a Passo

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

Sincronização. Sincronização de Relógios. Relógios Físicos

Comunicação. Parte II

Gerência do Processador

Sistemas Operacionais

Programação Distribuída

Capítulo 8 Arquitetura de Computadores Paralelos

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.

Arquitetura e Organização de Computadores I

Transcrição:

Exclusão Mútua Distribuída Raimundo Macêdo Laboratório de Sistemas Distribuídos - LaSiD Universidade Federal da Bahia

Propriedades de um programa distribuído (Lamport, 1977) Exemplo 2: sistema controlando semáforos safety: dois semáforos numa estarão verde ao mesmo tempo liveness: um carro esperando na luz vermelha, receberá luz verde no futuro

Comunicação Processos em Sistemas Centralizados Compartilhamento de Memória Primitivas: Semáforos, filas de mensagens, monitores, sinais etc Relógio Único RAM Pi Pn Pj Pk

Comunicação Processos em Sistemas Distribuídos Troca de Mensagens Primitivas: send(destino, mensagem) e receive(origem, mensagem) Pi Pj Pk Pn RAM RAM RAM RAM

Sincronização entre Processos Race condition: dois processos compartilham dados e o resultado depende de quem executa exatamente quando

Exemplo de Race Condition Extraído do livro Tanenbaum pg. 54 spooler de fila de impressão 1- A atualiza nexta = in + 1 2- A é interrompido pelo escalonador 3 - B atualiza netxb := in + 1 Processo A Processo B 4 5 6 7 abc prog.c prog.n 4 - B faz spooler [nextb] := file; in := nextb; /* in = 7 * / 5 - Escalonador coloca A na CPU 6 - A faz spooler [nexta] := file; in := nexta; /* in = 7 * / out = 4 in = 6 in e out são variáveis compartilhadas Arquivo de B nunca será impresso

Formulação Abstrata do Requisito de Sincronização região crítica: parte do programa que acessa o recurso compartilhado exclusão mútua: garantia de que, se um processo está acessando a sua região crítica, nenhum outro processo estará fazendo o mesmo

Requisitos de uma boa solução dois processos não podem estar simultaneamente em suas regiões críticas (safety) nenhuma consideração deve ser feita sobre velocidades relativas de execução de processos nenhum processo executando fora de sua região crítica pode bloquear outros processos (safety) processos devem em algum instante poder entrar em suas regiões críticas (liveness)

Métodos para Exclusão Mútua Desligar (desabilitar) interrupções Alternação estrita (strict alternation) Solução de Peterson Instrução TSL (test and set lock) Semáforos Monitores Troca de Mensagens

Exclusão Mútua em Sistemas Distribuídos

Exemplos Texto 1 REDE Data 1 Data 2 Data 3 Texto 2 Texto 3

Sistema Centralizado Memória comum ==> semáforo Relógio Comum ==> timestamps perfeitos Troca de Mensagens

Safety EM1 : no máximo um processo pode executar a região crítica por vez Liveness EM2 : um processo que deseje entrar na RC garantidamente terá acesso num tempo finito (desde que processos ocupando a RC a deixem num tempo finito) ==> não há deadlock ou stavation Causal Order acessos são consedidos respeitando-se a ordem causal

Enter ( )...RC... Exit( ) Fila de pedidos Pede token Recebe token Libera token

EM1 - EM2 - EM3? Enter ( )...RC... Exit( ) Fila de pedidos P1 P2 pede token P3 libera token P 4 recebe token

Enter ( )...RC... Exit( ) CUSTO : 3 mensagens (2 para ENTER e 1 para EXIT) Problemas: 1) bottleneck no Server 2) Server é um ponto de falha crítico ==> como escolher um novo server e como atualizar seu estado 3) falha de processos impede progresso (liveness)

resposta P2 P1 pedido P2 1) processos conhecem os endereços de seus pares (membership estático e conhecido); P3 2)mensagens transmitidas são garantidamente entregues; 3) Pi mantém um relógio lógico Ci;

LC1 : event send (m) LCi := LCi + 1 T := LCi send (m, m.t) LC2 : receive (m) LCi := max (LCi, m.t) + 1 Mensagens para pedido de token são da forma: <T, Pi> Identificador do processo timestamp

Ideia Básica (ricard and Agrawala, 1981) Para entrar na RC : send to all <T, Pi, nome da RC> Quando Pi recebe uma mensagem: <T, Pj, nome RC> 1) se Pi não está na RC send OK 2) se Pi está na RC enfila pedido (T,Pj, nome RC> 3) se Pi deseja entrar na RC compara seu próprio Ti com os demais Tj se Ti não é o menor send OK senão enfila <T, Pj, nome RC> Quando Pi recebe OK de todos Entra RC Send OK to all removes all from local queue,

Exemplo (Tanembaun DS, pg 136) 8 0 12 8 8 1 2 12 12 Entra RC 0 ok ok 1 2 ok 0 1 2 ok

On initialization: state:= RELEASED {RESEASED, WANTED, HELD) To obtain a token: state:= WANTED; Multicast request to all processes T:= resquest s timestamp On receipt of a request <Ti, pi> at pj (i dif. J) if (state = HELD or (state = WANTED and (T,pj) < (ti,pi))) then queue request from pi without replying; else reply immediately to pi; endif To release token state := RELEASED; reply to any queued requests; empty queue.

CUSTO : 2 (n-1) : point-to-point n : multicast Problemas 1)custo de transmissão 2)falha de componentes (impede progresso) 3) todos os processos recebem e processam todos os pedidos (bottleneck = server centralizado)

P1 P2 Token P3 P4 Custo : 1 a n-1 msgs. Problemas : falhas e comunição na ausência de pedidos