Artigo de Seminário Processamento Distribuído: Cliente/Servidor e Cluster Fabrizio Borelli 1, Gabriel Nóbrega 1, Henrique Dorotea 1, Maitê Balhester 1

Tamanho: px
Começar a partir da página:

Download "Artigo de Seminário Processamento Distribuído: Cliente/Servidor e Cluster Fabrizio Borelli 1, Gabriel Nóbrega 1, Henrique Dorotea 1, Maitê Balhester 1"

Transcrição

1 Disciplina: BC1518-Sistemas Operacionais Professor: Marcelo Zanchetta do Nascimento 1 Artigo de Seminário Processamento Distribuído: Cliente/Servidor e Cluster Fabrizio Borelli 1, Gabriel Nóbrega 1, Henrique Dorotea 1, Maitê Balhester 1 1 Grupo Processamento Distribuído: Cliente/Servidor e Cluster de Sistemas Operacionais (SO), Universidade Federal do ABC Resumo - Este artigo introduz os conceitos de sistemas distribuídos, suas características, vantagens e desvantagens em relação aos sistemas centralizados predominantemente utilizados atualmente. São abordados os conceitos de invocação remota de procedimento com a utilização da biblioteca RMI e uma breve abordagem sobre sistemas baseados em clusters utilizando as especificações MPI e sincronização de recursos compartilhados em rede. Palavras-chave: sistemas distribuídos, modelo cliente/servidor, socket, RPC, RMI, Cluster, MPI. Introdução A maioria dos sistemas computadorizados atuais são classificados como centralizados: possuem um ou mais processadores em perfeita comunicação, compartilhando o barramento do computador, memória, clock e periféricos. PCs e mainframes (computadores de grande porte capazes de processar grande volume de informação) são exemplos de sistemas centralizados. A comunicação inter-processos em um sistema centralizado ocorre por meio de memória compartilhada, o que necessita de mecanismos para que apenas um processo possa acessar esta região de memória compartilhada (seção crítica) de cada vez, de forma a manter a exclusão mútua de processos. O uso de semáforos quando um processo entra em sua região crítica, os outros ficam bloqueados até que o mesmo saia desta região é um método para tratar deste problema. [1] Neste trabalho, é introduzido outro conceito em sistemas computacionais, chamado de sistemas distribuídos, definido como uma coleção de processadores autônomos, que se comunicam através de uma rede de computadores, equipados com software capaz de permitir o compartilhamento de recursos, tais como hardware, software de dados [2]. Características dos sistemas distribuídos Hardware: as máquinas são autônomas, não compartilhando memória, barramento e clock, interligadas por uma rede de comunicação. Software: o usuário tem a impressão de que está utilizando uma única máquina. [3] Compartilhamento de recursos: Se várias máquinas diferentes estão interligadas entre si, então uma máquina é capaz de acessar recursos disponíveis em outra instalação [1]. Capacidade de extensão: sempre que for necessário aumentar o desempenho do sistema, precisa-se apenas acoplar mais máquinas (crescimento por demanda). Sincronismo: informação está distribuída entre várias máquinas e discos. Cada nó do sistema possui seu próprio relógio (clock não é compartilhado), logo cada nó tem seu próprio horário. A disputa por recursos distribuídos necessitam de algoritmos mais complexos, que são susceptíveis à comunicação entre processadores. Heterogeneidade: em um sistema amplo, podem ter máquinas de diferentes arquiteturas e com diferentes sistemas operacionais. Concorrência: quanto maior o número de máquinas e recursos, maior a concorrência entre processos. A rede influencia no acesso a recursos de outras máquinas. Transparência: o usuário não precisa saber aonde estão os recursos que está utilizando, bem como o número de cópias do recurso existem. Recursos podem mudar de lugar sem que se troque o nome. Concorrência e paralelismo de processos ocorrem sem o conhecimento do usuário [2]. Vantagens de um sistema distribuído sobre um sistema centralizado Custo: é possível obter um sistema distribuído com desempenho igual ou superior a um sistema centralizado, acoplando vários microprocessadores de baixo custo utilizando uma rede de comunicação. Performance: ao paralisarmos tarefas em diversas máquinas, é possível obter desempenho bem superior a um sistema centralizado.

