Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor

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

Download "Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor"

Transcrição

1 Modelos de Sistemas Distribuídos - O Modelo Cliente-Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1

2 Autoria! Autor 1ª versão " Cristiano A. Costa! Local " II - UFRGS! Revisões " V10 " " C. Geyer Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 2

3 Roteiro! Roteiro " Conceitos de modelos, camada e middleware " Modelo cliente/servidor (C/S) # Conceito, características,... # Comparação entre o Modelo OSI e o Cliente-Servidor # Variações do C/S: camada banco de dados " Exemplo de Cliente e Servidor " Endereçamento " Outros modelos e questões de sw " Primitivas bloqueantes e não-bloqueantes " Bufferização " Confiabilidade " Questões de Implementação Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 3

4 ! Modelos de SDs Modelos de SDs " Ou modelos de arquitetura de SDs " Define as partes (módulos, componentes,...) # Caracteriza cada parte de forma abstrata # Posicionamento das partes # Interação entre elas " Exemplos básicos de modelos # Cliente / servidor # P2P " Variações # Uso de replicação # Uso de mobilidade de código e/ou dados # Uso de cache # Dinamicidade: inclusão e exclusão de partes Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 4

5 Modelos de SDs! Modelos de SDs " Objetivos gerais de um projeto de modelo # Garantir ou melhorar # Confiabildade # Gerenciabilidade # Adaptabilidade # Relação custo/desempenho Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 5

6 Camadas de software! Camadas de software " Conceito que define como o sw é estruturado organizado " Modelo básico de camadas # Aplicações # Middleware # Sistema operacional e suas APIs # Hardware Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 6

7 Camadas de software! Camadas de software " Middleware # Objetivos # Mascarar a heterogeneidade (do hw e do SO) # Fornecer um modelo de programação para as aplicações # Conceito # Mais simples, único # Conjunto de processos (ou objetos, ou serviços) em vários computadores, interagindo entre si # Oferecendo melhores serviços de # Comunicação # Compartilhamento de recursos Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 7

8 ! Camadas de software Camadas de software " Middleware # Exemplos # CORBA # Java RMI # WS # DCOM #.Net Remoting " Middleware x framework # Framework # Conjunto de componentes de sw para facilitar o desenvolvimento de certos tipos de aplicações # Fornece uma visão (mais) abstrata da app # Pode ser especializado ou instanciado de diferentes modos Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 8

9 Camadas de software! Middleware " Limitações # Frequentemente é difícil adicionar (melhorar) requisitos de dependabilidade somente com o mw # Isto pode exigir suporte em nível da aplicação # Exemplo clássico # Um aplicativo de transferência de arquivos (ftp) na internet não pode depender somente dos recursos do TCP # Referência # Artigo clássico [SALTZER et al. 1984] # Discute o problema acima: mw x app # Introduz o princípio fim-a-fim # Tentar resolver tudo no mw pode gerar muitos custos redundantes Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 9

10 Comparação com o Modelo OSI! O Modelo OSI não é perfeito para Sistemas Distribuídos " Overhead causado por vários protocolos " Não diz como um S.O. Distribuído deve ser estruturado " Observação # Modelo OSI: # Modelo padrão para redes de computadores # Define as camadas dos protocolos de redes # [TAN 1992]: 2o cap. de SD # Tópico de disciplinas do setor de redes Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 10

11 Comparação com o Modelo OSI! O Modelo OSI não é perfeito para Sistemas Distribuídos " Overhead causado por vários protocolos Normalmente S.O.D. usam parte das camadas " Não diz como um S.O. Distribuído deve ser estruturado Modelo Cliente-Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 11

12 Modelo Cliente/Servidor! Modelo Cliente/Servidor " Um dos modelos mais citados e usados " Prós # Simplicidade # Eficiência (em muitos casos) " Contras # Perde em escalabilidade # Perde em TF # Obs.: conforme caso " Possui 2 grandes componentes # clientes # servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 12

13 Modelo Cliente/Servidor! Modelo Cliente/Servidor " Partes (componentes) # Clientes # Ciclo de vida próprio individual # Usualmente não permanente # Disparado por usuários quando necessário # Eventualmente necessitam um serviço de um servidor # Usualmente um programa sequencial # Conhece o servidor # Conhece o serviço oferecido (operações) # Frequentemente em grande número # Indeterminado, variável Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 13

14 ! Modelo Cliente/Servidor " Partes # Servidor # Ciclo de vida permanente Modelo Cliente/Servidor # Frequentemente um programa concorrente # Multithreaded # Oferece várias operações aos clientes # Uma interface pública # Nome ou código da operação # Argumentos # Resultados # Usualmente não conhece clientes # Usualmente em localização conhecida # Ou com nome conhecido Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 14

