Artigo de Seminário Processamento Distribuído: Cliente/Servidor e Cluster Fabrizio Borelli 1, Gabriel Nóbrega 1, Henrique Dorotea 1, Maitê Balhester 1
|
|
- Martim Alves de Oliveira
- 5 Há anos
- Visualizações:
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 Sistemas Centralizados Pode possuir N processadores (sistema multiprogramados) Todos os processadores compartilham: Memória Clock Barramento
Leia maisReló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 maisSincronizaçã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 maisSISTEMAS 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 maisIntroduçã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 maisSistemas 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 maisSISTEMAS 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 maisSistemas 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 maisSistemas 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 maisVamos 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 maisSistemas 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 maisRPC 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 maisConceitos 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 maisCaracterí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 maisFundamentos 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 maisSistemas 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 maisSISTEMAS 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 maisSistemas 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 maisComputaçã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 maisCaracterí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 maisSistemas 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 maisSistemas 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 maisAULA 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 maisDesenvolvimento 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 maisSistema 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 maisRoteiro... 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 maisSistemas 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 maisProcessos 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 maisArquitetura 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 maisSistemas 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 mais1- 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 maisBarramento. 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 maisSistemas 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 maisFUNDAMENTOS 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 maisSistema 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 maisAULA 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 maisApresentaçã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 maisInvocaçã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 maisSistemas 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 maisO 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 maisProgramaçã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 maisMaté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 maisARQUITETURA 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 maisSistema 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 maisProcessos 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 maisSistema 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 maisCaracterí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 maisRede 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 maisDesenvolvimento 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 maisSISTEMAS 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 maisSistemas 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 maisSistemas 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 maisIntroduçã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 maisCurso: 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 maisComunicaçã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 maisSIST706 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 maisSistemas 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 maisConcorrê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 maisSis 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 maisSistemas 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 maisProgramaçã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 maisIntroduçã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 maisRedes 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 maisRoteiro. 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 maisSistemas 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 maisLABORATÓ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 maisSSC 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 maisSistemas 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 maisSistemas Distribuídos Message-Passing
0010010101011101010111100010111100010101010100100111001010001001010100101010100010010100101010110101010101 01100000011111101010010100010101010010010101101001000100101010111010101111000101111 101010101001001110010100010010101001010101000100101001010101101010101010110000001111110101001010001010101001001010110100100010010
Leia maisProgramaçã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 maisDesenvolvimento 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 maisCaracterizaçã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 maisSistemas 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 maisProgramando 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 maisUFRJ 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 maisArquitetura 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 maisComunicaçã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 maisPROGRAMA 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 maisSistemas 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 maisCurso 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 maisAula 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 maisSIDs: 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 maisSistemas 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 maisSISTEMAS 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 maisIntroduçã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 maisTipos 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 maisComputaçã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 maisFUNDAMENTOS 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 maisSistemas 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 maisAlgoritmos 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 maisAula 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 maisSistemas 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 maisProgramaçã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 maisProgramaçã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 maisParte 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 maisRedes 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 maisSistemas 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