2 Disponibilidade e confiabilidade: em caso de falha, máquinas independentes podem continuar operando, ao contrário do que ocorre em um sistema centralizado, onde uma falha pode acarretar em total paralisação de uma tarefa. Crescimento incremental: conforme necessário, o poder computacional pode aumentar em pequenas doses, acoplando mais máquinas ao sistema [3]. Desvantagens de um sistema distribuído sobre um sistema centralizado Rede: o tratamento e recuperação das mensagens trocadas por processos podem ser custosos, além da manutenção e melhoria da rede ser uma tarefa cara. Eventualmente, a rede pode saturar, causando com que não seja possível o envio/recebimento de mensagens. Segurança: deve-se garantir a integridade e autencidade dos dados compartilhados, assim como proteger dados sigilosos. Deve-se fornecer credenciais de acesso aos dados e bloquear o acesso quando necessário. Software: Além da mudança de paradigma, não há muita disponibilidade de softwares para sistemas distribuídos, nem linguagens de programação para este tipo de sistema. Outro ponto a ser levado em consideração é que é difícil determinar o que deve ser feito pelo usuário e o que deve ser feito pelo sistema. [3] Comunicação inter-processo em um sistema distribuído Em um sistema distribuído, a comunicação inter-processo não é mais realizada utilizando memória compartilhada. Utiliza-se uma técnica chamada de troca de mensagens. Caracteriza-se o modelo cliente/servidor da seguinte forma: um servidor fornece serviços aos usuários e um cliente utiliza um serviço fornecido pelo servidor. Deste modo, uma única máquina pode executar um ou vários processos servidores, ou clientes, e até uma combinação entre estes dois tipos de processo. Para a troca de mensagens entre dois processos, as seguintes chamadas de sistema são invocadas: send(destino,&ponteiro_msg): Envia uma mensagem para o processo destino apontada por ponteiro_msg, e o processo que executou o send() fica bloqueado até que a mensagem seja enviada receive(end, &ponteiro_msg): bloqueia o processo que executa o receive() até que receba uma mensagem, que será copiada no buffer apontado por ponteiro_msg. O parâmetro end especifica o endereço onde o receptor está aguardando a mensagem Este tipo de comunicação inter-processo é vantajosa pela sua simplicidade e eficiência, além de não ser necessário estabelecer e finalizar uma conexão para enviar a mensagem [3]. Sistema operacional distribuído Como em um sistema distribuído os usuários acessam recursos remotos como se fossem recursos locais, um sistema operacional distribuído deve ser capaz de prover os seguintes tipos de migração entre instalações: Migração de dados: um usuário de uma instalação I 1 deseja acessar dados (ex. um arquivo) que estão em outra instalação I 2. Existem duas técnicas para realizar este tipo de migração: a) Transfere-se o arquivo inteiro para a instalação I 1. Após a transferência, todo acesso ao arquivo é local; b) é transferido apenas as partes necessárias para a tarefa imediata do arquivo para I 1. Se mais tarde for necessário acessar outra parte do arquivo, realiza-se outra transferência. Quando o usuário não quiser mais usar o arquivo, todas as partes modificadas são enviadas de volta a I 2 Migração de computação: como às vezes, é menos custoso transferir a computação do sistema em vez dos dados (se o tempo de transferência de dados for maior que o tempo para executar o comando remoto, deverá utilizar o comando remoto), se um processo P quer acessar um arquivo residente na instalação I 1, podemos realizar a migração de computação das seguintes maneiras, sendo o acesso ao arquivo realizado em I 1 : a) P invoca um procedimento predefinido na I 1, o procedimento é executado corretamente e retorna os resultados para P; b) P envia uma mensagem para I 1, que cria um processo P 2 responsável por executar a tarefa designada, e este retornará os resultados obtidos para P por meio de mensagens. Neste último caso, P, P 2 e demais processos existentes podem executar de forma concorrente. Migração de processo: é uma extensão lógica da migração de computação. Ao ser submetido para execução, um processo nem sempre é executado na instalação em que foi iniciado, aliás, o processo todo, ou em partes, pode ser executado em diferentes instalações. Também existem duas técnicas para realizar a migração de processos: a) Esconder do usuário o fato de o processo ter migrado de cliente (realizada para balanceamento de carga entre nós do sistema e aumento de velocidade de computação); b) Usuário deixa explícito como deve ser migrado o processo (pode ocorrer pois o processo em questão possui preferência de hardware ou software). Outro motivo que pode ser responsável pela migração de processos é acesso a dados, mas, neste caso, as técnicas