15 ! Modelo Cliente/Servidor " Interação # Cliente faz uma requisição ao servidor passando # Operação # Argumentos de entrada # Pode ser void # Por exemplo, via um send # Cliente fica esperando resposta # Por exemplo, via um receive # Pode ser void Modelo Cliente/Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 15

16 Modelo Cliente/Servidor! Modelo Cliente/Servidor " Interação (cont.) # Servidor está esperando uma requisição de algum cliente # Por exemplo, via um receive # Servidor # Verifica a operação # Trata (executa) a operação com os argumentos # Prepara uma resposta (resultado) # Servidor # Envia a resposta # Por exemplo, via um send Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 16

17 Modelo Cliente/Servidor! Modelo Cliente/Servidor " Variações # Um servidor pode ser cliente de outros servidores # Um cliente pode acessar vários servidores Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 17

18 Clientes e Servidores! Modelo Cliente/Servidor " Grupo de processos que cooperam entre si: # (Servidores) oferecem serviços para usuários (Clientes) " Protocolo normalmente utilizado: # Request/Reply # Sem Conexão # Simples Request Cliente Exemplo: UDP Servidor Kernel Reply Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 18

19 Clientes e Servidores! Modelo Cliente/Servidor " Clientes e Servidores podem executar sobre o mesmo microkernel " A mensagem de resposta (nível da aplicação) pode servir como ack (do protocolo de rede) # Quando faz uso de protocolos confiáveis (TCP,...) " Por ser um protocolo simples, é também eficiente Cliente Kernel Request Reply Servidor Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 19

20 Clientes e Servidores! Modelo Cliente/Servidor " A pilha de protocolos pode ser menor que a proposta em OSI " São necessários três níveis de protocolo Camada (em máquinas idênticas) Request/Reply Enlace de dados Física Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 20

21 Clientes e Servidores! Modelo Cliente/Servidor " A pilha de protocolos pode ser menor que a proposta em OSI " São necessários três níveis Camada de protocolo (em máquinas idênticas) 7 6 implementada em software implementadas em hardware Request/Reply Enlace de dados Física Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 21

22 Clientes e Servidores! Modelo Cliente/Servidor " As camadas física e de enlace de dados são responsáveis por enviar e receber pacotes entre cliente e servidor (redes) Camada " A camada 5 define um conjunto de respostas e requisições permitidas " Os serviços de comunicação são implementados através de chamadas do sistema (system calls) Request/Reply 2 1 Enlace de dados Física Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 22

23 Clientes e Servidores! Em sistemas largamente distribuídos (SLD) " Exemplos de SLD: Internet, P2P, Grade,... " As falhas de rede são (mais) freqüentes " É recomendável usar protocolos mais confiáveis # Por exemplo, com conexão # Ou usar procotolos menos confiáveis mas implementar em nível de aplicação certos controles mínimos # Essa recomendação é dependente do tipo de aplicação (ou comunicação) # Por exemplo, comunicações de informação, periódicas, podem fazer uso de protocolos não confiáveis Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 23

24 Clientes e Servidores! Sistemas C/S com acesso a bases de dados " Muitos (maioria?) dos sistemas (aplicações) atuais acessam bases de dados no lado servidor " Bases de dados: # sistemas de arquivos, SGBD, LDAPs, bancos de dados de objetos (representações, imagens, áudio, vídeos,...) Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 24

25 Clientes e Servidores! Sistemas C/S com acesso a bases de dados " Modelo C/S é estendido para modelo de sistema multi-camadas " Segundo [TAN, SD, 2002]: sistemas em 3 camadas # Cliente # Interface com usuário (user interface) # Servidor de aplicações # Camada de processamento # Servidor da base de dados # Camada de dados Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 25

26 ! Exemplo de Cliente e Servidor " Será apresentado um esboço de # um cliente e # um servidor de arquivos em C " Composto de três programas # header.h: Exemplo de Cliente e Servidor # arquivo utilizado pelo cliente e pelo servidor para compartilhar algumas definições # sample.c: # exemplo de servidor # procedure.c: # exemplo de procedimento (cliente) que utiliza o servidor para copiar um arquivo Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 26

27 Exemplo de Cliente e Servidor! Exemplo de Cliente e Servidor " Servidor: quatro operações definidas # CREATE: cria um novo arquivo # READ : lê pedaço de arquivo # WRITE: escreve pedaço de arquivo # DELETE: apaga arquivo existente " Cliente: # Copia arquivo 1 para arquivo 2 # Usando # uma lógica interna # e mais um conjunto de chamadas às operações Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 27

