Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer



Documentos relacionados
Sistemas Distribuídos. Aleardo Manacero Jr.

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

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

SISTEMAS DISTRIBUÍDOS

MC714 - Sistemas Distribuídos. Leandro Villas

Sistemas Operacionais

Processos e Threads (partes I e II)

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

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


ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

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

Login Integrado (Quiosque / Visão Descentralizada TOTVS 11)

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

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

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Operacionais

Sistemas Cliente-Servidor

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Um cliente de cada vez:

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Sistemas Operacionais

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

Programação Concorrente

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

MODELO CLIENTE SERVIDOR

INF1013 MODELAGEM DE SOFTWARE

Orientação a Objetos

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Sistemas distribuídos:comunicação

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Programação distribuída e paralela (C. Geyer) RPC 1

Gerência do Processador

Revisão Ultima aula [1/2]

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Sincronização de Processos (4) Monitores

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

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

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN

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

Sistemas Distribuídos

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

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

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

Introdução Ligação direta Ligação direta Default

Programação Concorrente em java - Exercícios Práticos Abril 2004

Engenharia de Software III

Aula 30 - Sockets em Java

Java para Desenvolvimento Web

Orientação a Objetos

AULA 5 Sistemas Operacionais

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Lógica de Programação

Monitores. Conceito Sistemas Operacionais II

Sistemas Distribuídos Modelo Cliente-Servidor

Tabela de roteamento

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

5 Estudo de caso: utilizando o sistema para requisição de material

ANALISTA DE SISTEMAS - SUPORTE

SISTEMAS OPERACIONAIS

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Fox Gerenciador de Sistemas

SISTEMA DE CONTROLE DE ACESSO, PARA AMBIENTE ACADÊMICO

Sistemas Distribuídos Grupos

Sistemas Operacionais Gerência de Dispositivos

Gestão inteligente de documentos eletrônicos

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Manual de Instalação do Agente Citsmart

Introdução ao Modelos de Duas Camadas Cliente Servidor

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Boletim Técnico. O sistema é atualizado logo após a aplicação do pacote de atualizações (Patch) deste boletim.

Sistemas Operacionais

Definição do Trabalho da Disciplina. Este documento é muito importante: LEIAM ATÉ O FINAL!

Escalonamento no Linux e no Windows NT/2000/XP

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Sistemas Distribuídos

Gerência de processos Requisitos fundamentais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Universidade da Beira Interior. Sistemas Distribuídos

MANUAL DE INSTALAÇÃO

Sistemas Operacionais

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

Capítulo 4 - Roteamento e Roteadores

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Transcrição:

Disciplina de Sistemas Distribuídos Sincronização em SD Prof. M.Sc. Alessandro kraemer@utfpr.edu.br

Cronograma Contextualização Tipos de sincronização Mecanismos para sincronização da região crítica Exclusão mútua Semáforos Monitores Exemplo de Semáforo

Contextualização Envio e recebimento de dados Sistema A Porta 80 Porta 1025 Sistema B Sistema... Porta... Porta... Sistema... S.O. Linux S.O. Windows O estabelecimento e sequência da comunicação são determinados pelos protocolos. Os programas (sistemas) gerenciam o acesso concorrente e a sincronização.

Contextualização Em programas concorrentes, não é possível determinar a ordem em que os eventos vão ocorrer. É necessária alguma forma de sincronização entre processos. Sincronizar processos significa coordenar as tarefas paralelas no tempo.

Contextualização A sincronização é feita especificando o ponto no programa onde duas ou mais. tarefas devem estar para que possam continuar a execução. Sincronizar também é organizar processos que tentam acessar uma região em memória (região crítica), procurando evitar deadlocks.

Tipos de sincronização Os processos se comunicam através de mensagens (send/receive). Cada processo executa um código idêntico, mas os dados recebidos na mensagem são diferentes. Esses dados podem alterar a região critica e por isso esse acesso deve ser controlado com mais cuidado. Cada processo também possui uma identificação única (UID) que é utilizada para sincronização.

Tipos de sincronização Região crítica A sincronização procura evitar deadlocks receive Send... Processo: -- Códigos idênticos -- UID diferentes -- Dados diferentes receive Send... Processo: -- Códigos idênticos -- UID diferentes -- Dados diferentes

Mecanismos para sincronização da região crítica Exclusão mútua Semáforo Monitor implementam e adaptam a exclusão mútua

Exclusão mútua Controle de acesso a regiões críticas Algoritmo centralizado: 1. Um processo é eleito o coordenador; 2. Os processos concorrentes devem requisitar permissão de acesso ao coordenador 3. Um processo que termina de fazer acesso a uma região crítica deve comunicar a liberação da região ao coordenador; 4. Processos que tentam entrar em uma região crítica ocupada devem aguardar em uma fila controlada pelo coordenador.

Exclusão mútua Eleição do coordenador Algoritmo de Bully: 1. Um processo P envia uma mensagem ELECTION para todos os processos de maior número. 2. Se nenhum processo responde, P vence a eleição e se torna o coordenador. 3. Se um dos processos responde este inicia sua participação na eleição a partir do passo 1. O trabalho de P está feito.

Semáforos Dijkstra (o mesmo dos protocolos de estado de enlace) introduziu a noção de semáforo para impor a exclusão mútua entre processos. O semáforo é uma variável inteira utilizada para parar ou liberar processos. Existe uma fila associada a essa variável onde processos bloqueados ficam no aguardo. Um vez iniciado um método, ele vai até o fim sem interrupção.

Monitores O principal objetivo desta técnica é evitar código duplicado em cada processo. O acesso a região crítica é controlado pelo monitor. Existe uma fila de processos e na medida que são atendidos eles evocam métodos do monitor. A fila é formada dentro do monitor. Somente um processo por vez pode ser executado dentro do monitor (exclusão mútua).

Exemplo de Semáforo Em java usa-se a classe Semaphore (pacote java.util.concurrent) Estes são os métodos mais importantes: acquire adquire uma ou mais permissões bloqueantes release libera as permissões adquiridas availablepermits numero de permissões disponíveis Cada acesso é uma permissão.

Exemplo de Semáforo No construtor da classe é possível definir se existe Fila ou se não há garantia de ordem dos acessos. // semáforo com 10 permissões e FILA Semaphore semafifo = new Semaphore (10, true) ; // semáforo com 10 permissões sem FILA Semaphore sema = new Semaphore (10) ;

Exemplo de Semáforo import java.util.concurrent.semaphore; public class AcessoBD { //... já existe um atributo bd que dá acesso ao Banco de Dados private Semaphore sema; public AcessoBD ( ) { sema = new Semaphore(10); // 10 permissões } } public void insere(string pstrsql) throws InterruptedException { sema.acquire( ); // adquire uma permissão bd.insere(pstrsql); sema.release( ); // libera uma permissão }