3 utilizadas são aquelas descritas para o caso de migração de programação [1]. Existem alguns protocolos e métodos para que se possa aplicar o uso de sistemas operacionais distribuídos. Neste artigo, descreveremos sobre RPC, RMI e MPI. RPC RPC ou Remote Procedure Call é um tipo de protocolo para chamada de procedimentos remotos que permite ser usado em diferentes sistemas, na qual permite a divisão de um programa em várias partes do sistema distribuído ou de uma rede, com a possibilidade inclusive de compartilhar os mesmos diretórios e arquivos. Isso permite que ao programador invocar métodos remotos sem se preocupar com os detalhes da implementação da parte remota do sistema, pois os procedimentos são executados como se fossem locais. Na Figura 1, é possível entender como funciona: geralmente acontece em um modelo cliente/servidor, na qual uma máquina faz uma requisição de um procedimento localizado em outra máquina e esta executa a solicitação requerida e devolve ma resposta. Figura 1 Conceito de RPC O RPC não especifica como uma mensagem é enviada, apenas especifica a mensagem em si e a interpreta, o que permite implementá-lo (RPC) em diferentes protocolos de transporte. As camadas de transporte implementadas são geralmente TCP e UDP [1]. Existem algumas diferenças entre os protocolos TCP e UDP. Basicamente, TCP garante o envio de informações com mensagens representando o sucesso ou falha da operação.é mais lento que o UDP, que não garante a integridade dos dados [2]. Pode-se resumir este protocolo em alguns passos por lado do servidor e do cliente. Neste artigo, foi omitida a parte de tratamento de erros. Pela parte do cliente: 1. Mandar a mensagem ao servidor, que contém os parâmetros e implementação do procedimento. 2. Aguarda uma mensagem de resposta, que contém o resultado da execução do procedimento. 3. Coleta os resultados. 4. Prossegue com a execução No servidor, ocorrem os seguintes passos: 1. Processo aguarda a mensagem de invocação. 2. Extrai parâmetros e produz resultados. 3. Envia uma mensagem de resposta. Nos anos 90, o modelo de programação baseada em objetos foi ampliado para permitir que objetos de diferentes processos se comunicassem por intermédio da invocação de método remota (RMI). A RMI é uma extensão da invocação a método local que permite a um objeto que está em um processo invocar métodos de outro objeto que está em outro processo [2]. A arquitetura mais usada em sistemas distribuídos é Objeto Distribuído. Consiste em objetos que encapsulam dados denominados estados e executam operações denominados métodos. Estes são disponibilizados por meio de uma interface. O fato de se trabalhar com objetos impõe a condição de encapsulamento. Isso significa que um objeto pode ser acessado somente pelos seus métodos, o que garante uma maior segurança. Para garantir o problema da condição de corrida, uma alternativa é usar primitivas de sincronização para proteger o acesso as variáveis globais de um objeto. Apesar do RPC apresentar uma visão de que o método está sendo executado localmente, surgem problemas que não havia antes de distribuir o processamento. Quando se trata de máquinas diferentes, há endereçamentos diferentes e arquiteturas diferentes, o que pode ocasionar falhas se o programador não se precaver destes erros. Por exemplo, arquiteturas como I386 e SPARC-Sun diferem em seu armazenamento de memória. I386 utiliza o sistema Litlle endian, ou seja, o número menos significativo é endereçado no maior endereço de memória. Já o big endian, o algarismo mais significativo é guardado no menor endereço de memória. Para que haja uma comunicação entre estas arquiteturas, é necessário criar um bit para indicar qual sistema de armazenamento de memória está sendo usado. Outros erros comuns são problemas físicos nos servidores e clientes, além da possível perda de informação por parte do cliente/servidor. Se algo acontecer, o sistema distribuído tem que ser capaz de tratar estes erros [3]. É possível adotar outros modelos arquiteturais como, replicar objetos para poder garantir um sistema tolerante

4 a falhas e também migrar objetos entre máquinas para melhorar seu desempenho de processamento [2]. Neste artigo, utilizaremos RMI implementado em JAVA, mas há implementação em outras linguagens que suportam o paradigma orientado a objetos. A vantagem da linguagem JAVA seria além do uso do paradigma orientado a objetos, permitir que objetos invoquem métodos em objetos remotos usando a mesma sintaxe das invocações locais, além de possuir um tratamento de exceções RemoteExepction. A aplicação de aplicativos distribuídos é relativamente simples, pois é implementado em apenas uma linguagem. RMI faz parte do núcleo básico de Java desde a versão JDK 1.1, com sua API sendo especificada através do pacote Java.rmi e seus subpacotes [3]. Através do RMI, é possível um objeto ativo em uma máquina virtual do Java interagir com objetos de outras máquinas virtuais, independente da localização das máquinas. A API fornece a possibilidade ao programador desenvolver uma aplicação sem se preocupar com os detalhes da implementação. O RMI é implementado em três camadas de abstração: Despachante/Esqueleto: é invocado primeiro, recebendo objetos e serializando-os. Intercepta as chamadas de métodos feitas pelo cliente para que a variável de referência da interface redirecione essas chamadas para o serviço RMI remoto. Esta camada é a camada mais próxima ao desenvolvedor. RRL Remote Reference Layer: cada lado possui a sua, responsável por montar a mensagem de envio/resposta entre cliente/servidor. Interpreta e gerencia referências feitas dos clientes para os objetos do serviço remoto. A conexão do cliente ao servidor é Unicast (uma-para-um). Transporte: envio das informações via rede. Trabalha com conexões TCP/IP entre as maquinas. Na Figura 2, é possível verificar como as camadas se comunicam em um modelo RMI. Figura 2 Modelo de comunicação entre as camadas. O despachante funciona semelhante a um Proxy. Sua função é tornar a invocação a método remoto transparente aos clientes, comportandose como um objeto local para o invocador. Mas, em vez de executar uma invocação local, ela a encaminha em uma mensagem para um objeto remoto. Ele oculta os detalhes da referência do objeto remoto, do empacotamento dos argumentos e do desempacotamento dos resultados. A seguir, está descrito os passos explicando como o despachante se comporta quando é invocado [3]: Iniciar conexão com a JVM, que contém o objeto remoto. Escrever e transmitir os parâmetros para JVM remota. Esperar pelos resultados da invocação do método. Ler os resultados retornados. Retornar os valores ao objeto que executou a chamada. Na JVM remota, cada objeto deve ter um esqueleto correspondente ao Despachante. O esqueleto é responsável por enviar a chamada ao objeto remoto. Segue os passos do esqueleto quando recebe uma chamada: Ler os parâmetros enviados pelo despachante. Invocar o método no objeto remoto Escrever e transmitir o resultado ao objeto que executou a chamada. Na Figura 3, é possível observar os passos descritos acima para o esqueleto e despachante. Cluster Figura 3 Ilustração da comunicação esqueleto/despachante. Os Clusters são sistemas onde dois ou mais computadores conectados em rede trabalham de maneira conjunta para realizar processamento paralelo de forma totalmente transparente ao usuário. A idéia inicial que conduz ao cluster foi desenvolvida na década de 1960 pela IBM como uma forma de interligar grandes mainframes, entretanto, o Cluster somente ganhou real força com a introdução dos microprocessadores de alto desempenho, redes de alta velocidade, e ferramentas padronizadas para computação distribuída de alto desempenho.