28 Exemplo de Cliente e Servidor! Exemplo de Cliente e Servidor " Uso de Primitivas de send/receive # bloqueantes # tamanho de mensagens constante # Send # Primeiro argumento: nome (ID) do destino # Segundo argumento: mensagem # Receive # 1º arg: ID próprio (recebedor ou destino) # 2º arg: mensagem # Mensagem # Pode ser uma estrutura # Diversos tipos de dados combinados Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 28

29 Exemplo de Cliente e Servidor! Arquivos " Header.c # Define formatos (dados,...) e constantes comuns ao programa servidor e aos programas clientes # Por exemplo: # Endereço na rede do servidor # Tamanho máximo de 1 mensagem #... Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 29

30 ! Arquivos (cont.) Exemplo de Cliente e Servidor " Sample.c # Código do servidor # Loop infinito " Procedure.c # Recebe mensagem (pedido) do cliente # Identifica tipo do pedido # Processa pedido # Responde ao cliente # Código do cliente # Loop até que leitura retorne nada # Le pedaço do arquivo 1 # Limitado pelo tamanho máximo de uma mensagem # Grava pedaço no arquivo 2 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 30

31 Exemplo de Cliente e Servidor! header.h /*Definições necessárias pelos clientes e servidores */ #define MAX_PATH 255 /*tamanho maximo de nome_arq*/ #define BUF_SIZE 1024 /*dados transferidos*/ #define FILE_SERVER 243 /* endereço do servidor*/ /*Definições de operações permitidas*/ #define CREATE 1 /*cria um novo arquivo*/ #define READ 2 /*lê pedaço de arquivo*/ #define WRITE 3 /*escreve pedaço de arquivo*/ #define DELETE 4 /*apaga arquivo existente*/ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 31

32 Exemplo de Cliente e Servidor! header.h (continuação) /*Códigos de erro*/ #define OK 0 /*operação feita corretamente*/ #define E_BAD_OPCODE -1 /*operação inexistente*/ #define E_BAD_PARAM -2 /*erro em algum parâmentro*/ #define E_IO -3 /*erro de E/S*/ /*Definição do formato da mensagem*/ struct message { long source; /*identificador da origem*/ long dest; /*identificador do destino*/ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 32

33 Exemplo de Cliente e Servidor! header.h (continuação) }; long opcoe; /*qual operação*/ long count; /*quantidade de bytes*/ long offset; /*onde no arq. começa a oper.*/ long extra1; /*campo extra*/ long extra2; /*campo extra*/ long result; /*resultado da operação*/ /* valor depende da op. */ char name[max_path]; /*nome do arquivo*/ char data[buf_size]; /*dados lidos ou p/ escrever*/ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 33

34 Exemplo de Cliente e Servidor! sample.c (servidor) #include <header.h> void main(void) { struct message m1,m2; /* áreas p/mensagens */ int r; /* área p/respostas */ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 34

35 Exemplo de Cliente e Servidor! sample.c (continuação) while (1){ } } receive(file_server,&m1); /* recebe requisição */ /* processa conforme tipo da requisição */ /* código dos procedimentos internos omitidos */ switch(m1.opcode) { } case CREATE: r = do_create(&m1,&m2); break; case READ: case WRITE: r = do_read(&m1,&m2); break; r = do_write(&m1,&m2); break; case DELETE: r = do_delete(&m1,&m2); break; default: r = E_BAD_OPCODE; m2.result = r; /* conforme operação */ send(m1.source, &m2); Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 35

36 Exemplo de Cliente e Servidor! procedure.c (cliente) #include <header.h> int copy(char *src, char *dst) { struct message m1; /* mensagem ao/de servidor */ long position; /* posição de leitura */ long client = 110; /* quem envia */ initialize(); position = 0; /* inicia leitura no 1o byte */ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 36

37 Exemplo de Cliente e Servidor! procedure.c (continuação) do { /*Lê um bloco de dados do arquivo origem*/ m1.opcode = READ; /* prepara mensagem */ m1.offset = position; /* 1o byte: ajustado por read */ m1.count = BUf_SIZE; /* quantos bytes */ strcpy (&m1.name, src); /* nome arq. */ send(file_server, &m1); /* envia req. */ receive(client, &m1); /* recebe resp. */ Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 37

38 ! procedure.c (continuação) Exemplo de Cliente e Servidor /*grava um bloco de dados no arquivo destino*/ m1.opcode = WRITE; m1.offset = position; m1.count = m1.result; /* result = # bytes */ strcpy (&m1.name, dst); send(file_server, &m1); receive(client, &m1); position += m1.result; /* result = # bytes */ }while (m1.result > 0); /* zero: nada foi lido */ /* retorna ok ou erro */ return(m1.result >= 0? OK : m1.result); } Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 38

39 Endereçamento! Endereçamento de servidores " Obs.: revisão ou extensão de conceitos de nomeação em troca de mensagens " Um cliente para mandar uma mensagem a um servidor precisa saber o endereço # Ou nomeação " Existem várias formas de endereçamento " Principais destacados: # Endereçamento por número de máquina # Endereçamento por processo # Endereçamento por nomes ASCII obtidos de um name server Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 39

40 Endereçamento por número de máquina! Endereçamento por número de máquina " Utiliza o número da máquina para endereçamento! um processo por máquina! não é transparente " simplicidade " Viável em sistemas simples Cliente 1 Servidor 1. Request para Reply para 199 Kernel 2 Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 40

41 Endereçamento por número de máquina! Pode-se utilizar uma combinação entre número da máquina e número do processo! não é transparente " simplicidade " mais de um processo por máquina " não precisa de coordenação global (não há ambigüidade entre processos) Cliente 1 Exemplo: TCP/IP Servidor 1. Request para Kernel 2 Kernel 2. Replay para Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 41

42 ! Endereçamento por processo Endereçamento por processo " ID de processo: associar a cada processo um endereço único que não contém o número da máquina " Duas alternativas para escolha do número do processo: # Garantir números distintos # A1: Processo centralizado responsável pela alocação de endereços (contador incrementado a cada requisição) " Transparência! Escalabilidade # A2: Cada processo pega seu próprio endereço aleatóriamente de um grande espaço de dados " Transparência " Escalabilidade Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 42

43 ! Endereçamento por processo Endereçamento por processo " Sem nome de processo: o cliente pode fazer broadcast de um pacote especial para localização (locate packet) " o kernel que contém o processo devolve uma mensagem do tipo here I am " Transparência! Gera carga extra no sistema 1. Broadcast 2. Here I am 3. Request 4. Replay Cliente Kernel Rede Servidor Kernel Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 43

44 Endereçamento por name server! Endereçamento por name server " Utiliza uma máquina extra para mapear nomes de serviços em endereços de máquinas " Servidores são referidos como strings e estas são embutidas nos programas " Transparente! Requer um componente centralizado 1. Lookup 2. NS Reply 3. Request Server Kernel 3 4 Client Kernel 1 2 Name Server Kernel 4. Replay Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 44

45 Resumo! Resumo Cliente/Servidor " Conceitos de modelos, camadas, middleware " Conceito de C/S " Prós e contras " Características do cliente " Características do servidor " Exemplo # Servidor de arquivos # Cliente: cópia de 1 arquivo Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 45

46 Resumo! Resumo Cliente/Servidor " Endereçamento # Conceito, e prós e contras de: # Por máquina (IP) # Por máquina e processo (porta) # Por nome de processo único global # Nome dado por servidor # Nome escolhido em espaço largo # Com servidor de nomes # Por broadcast de consulta a tipo de serviço Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 46

47 Primitivas x sincronização Tratamento mais aprofundado de questões vistas em Troca de Mensagens Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 47

48 Súmula Primitivas! Súmula Primitivas " Bloqueantes (síncronas) " Assincronas # Bloqueantes # Não bloqueantes " Cópia de dados " Buffer " Acks Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 48

49 Primitivas x sincronização! Primitivas Bloqueantes (síncronas) " no send, enquanto a mensagem está sendo enviada, o processo fica bloqueado " o receive fica bloqueado até que alguma mensagem chegue ou até um timeout Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 49

50 Primitivas x sincronização! Primitivas Não-Bloqueantes (assíncronas) " o send retorna o controle imediatamente, antes da mensagem ser realmente enviada " o receive passa para o kernel o ponteiro para o buffer e retorna imediatamente, antes de receber a mensagem " em algumas abordagens o receive não-bloqueante é aquele que só recebe quando já existem mensagens e fica bloqueado até completar a recepção, se não retorna Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 50

51 Primitivas bloqueantes! Primitivas bloqueantes " O processo fica bloqueado durante a transferência de mensagem " Melhor opção para envio de mensagens em condições normais " Simples de entender " Simples de implementar " Performance para envio de mensagem! CPU fica ociosa durante a transmissão Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 51

52 Primitivas não-bloqueantes! Primitivas não-bloqueantes com cópia " o kernel copia a mensagem para um buffer interno e então libera o processo para continuar! Performance " Sobrepor processamento e transmissão de mensagens! Primitivas não-bloqueantes com interrupção " interrompe o processo que enviou a mensagem quando o buffer estiver livre para reutilização! Programação Difícil " Performance Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 52

53 ! Tanenbaum Primitivas síncronas e assíncronas " A diferença essencial entre uma primitiva síncrona e uma assíncrona é se o processo que envia a mensagem pode reutilizar o buffer imediatamente após o comando send " preferida por projetistas de sistemas operacionais! Andrews " Uma primitiva síncrona é aquela em que o processo que envia fica bloqueado até que o receptor aceite a mensagem e mande um ack. Qualquer outra alternativa é considerada assíncrona " preferida por projetistas de linguagens de programação Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 53