5 A Figura 4 mostra uma arquitetura simples de Cluster onde um computador intitulado Mestre coordena a execução de uma tarefa realizada cooperativamente pelos computadores denominados Escravos. distribuição equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância, pois se ocorrer alguma falha haverá uma interrupção no seu funcionamento. Cluster Beowulf: Objetiva suprir a crescente e elevada capacidade de processamento em diversas áreas cientificas construindo sistemas computacionais poderosos e economicamente viáveis. A idéia é utilizar computadores pessoais e sistemas operacionais livres como o Linux para obter sistemas computacionais de alto desempenho. Message-Passing Interface (MPI) Figura 4 - A arquitetura de um Cluster Beowulf Com a utilização de Clusters é possível alcançar alta taxa de disponibilidade e performance com um custo relativamente baixo, quando se comparado a aquisição de um único processador contendo vários núcleos. Estes são os principais fatores que estão motivando um maior esforço na área de pesquisa, já que os processadores atuais estão sofrendo com as limitações físicas inerentes a seu modelo. Porém existem alguns fatores que devem ser levados em conta, a inserção demasiada de computadores em uma rede local em busca de um desempenho crescente acarreta um aumento do trafego de rede que não deve ser grande o suficiente para comprometer o ganho inicial, desta maneira deve se encontrar um equilíbrio. Os recursos compartilhados no sistema podem requerer sincronização de acesso, tal medida acrescenta mais trafego e complexidade algorítmica ao sistema. Dentre os tipos de Cluster passíveis a serem implementados, pode se destacar o Cluster de Alto Desempenho, o Cluster de Alta Disponibilidade e o Cluster para Balanceamento de Carga, cada um explorando mais especificamente uma determinada característica. Cluster de Alto Desempenho: Também conhecido como cluster de alta performance, funciona permitindo que ocorra um grande volume de processamento. Cluster de Alta Disponibilidade: São Clusters que conseguem permanecer ativos por um longo período de tempo e em plena condição de uso, sendo assim pode se dizer que eles nunca param seu funcionamento, além disso, provêem detecção de erros se protegendo de possíveis falhas. Cluster para Balanceamento de Carga: Esse tipo de cluster tem como função controlar a A MPI é uma especificação de biblioteca para troca de mensagens entre computadores definido por um comitê composto por empresas e desenvolvedores. Seu objetivo é possibilitar que computadores conectados em rede realizem processamento paralelo por meio da troca de mensagens. Desta especificação originaram-se implementações de bibliotecas, como LAM e MPICH. A MPI especifica um Cluster contendo máquinas executando processos identificados com um número denominado rank. Cada processo ao executar uma instância do programa recebe um valor único de rank provido pelo deamon utilizado, o que oferece a oportunidade de desviar o fluxo de processamento, diferenciando assim a máquinas mestre das escravas. A máquina mestre coordena a execução do processamento das demais por meio do envio de mensagens, enquanto as escravas recebem mensagens do mestre ou comunicam se entre si para realizarem o processamento paralelo. A MPI especifica inúmeras primitivas para a manutenção do Cluster, dentre elas destacamos neste trabalho uma descrição sucinta das fundamentais a qualquer aplicação que a utilize. MPI_Init: Inicialização para o ambiente MPI. MPI_Comm_size: Retorna o número de processadores (máquinas). MPI_Comm_rank : Retorna o "rank do processador (máquina). MPI_Send: Envia uma mensagem. MPI_Recv: Recebe uma mensagem. MPI_Finalize: Sai do ambiente MPI. Para que o leitor tenha uma visualização da dinâmica de uma aplicação MPI é proposta uma estrutura clássica de aplicação na Figura 5.