54 Bufferização! Primitivas não-bufferizadas " O buffer para armazenar a mensagem deve ser especificado pelo programador " Existem duas estratégias a serem empregadas no caso de um send do cliente, sem um receive do servidor: # discartar mensagens inesperadas # temporariamente manter mensagens inesperadas! Primitivas bufferizadas " Existe um buffer para armazenar mensagens inesperadas " A primitiva de bufferização mais empregada define estruturas de dados chamadas mailbox Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 54

55 ! Primitivas não-bufferizadas discartando mensagens Bufferização " Implementação! O cliente pode ficar tentando enviar mensagens! Podem ocorrer casos em que o cliente desista de enviar a mensagem Cliente Kernel Endereço Servidor A refere-se a processo Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 55

56 Bufferização! Primitivas não-bufferizadas temporariamente mantendo mensagens " reduz a chance da mensagem ser descartada! introduz problema de gerenciamento e armazenamento de mensagens inesperadas Cliente A Servidor Kernel Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 56

57 ! Primitivas bufferizadas: Mailboxes Bufferização " Um processo que está interessado em receber mensagens avisa o kernel para criar uma mailbox informando o endereço de origem das mensagens " Todas as mensagens são colocadas na mailbox e uma chamada a receive simplesmente remove mensagens dela " reduz ainda mais a chance de mensagens serem descartadas! mailboxes são finitas e podem necessitar de estratégias análogas as adotadas anteriormente Cliente Kernel Endereço refere-se a mailbox Rede A Servidor Kernel Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 57

58 Confiabilidade! Três diferentes alternativas podem ser utilizadas para questões de confiabilidade: " assumir que as primitivas não são confiáveis, alterando a semântica do send # o sistema não garante que as mensagens são enviadas # o usuário fica responsável por implementar comunicação confiável " primitivas confiáveis com mecanismos de acknowledgment do tipo: Request - Ack - Reply - Ack " primitivas confiáveis com mecanismos de acknowledgment do tipo: Request - Reply - Ack! combinações podem ser obtidas entre os mecanismos confiáveis Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 58

59 Confiabilidade! Request - Ack - Reply - Ack " somente quando o Ack é recebido, o processo é liberado " o acknowledgement é feito entre kernels (transparente para o cliente ou servidor) " um request/reply com este mecanismo necessita de quatro mensagens 1. Request 2. Ack 3. Reply 4. Ack Cliente Kernel Servidor Kernel Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 59

60 Confiabilidade! Request - Reply - Ack " O Reply serve como um ack " o cliente fica bloqueado até a mensagen de reply " se a mensagem de reply demorar, o cliente reenvia a requisição " em alguns kernels não é necessário o ack Cliente Kernel Servidor Kernel 1. Request 2. Reply 3. Ack Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 60

61 Questões de Implementação! Alternativas de projeto: Endereçamento Bloqueante Bufferização por número de máquina primitivas bloqueantes não-bufferizado, discartando mensagens por processo primitivas nãobloqueantes com cópia não-bufferizado, temporariamente mantendo mensagens por nomes ASCII obtidos de um name server primitivas nãobloqueantes por interrupção mailboxes Confiabilidade não-confiáveis Request-Ack-Reply-Ack Request-Reply-Ack! Total de 81 combinações Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 61

62 Questões de Implementação! As redes têm um tamanho máximo de pacote, mensagens maiores devem ser quebradas! O acknowledgment pode ser utilizado por pacote ou por mensagem, dependendo da taxa de erros da rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 62

63 Questões de Implementação! Pacotes normalmente empregados no protocolo de comunicação: REQ Request Cliente Servidor O cliente quer serviço REP Reply Servidor Cliente Resposta do servidor para cliente ACK Ack Cli./Ser. Outro O pacote anterior chegou AYA Are you alive? Cliente Servidor Verifica se o servidor está Ok IAA I am alive Servidor Cliente O servidor está Ok TA Try Again Servidor Cliente O servidor não tem espaço AU Addr. Unknown Servidor Cliente Nenhum processo usa o endereço Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 63

64 Questões de Implementação! Alguns exemplos de comunicação: REQ > REQ > < ACK Cliente Servidor Cliente < REP Servidor < REP ACK > (a) (b) REQ > Cliente REQ > < ACK < REP AYA > Servidor Cliente ACK > < IAA < REP Servidor ACK > (c) (d) Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 64