6 int main(int argc, char *argv[]) { int size, rank; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); } if (rank == 0){ mestre(); }else{ escravo(); } MPI_Finalize(); return 0; Figura 5 Estrutura básica de um programa MPI Vale ressaltar que o fluxo de processamento é dividido por meio da avaliação do valor de rank obtido pelo processo em execução, caso este venha a possuir 0 irá se comportar como um mestre, do contrário será um escravo e aguardará possivelmente por ordens. Com esta estrutura simples poderíamos desenvolver aplicações extremamente robustas, como a execução paralela de operações sobre uma matriz de pixels, sendo cada nó escravo do sistema responsável pela computação de uma sub-matriz. Sincronização Sistemas distribuídos utilizam de algoritmos para melhor utilização dos seus recursos desse modo criando regras para utilizálos. Primeiramente precisamos fazer uma sincronização do clock, pois não existe um relógio global, criando o clock lógico. Em Lamport (1978) - Time, Clocks, and the Ordering of Events in a Distributed System pode ser verificado que a sincronização dos clocks é possível e pode ser verificada [4]. Algoritmo de Lamport: neste algoritmo, os clocks não precisam estar de acordo sobre o valor exato do tempo e sim a ordem que os eventos acontecem. Se a e b são eventos dentro do mesmo processo e a acontece antes do b então: C(a) < C(b), onde C é o tempo de execução para realizar o processo.cada processo é executado em máquinas diferentes, cada uma com seu clock. Cada mensagem leva consigo o valor do clock de seu transmissor. Caso o receptor receba uma mensagem com um tempo superior ao seu, este adianta seu clock em uma unidade maior que o tempo recebido. Algoritmo de Cristian (Algoritmo Centralizado) : Neste algoritmo existe um servidor central de hora exata. Seus clientes consultam esse servidor e ajustam seus relógios de acordo com ele. O problema deste algoritmo é caso um cliente tenha clock superior não pode se atrasar. Este problema pode ser resolvido por ajuste gradativo. Existe também o problema de que o tempo de envio e resposta não é nulo, que pode ser resolvido adicionando metade do tempo entre solicitação e resposta. Algoritmo de Berkeley (Algoritmo Centralizado): Servidor de tempo ativo: periodicamente consulta cada máquina para saber o tempo corrente da cada uma. Cada máquina responde com seu tempo corrente. Baseado nas respostas, o servidor calcula o tempo médio e informa a todas as máquinas para adiantar ou atrasar ( gradativamente) seus clocks. Como o próprio servidor muda seu tempo, periodicamente o operador deve ajustá-lo manualmente. Relógio Físico (Algoritmo Distribuído): Divide-se o tempo em intervalos fixos de ressincronização. No início de cada intervalo, cada máquina envia broadcast com seu tempo corrente. Como os clocks são diferentes, estas mensagens não vão ser todas simultâneas. Após enviar sua mensagem, cada máquina inicia um temporizador para receber as mensagens em broadcast das outras máquinas (intervalo de aceitação das respostas). Cada máquina roda um algoritmo que calcula a média dos valores de tempo de todas as máquinas da rede, descartando os m valores mais baixos e mais altos. Exclusão Mútua Algoritmo Distribuído: Os algoritmos de exclusão mutua se utilizam do relógio lógico para funcionar. No algoritmo distribuído se um processo deseja entrar na região critica, ele envia mensagem a todos os outros processos, com nome da região critica seu numero de o tempo corrente. Caso todos os processos respondem OK ao processo este pode entrar na região critica. Quando um processo recebe uma mensagem de requisição de região critica, ele verifica se esta usando a região critica ou se pretende utilizá-la. Caso esteja utilizando não envia nada e guarda a requisição em fila, caso deseje entrar na região critica ele compara o tempo da mensagem recebida com o do que ele enviou o valor mais baixo ganha. Caso simplesmente não queira entrar na região critica ele envia OK ao transmissor. Os problemas desse algoritmo é primeiro o numero de mensagens necessárias 2(n-1), segundo que caso N pontos

7 de falhas podem ocorrer quando destinatário não responde OK. A solução para isto é fazermos cada processo responder negando ou afirmando a mensagem, caso um processo não responder após N tentativas está fora do ar. Algoritmo Centralizado: Uma maneira de garantir a exclusão mutua é imitando o que sistemas centralizados fazem. Utilizando de um processo central denominado coordenador. Se um processo deseja entrar na região critica, ele pede permissão ao coordenador, caso nenhum outro processo esteja utilizando o coordenador autoriza sua entrada, caso algum outro processo esteja utilizando ele pode ou não responder dependendo do algoritmo. Algoritmo Token Ring: É construído um anel lógico por software aonde cada processo recebe uma posição no anel. O anel é inicializado, o processo 0 ganha o token. O token circula no anel passa para o processo 1 o token e assim sucessivamente. Quando o processo ganha o token ele verifica se ele quer entrar na região crítica. Caso positivo, ele entra na região, realiza o seu trabalho e ao deixar a região passa o token para o elemento seguinte do anel. Não é permitido entrar em uma segunda região crítica com o mesmo token. Se o processo não quer entrar na região crítica ele simplesmente passa o token. Como conseqüência quando nenhum processo quer entrar na região crítica o token fica circulando pelo anel lógico. O problema deste algoritmo é caso o token seja perdido ele precisa ser regenerado e se um processo falhar também ocorrem problemas. Para resolver estes problemas podemos introduzir no algoritmo que o processo que recebe o token deve confirmar que recebeu. Assim quando um processo não responder ele falhou e o token é enviado ao processo seguinte. Conclusões Com os estudos realizados neste trabalho pode se averiguar a enorme importância que os Sistemas Distribuídos vêem conquistando. Com a demanda crescente por computação de alto desempenho em conjunto com os requisitos de baixo custo, seu sistema passou a ser amplamente adotado por empresas e centros de pesquisa. O RPC e o MPI são ferramentas importantes para o desenvolvimento de aplicações da área, pois minimizam o tempo de desenvolvimento e correção de erros através do conceito de middleware, tornando transparente a tarefa dos usuários. Referências [1] Silberchatz, A.; Galvin, P. B.; Gagne, G., Sistemas Operacionais com JAVA, 7ª ed., Elsevier, 2008 [2] Coulouris, G.; Dollimore, J.; Kindberg, T.; Distributed Systems - Concepts and Design, 3rd Ed., Addison Wesley, 2001 [3] Tanenbaum, A. S.; Distributed Systems: Principles and Paradigms. Prentice Hall, 2002 [4] Disponível na Internet. URL: acessado em agosto/2010 Eleição do Coordenador Algoritmos distribuídos requerem um processo como coordenador, para isso é necessário outro algoritmo para fazer a eleição do mesmo. Para ocorres a eleição cada processo é identificado por um número inteiro e conhece o número de identificação de todos os demais. Um processo X nota que o coordenador não esta respondendo. X inicia a eleição. X envia mensagem a todo processo de numero de identificação maior que o seu, caso nenhum processo responda X é o novo coordenador e envia mensagem a todos processo avisando-lhes. Caso algum responda este processo começa a liderar a eleição até que se defina o novo coordenador.