65 Conclusões! O Modelo cliente-servidor utiliza um protocolo simples e de fácil implementação! Por ser simples e sem conexão, o protocolo é também eficiente! Várias alternativas de projeto para primitivas de comunicação podem ser utilizadas! Todas as comunicações no modelo são construídas através de primitivas de E/S Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 65

66 Revisão! Revisão " defina modelo C/S " quais são as vantagens? " variações atuais do modelo C/S? " formas de localização do servidor pelo cliente? # conceito? # vantagens e desvantagens? Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 66

67 The End! Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 67

Curso Sistemas Operacionais Distribuídos

Curso Sistemas Operacionais Distribuídos Autor 1ª versão Cristiano A. Costa Local II - UFRGS Revisões V6 2008-2 C. Geyer Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1 Curso de Sistemas Operacionais Distribuídos O Modelo

Leia mais

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor Modelos de Sistemas Distribuídos - O Modelo Cliente-Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1 Autoria Autor 1ª versão Cristiano A. Costa Local II - UFRGS Revisões

Leia mais

Exemplo Cliente-Servidor. Cliente. Servidor 1/ Requisição / Resposta Enlace 2 Físico 1. Kernel. Kernel

Exemplo Cliente-Servidor. Cliente. Servidor 1/ Requisição / Resposta Enlace 2 Físico 1. Kernel. Kernel 1/6 Modelo Cliente-Servidor overhead do modelo OSI (TCP/IP), usar protocolo mais simples solicitação/resposta vantagens: simplicidade não é orientado a conecção pilha de protocolos menor que do OSI Cliente

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos A diferença mais importante entre os Sistemas Distribuídos e os Sistemas Uniprocessadores é a comunicação inter-processo. Nos uniprocessadores esta comunicação é feita

Leia mais

Mode los de Siste m as Distribu ídos

Mode los de Siste m as Distribu ídos Mode los de Siste m as Distribu ídos - O Mode lo Clie n te -Se rvidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1 Autoria Au tor 1ª ve rsão Local Cristiano A. Costa II - Re

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos Modelo Cliente-Servidor Caracterização Endereçamento Primitivas Confiabilidade INE5418 Computação Distribuída 1 Modelo Cliente/Servidor A construção básica em comunicação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução Comunicação em Sistemas Distribuídos Introdução: Comunicação em Sistemas Distribuídos

Leia mais

Sistemas Distribuídos Modelo Cliente-Servidor

Sistemas Distribuídos Modelo Cliente-Servidor Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de

Leia mais

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling. Tópicos Comunicação Carlos Ferraz cagf@cin.ufpe.br Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade Portas e sockets UDP RPC:

Leia mais

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição 6LVWHPDV'LVWULEXtGV 0GHO&OLHQWH6HUYLGU &PXQLFDom 6XPiUL Introdução Elementos Básicos de Comunicação Comunicação Cliente-Servidor Comunicação em Grupo Chamada emota de Procedimento (PC) Prof a. Cristina

Leia mais

COMUNICAÇÃO ENTRE PROCESSOS

COMUNICAÇÃO ENTRE PROCESSOS Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:

Leia mais

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada:

Leia mais

Sistemas Operacionais Distribuídos e de Redes

Sistemas Operacionais Distribuídos e de Redes Contextualização Sistemas Operacionais Distribuídos e de Redes Comunicação Interprocessos Aula 04 Aula 04 Aplicação, serviços RMI e RPC Protocolo - (requisição-resposta) marshalling e representaçao externa

Leia mais

Sistemas Distribuídos Aula 2

Sistemas Distribuídos Aula 2 Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que

Leia mais

Infra-Estrutura de Software

Infra-Estrutura de Software Infra-Estrutura de Software Entrada / Saída 2º. EE: 21/06 Próximas Datas http://www.cin.ufpe.br/~cagf/if677/2016-1/ slides/ Revisão de notas: 28/06 FINAL: 30/06 Diversidade de dispositivos Hardware de

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

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

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

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

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,

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

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

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

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

Protocolo Request-Reply

Protocolo Request-Reply n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de

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

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

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

Arquitetura de Computadores Sistemas Operacionais II Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa

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 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

Protótipo tipo de um sistema de arquivos para ambiente distribuído

Protótipo tipo de um sistema de arquivos para ambiente distribuído Universidade Regional de Blumenau Bacharelado em Ciências da Computação Protótipo tipo de um sistema de arquivos para ambiente distribuído do Acadêmica: Catia Silene Possamai Orientador: Antonio Carlos

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

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior - Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função

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

Projecto hipotético para resolvermos hoje

Projecto hipotético para resolvermos hoje Projecto hipotético para resolvermos hoje 12/13 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar - Aula 7 - MODELO DE REFERÊNCIA TCP O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande utilidade para entender

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

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 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções

Leia mais