Fabrizio Borelli Gabriel Nobrega Henrique Dorotea Maitê Balhester

Fabrizio Borelli Gabriel Nobrega Henrique Dorotea Maitê Balhester Fabrizio Borelli Gabriel Nobrega Henrique Dorotea Maitê Balhester Sistemas Centralizados Pode possuir N processadores (sistema multiprogramados) Todos os processadores compartilham: Memória Clock Barramento

Leia mais

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado Relógio Lógico Algoritmo de Lamport Objetivo: Sincronização de clocks lógicos Os tempos associados aos eventos não são necessariamente próximos ao tempo real. Os processos não precisam estar de acordo

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Sincronização Como as regiões críticas são implementadas em um SD? Como

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Sincronização Slide 7 Nielsen C. Damasceno Introdução Utilizando Sistemas Distribuídos, uma grande dificuldade que temos é como garantir o acesso exclusivo a um recurso compartilhado,

Leia mais

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos Introdução aos Sistemas Distribuídos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Ementa; Bibliografia Calendário Site Introdução Características http://sites.google.com/sitew/leonardobcampos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens

Leia mais

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA: Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 23 de fevereiro de 2011 Histórico Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento de programas Usuário ia ao computador

Leia mais

Vamos fazer um pequeno experimento

Vamos fazer um pequeno experimento 1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Caracterização de Faculdades SENAC Análise e Desenvolvimento de Sistemas 24 de fevereiro de 2010 Caracterização de Histórico Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento

Leia mais

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Conceitos de Sistemas Distribuídos

Conceitos de Sistemas Distribuídos Conceitos de Sistemas Distribuídos Roteiro Definição de Sistemas Distribuídos (SD) Evolução Histórica Exemplos (SD) Modelos (Vantagens x Desvantagens) 2 O que é um Sistema Distribuído? Definição Coleção

Leia mais

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos Características de Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br 2002-2003 Carlos A. G. Ferraz 2 Tópicos O conceito de Sistemas Distribuídos Infra-estrutura básica Exemplos Vantagens e desvantagens

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Orientação a Objetos Encapsulamento: Parte interna (privada) dos objetos Implementação: métodos Estado: atributos, variáveis,

Leia mais

Computação Distribuída

Computação Distribuída Aula 1 Introdução aos Sistemas Distribuídos Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento de programas Usuário ia ao computador Processamento Seqüencial Leitoras de cartões

Leia mais

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos Tópicos O conceito de Características de Carlos Ferraz cagf@cin.ufpe.br Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

Leia mais

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas distribuídos. Prof. Emiliano Monteiro Sistemas distribuídos Prof. Emiliano Monteiro Múltiplos processadores São arquiteturas que possuem duas ou mais CPU interligadas e que funcionam em conjunto na execução de tarefas independentes ou no processamento

Leia mais

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Transação e Controle de Concorrência Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Sistema Operacional. Prof. Leonardo Barreto Campos.   1/30 Sistema Operacional Prof. Leonardo Barreto Campos 1/30 Sumário Introdução Middleware e SO de Rede SO de Rede Processos e Threads Leitura Complementar Bibliografia 2/30 Introdução A tarefa de qualquer sistema

Leia mais

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Modelo orientado a objetos: uma pequena revisão Instituto de Informátic ca - UFRGS Sistemas Operacionais II Modelos para programação distribuída (Remote Method Invocation) Aula 14 Programa é visto como

Leia mais

Processos ca 3 pítulo

Processos ca 3 pítulo Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém

Leia mais

Arquitetura de sistemas distribuídos

Arquitetura de sistemas distribuídos Arquitetura de sistemas distribuídos 3. Comunicação nos Sistemas Distribuídos 3.1.Introdução aos modelos de comunicação 3.2 Modelo Cliente-Servidor 3.3.Comunicação através de Sockets 3.3 Chamada a procedimento

Leia mais

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; ! Sistemas Distribuídos Aspectos de Projeto de SD Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com Aspectos de Projeto em SD! Transparência;! Abertura;! ;! Heterogeneidade;! Segurança;! Tratamento

Leia mais

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento Grupo 11 1. Em um SID a segurança é de grande importância, ela deve garantir que apenas usuários autorizados acessem recursos e garantir que a informação transmitida pela rede somente possa ser alcançada

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Exclusão Mútua Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.2 pág. 325-329 Conteúdo Algoritmo centralizado Algoritmo distribuído (Algoritmo

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP

Leia mais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,

Leia mais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MULTIPROCESSADORES

Leia mais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas

Leia mais

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Invocação Remota. Prof. Leonardo Barreto Campos.   1/29 Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os

Leia mais

Sistemas Distribuídos Aula 10

Sistemas Distribuídos Aula 10 Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

Programação Concorrente

Programação Concorrente INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica

Leia mais

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto Matéria: Sistema Computacional - SC Prof.: Esp.: Patrícia Dias da Silva Peixoto SISTEMA OPERACIONAL E TIPOS DE SISTEMAS OPERACIONAIS O QUE É UM SISTEMA OPERACIONAL (S.O.). Por mais complexo que possa parecer,

Leia mais

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS ARQUITETURA DE SISTEMAS DISTRIBUÍDOS AULA 02 Evolução do Processamento Paulo Franco Paulo.franco@outlook.com Evolução do Processamento A evolução do processamento de informações ocorreu basicamente de

Leia mais

Sistema de Software Distribuído

Sistema de Software Distribuído Sistema de Software Distribuído É composto por uma sequência de instruções, que é interpretada e executada por um processador É composto por instruções concorrentes ou paralelas, que são interpretadas

Leia mais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar

Leia mais

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação

Leia mais

Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios

Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios Prof. Dr. Norian Marranghello Grupo 13 Guilherme Eberhart Jorge Marcelo Lima Macedo 1 - Sistema de arquivos distribuídos

Leia mais

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Rede de computadores Cliente- servidor. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz Definição Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores.

Leia mais

Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total

Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total Rafael da Rosa Righi 1, Rodrigo da Rosa Righi 2 1 Laboratório de Redes e Gerência (LRG)

Leia mais

SISTEMAS OPERACIONAIS DE REDE

SISTEMAS OPERACIONAIS DE REDE ESPECIALIZAÇÃO EM REDES E COMPUTAÇÃO DISTRIBUÍDA 2011/1 Edital 005/2011 PROVA OBJETIVA Página 1 de 5 SISTEMAS OPERACIONAIS DE REDE Questão 01 Qual a função de um servidor DNS (Domain Name System)? a) Servir

Leia mais

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34 Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34 Introdução Serviço de arquivos descreve os serviços oferecidos pelo sistema de arquivos aos clientes Servidor de arquivos processo

Leia mais

Sistemas Operacionais. Tipos de SO

Sistemas Operacionais. Tipos de SO Sistemas Operacionais Tipos de SO Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefas Sistemas Multiprogramáveis/ Multitarefas Sistemas com Múltiplos Processadores

Leia mais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Introdução a Sistemas Operacionais. Adão de Melo Neto Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como

Leia mais

Curso: Redes de Computadores

Curso: Redes de Computadores Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg

Leia mais

Comunicação de Dados II

Comunicação de Dados II Comunicação de Dados II Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende kleber.rezende@ifsuldeminas.edu.br Interligação em Redes Acomoda distintas tecnologias

Leia mais

SIST706 Sistemas Distribuídos

SIST706 Sistemas Distribuídos Slide01 Introdução e Conceitos de Sistemas Distribuídos SIST706 Sistemas Distribuídos 2013/1 Prof. Jéfer Benedett Dörr @: prof.jefer@gmail.com profjefer.wordpress.com Sistema Distribuído Definição de Andrew

Leia mais

Sistemas Distribuídos. Edy Hayashida

Sistemas Distribuídos. Edy Hayashida Sistemas Distribuídos Edy Hayashida E-mail: edy.hayashida@uol.com.br Evolução 1960s 1980s Processamento de dados 1990s Sistemas de Informação Futuro Tecnologia da Informação Tecnologia dos Negócios 2 30

Leia mais

Concorrência em Processos

Concorrência em Processos Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação

Leia mais

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o Sistemas Operacionais um pouco da história... - Evolução dos SO s através do tempo - Novas técnicas não são assimiladas simultaneamente por todos - Década de 40, não existia SO - O programador é o faz

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2

Leia mais

Programação Distribuída. Tipos de Sistemas Distribuídos

Programação Distribuída. Tipos de Sistemas Distribuídos Programação Distribuída Tipos de Sistemas Distribuídos Tipos de Sistemas Distribuídos Os diferentes tipos de sistemas distribuídos são: Sistema de Computação Distribuído Sistema de Informação Distribuído

Leia mais

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas

Leia mais

Redes de Computadores.