Troca de Mensagens _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM / UFOP

Troca de Mensagens _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM / UFOP Troca de Mensagens _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM / UFOP Num sistema distribuído não há memória compartilhada. Portanto, toda a comunicação entre processos deve ser realizada

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 de Troca de Mensagens

Sistemas de Troca de Mensagens Universidade Federal do Rio de Janeiro Programa de Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquitetura de Sistemas Paralelos Sistemas de Troca de Mensagens Sistemas de Comunicação O Sistema de Comunicação

Leia mais

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação

Leia mais

Arquitetura em Camadas. Profª. Dianne Scherly Varela de Medeiros

Arquitetura em Camadas. Profª. Dianne Scherly Varela de Medeiros Arquitetura em Camadas Profª. Dianne Scherly Varela de Medeiros 2018.1 Modelo em Camadas Conjunto de protocolos e camadas Reduz a complexidade do projeto de uma rede de comunicação Cada camada provê um

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 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

Redes de Computadores e Aplicações

Redes de Computadores e Aplicações Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Redes de Computadores e Aplicações Aula 13 - Camada de Aplicação Visão Geral Prof. Diego Pereira

Leia mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos

Leia mais

Prof. Marcelo Cunha Parte 6

Prof. Marcelo Cunha Parte 6 Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede

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

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado PROTOCOLOS Características dos Protocolos Funcionalidade dos Protocolos Protocolos OSI Protocolos TCP/IP Características dos Protocolos As principais caraterísticas de um protocolo são: Direto ou Indireto

Leia mais

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada

Leia mais

Aula 5 Camada de rede (TCP/IP):

Aula 5 Camada de rede (TCP/IP): Aula 5 Camada de rede (TCP/IP): Protocolos da Camada de Rede; Endereços IP (Versão 4); ARP (Address Resolution Protocol); ARP Cache; RARP (Reverse Address Resolution Protocol); ICMP. Protocolos da Camada

Leia mais

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1 ÍNDICE 12. Sistemas Operacionais de Redes 2 12.1. Conceito 2 12.2. Redirecionador 3 12.3. Arquiteturas 3 12.4. Par a Par 4 12.5. Cliente-Servidor 4 12.6. Os Sistemas Operacionais de Redes e as Arquiteturas

Leia mais

INTRODUÇÃO. RPC x RMI

INTRODUÇÃO. RPC x RMI 1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Autor Autor Local Cláudio Geyer Instituto de Informática disciplinas: POD e PDP Versão v4 2010-1 Programação com Objetos Distribuídos

Leia mais

User Datagram Protocol

User Datagram Protocol User Datagram Protocol UDP: Protocolo utiliza para distinguir para qual usuário ou aplicativo deve ser encaminhado um datagrama destinado a uma máquina que esteja executando mais de um processo. Problemas:

Leia mais

Redes P2P Gnutella e Simuladores

Redes P2P Gnutella e Simuladores Redes P2P Gnutella e Simuladores Definições de P2P P2P é o compartilhamento de recursos e serviços pela troca direta entre sistemas. WG P2P Intel, 2001 P2P é uma classe de aplicações que tira proveito

Leia mais

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006 Capítulo 13: Sistemas de E/S Capítulo 13: Sistemas de E/S Hardware de E/S Interface de E/S da aplicação Subsistema de E/S do kernel Transformando requisições de E/S em operações de hardware Fluxos Desempenho

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

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura

Leia mais

Sistemas Distribuídos e Redes de Sensores. abril de 2013

Sistemas Distribuídos e Redes de Sensores. abril de 2013 Aula 4: Comunicação: Coordenação e Sincronização abril de 2013 Comunicação entre Processos Distribuídos troca de mensagens exige coordenação receive?!?...... send............ Coordenação passos para execução

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

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 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

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 Julho/2003 Tópicos Características de um SD Modelos arquiteturais para implementação de SD Características

Leia mais

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Camada de aplicação Um protocolo da camada de aplicação define como processos de uma aplicação, que funcionam em sistemas finais diferentes,

Leia mais

Gerência de Entrada e Saída

Gerência de Entrada e Saída Gerência de Entrada e Saída Dispositivos de Entrada e Saída (1) Constituídos de 2 partes: Mecânica Eletrônica Controladora ou Adaptadora Controladora Placa ligada a um slot livre, ou inserida diretamente

Leia mais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos. INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 10 Operações nos processos. Processos cooperativos, comunicação entre processos. 1 - Introdução Um processo, ao longo da sua vida, passa por diferentes

Leia mais

Lista de exercícios - 1º bimestre 2016 REDES