Redes de Computadores. Redes de Computadores www.profjvidal.com REDES PONTO-A-PONTO E CLIENTE-SERVIDOR REDES DE COMPUTADORES Uma rede de computadores é formada por um conjunto de módulos processadores capazes de trocar informações

Leia mais

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Sincronização Roteiro Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Introdução A comunicação entre processos é importante, mas não é só isso que importa; Uma

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistema Operacional Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo

Leia mais

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados

Leia mais

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. Entrada/Saída Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras

Leia mais

Sistemas Distribuídos Message-Passing

Sistemas Distribuídos Message-Passing 0010010101011101010111100010111100010101010100100111001010001001010100101010100010010100101010110101010101 01100000011111101010010100010101010010010101101001000100101010111010101111000101111 101010101001001110010100010010101001010101000100101001010101101010101010110000001111110101001010001010101001001010110100100010010

Leia mais

Programação Paralela e Distribuída

Programação Paralela e Distribuída INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Desafios e Características Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes

Leia mais

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos - Daniel Nogueira 20938 - Felipe Castro Simões 21525 Sumário 1. Introdução 2. Sistemas de

Leia mais

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura

Leia mais

Arquitetura Cliente-Servidor Generalizada com identificação de tiers. Arquitetura Cliente-Servidor Generalizada com identificação de tiers

Arquitetura Cliente-Servidor Generalizada com identificação de tiers. Arquitetura Cliente-Servidor Generalizada com identificação de tiers Projeto de Sistemas Distribuídos Prof João Paulo A Almeida (@infufesbr) Projeto de Sistemas Distribuídos Até agora consideramos apenas a infraestrutura para a construção de aplicações distribuídas (middleware)

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA832 DISCIPLINA: SISTEMAS DISTRIBUÍDOS CARGA HORÁRIA: 60h EMENTA: Conceitos e

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Setembro/2003 Tópicos Sincronização em Sistemas Distribuídos Sincronização de Relógio Estados Globais

Leia mais

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg. Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no

Leia mais

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS Marcelo Henrique dos Santos Marcelo Henrique dos Santos Email: Site: marcelosantos@outlook.com www.marcelohsantos.com.br TECNOLOGIA EM JOGOS

Leia mais

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Modelos: Para que um sistema, ao ser projetado, alcance as características de um sistema distribuído, esse deve ser desenvolvido em cima de algum modelo de computação

Leia mais

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais. Sistema de entrada e Saída Sistemas Operacionais Sistema de entrada e Saída Sistema de Entrada e Saída I/O É uma das principais tarefas de um sistema computacional Como máquina abstrata o S.O. deve oferecer uma visão padronizada

Leia mais

SISTEMAS OPERACIONAIS DE REDE

SISTEMAS OPERACIONAIS DE REDE SISTEMAS OPERACIONAIS DE REDE Questão 01 O sistema operacional gerencia o sistema de arquivos, que irá armazenar as informações/arquivos. Para esta tarefa, durante a formatação do disco rígido, são criados

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação 1 Universidade Federal Fluminense Campus de Rio das Ostras Curso de Ciência da Computação Introdução à Ciência da Computação Professor: Leandro Soares de Sousa e-mail: leandro.uff.puro@gmail.com site:

Leia mais

Tipos de Clusters. Introdução. Introdução 21/03/12

Tipos de Clusters. Introdução. Introdução 21/03/12 Tipos de Clusters Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento

Leia mais

Computação por Passagem de Mensagens

Computação por Passagem de Mensagens Computação por Passagem de Mensagens Programação por passagem de mensagens Programação de multiprocessadores conectados por rede pode ser realizada: criando-se uma linguagem de programação paralela especial

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO FUNDAMENTOS DE REDES DE COMPUTADORES Professor: LUIZ LEÃO Conteúdo Desta Aula HISTÓRICO DAS REDES MODELO EM CAMADAS FUNÇÕES DAS CAMADAS OSI 1 2 3 4 5 CLASSIFICAÇÃO DAS REDES MODELO DE REFERÊNCIA OSI PRÓXIMOS

Leia mais

Sistemas Operacionais

Sistemas Operacionais Apresentação Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof. Sérgio CECHIN (cechin at inf.ufrgs.br)

Leia mais

Algoritmos e Lógica de Programação Sistemas Operacionais

Algoritmos e Lógica de Programação Sistemas Operacionais Algoritmos e Lógica de Programação Sistemas Operacionais Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 25 de agosto de 2005 Introdução

Leia mais

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:

Leia mais

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos Capítulo 6 - Aula 12 Sistemas Distribuídos Capítulo 6 - Aula 12 Aula Passada Relógios Lógicos Relógios de Lamport Relógios Vetoriais Aula de hoje Exclusão Mútua Algoritmos de Eleição 1 Exclusão Mútua - Questão fundamental

Leia mais

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Programação de Alto Desempenho - 2. Prof: Carla Osthoff Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: osthoff@lncc.br 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda

Leia mais

Programação concorrente (processos e threads)

Programação concorrente (processos e threads) Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez gregorio@uninove.br 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Introdução Capítulo 1 O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema

Leia mais