Lista de exercícios - 1º bimestre 2016 REDES Lista de exercícios - 1º bimestre 2016 REDES Jean Nicandros Stragalinos Neto. Prontuário: 1616251. Curso: ADS 2º Módulo. 1) Desenhe duas redes com 7 e 8 computadores e defina a configuração IP de cada

Leia mais

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Comunicação Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Roteiro da Aula Comunicação entre Processos Protocolos Modelo OSI Modelo Cliente Servidor 3 Comunicação entre

Leia mais

Camada de Transporte Protocolos TCP e UDP

Camada de Transporte Protocolos TCP e UDP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Transporte Protocolos TCP e UDP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

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

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

Comunicação. Parte II

Comunicação. Parte II Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor

Leia mais

Sistemas Operacionais Aula 3

Sistemas Operacionais Aula 3 Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer

Leia mais

Comunicação entre processos. Sistema centralizado

Comunicação entre processos. Sistema centralizado Sistemas Distribuídos Comunicação entre processos Sistema centralizado Comunicação entre processos Arquivo Memória compartilhada Sinal Fila de mensagem SO gerencia comunicação 2 Sistema distribuído Idéia

Leia mais

Curso de Sistemas Distribuídos

Curso de Sistemas Distribuídos Curso de Sistemas Distribuídos Sistemas de Arquivos Distribuídos: DFS Estudo de Caso: NFS Sistemas Distribuidos Sistema de Arquivos Distribuídos - NFS 1 Autoria Autoria 1a versão C. Geyer Obs.: uso de

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 Operacionais II

Sistemas Operacionais II Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação e sincronização por troca de mensagens Aula 0 Em ambientes de memória distribuída a comunicação e a sincronização entre

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

Infra-Estrutura de Software

Infra-Estrutura de Software Infra-Estrutura de Software Entrada / Saída Diversidade de dispositivos Hardware de E/S Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco.

Leia mais

Infra-Estrutura de Software. Entrada / Saída

Infra-Estrutura de Software. Entrada / Saída Infra-Estrutura de Software Entrada / Saída Diversidade de dispositivos Hardware de E/S E/S: Como a CPU acessa a informação? ü Espaço de endereçamento: conjunto de endereços de memória que o processador

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Parte I Prof. Thiago Dutra Agenda n Parte I n Introdução n Protocolos de Transporte Internet n Multiplexação e n UDP n Parte II n TCP

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

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 6ª Aula Entrada e Saída Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Estrutura da máquina de von Neumann Dispositivos Periféricos Interface com o mundo exterior

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

AULA ANTERIOR: MODELOS FUNDAMENTAIS

AULA ANTERIOR: MODELOS FUNDAMENTAIS AULA ANTERIOR: MODELOS FUNDAMENTAIS Modelos fundamentais de um sistema distribuído Permitem estabelecer quais as premissas existentes a respeito de aspetos chave. Permitem avaliar de forma objetiva as

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

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

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal Sistemas Operacionais Aula 15: Sistemas de I/O Ezequiel R. Zorzal ezorzal@unifesp.br www.realidadeaumentada.com.br Objetivos Explorar a estrutura do subsistema de E/S de um sistema operacional Discutir

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Nomeação 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 Arquitetura Comunicação

Leia mais

Redes de Computadores

Redes de Computadores s de Computadores Prof. Macêdo Firmino Modelo TCP/IP e OSI Macêdo Firmino (IFRN) s de Computadores Setembro de 2011 1 / 19 Modelo de Camadas Para que ocorra a transmissão de uma informação entre o transmissor

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Comunicação e Coordenação Clientes e Servidores março de 2015 Comunicação entre Processos Distribuídos troca de mensagens exige coordenação receive?!?...... send............ Coordenação passos para execução

Leia mais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar - Aula 3-1. REVISÃO SOBRE CONCEITOS FUNDAMENTAIS DE SISTEMAS DISTRIBUÍDOS Na segunda parte abordamos o tema tolerância a falhas, assunto este muito relacionado a redes de computadores, mas que nos mostra

Leia mais

Data and Computer Network Endereçamento IP

Data and Computer Network Endereçamento IP Endereçamento IP P P P Prof. Doutor Félix Singo Camadas do TCP/IP Data and Computer Network Aplicação: Camada mais alta Protocolos de Aplicações clientes e servidores HTTP, FTP, SMTP, POP Transporte: Estabelece

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

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,

Leia mais

Trabalho do Curso de Redes de Computadores COS765/MAB /1

Trabalho do Curso de Redes de Computadores COS765/MAB /1 Trabalho do Curso de Redes de Computadores COS765/MAB731 2015/1 Universidade Federal do Rio de Janeiro Rosa M.M. Leão e Daniel Sadoc Menasché Primeiro Período de 2015 1 Introdução O objetivo deste trabalho

Leia mais