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 V 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 3

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

5 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 5

6 Modelos de SDs Modelos de SDs 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 6

7 Modelos de SDs Modelos de SDs Objetivos gerais de um projeto de modelo Garantir ou melhorar Confiabildade Gerenciabilidade Adaptabilidade Relação custo/desempenho Ou enfim Atender algumas das questões de projeto Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 7

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

9 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 Mais simples, único Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 9

10 Camadas de software Camadas de software Middleware Conceito 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 10

11 Camadas de software Camadas de software Middleware Exemplos CORBA Java RMI WS DCOM.Net Remoting Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 11

12 Camadas de software Camadas de software 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 12

13 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 13

14 Camadas de software Middleware Limitações 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 14

15 Comparação com o Modelo OSI O Modelo OSI Modelo padrão para Redes 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 15

16 Comparação com o Modelo OSI O Modelo OSI 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 16

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

18 Modelo Cliente/Servidor Modelo Cliente/Servidor Um dos modelos mais citados e usados Prós Contras Simplicidade Eficiência (em muitos casos) Perde em escalabilidade Perde em TF Obs.: conforme caso Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 18

19 Modelo Cliente/Servidor Modelo Cliente/Servidor Possui 2 grandes componentes clientes servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 19

20 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 20

21 Modelo Cliente/Servidor Modelo Cliente/Servidor Partes (componentes) Clientes 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 21

22 Modelo Cliente/Servidor Modelo Cliente/Servidor Partes Servidor Ciclo de vida permanente 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 22

23 Modelo Cliente/Servidor Modelo Cliente/Servidor Partes Servidor Usualmente não conhece clientes Usualmente em localização conhecida Ou com nome conhecido Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 23

24 Modelo Cliente/Servidor 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 24

25 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) Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 25

26 Modelo Cliente/Servidor Modelo Cliente/Servidor Interação (cont.) Servidor Envia a resposta Por exemplo, via um send Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 26

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

28 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 Exemplo: UDP Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 28

29 Clientes e Servidores Modelo Cliente/Servidor Grupo de processos... Cliente Kernel Request Reply Servidor Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 29

30 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 30

31 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 (em máquinas idênticas) Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 31

32 Modelo Cliente/Servidor A pilha de protocolos Clientes e Servidores Camada Request/Reply Enlace de dados Física Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 32

33 Clientes e Servidores Modelo Cliente/Servidor A pilha de implementada em software implementadas em hardware Camada Request/Reply Enlace de dados Física Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 33

34 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) 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) Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 34

35 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 35

36 Clientes e Servidores Em sistemas largamente distribuídos (SLD) É 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 36

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

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

39 Exemplo de Cliente e Servidor Exemplo de Cliente e Servidor Será apresentado um esboço de um cliente e um servidor de arquivos em C Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 39

40 Exemplo de Cliente e Servidor Exemplo de Cliente e Servidor Composto de três programas header.h: 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 40

41 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 Cliente: WRITE: escreve pedaço de arquivo DELETE: apaga arquivo existente 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 41

42 Exemplo de Cliente e Servidor Exemplo de Cliente e Servidor Uso de Primitivas de send/receive bloqueantes tamanho de mensagens constante Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 42

43 Exemplo de Cliente e Servidor Exemplo de Cliente e Servidor Uso de Primitivas de send/receive 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 43

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

45 Arquivos (cont.) Exemplo de Cliente e Servidor Sample.c Código do servidor Loop infinito Recebe mensagem (pedido) do cliente Identifica tipo do pedido Processa pedido Responde ao cliente Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 45

46 Arquivos (cont.) Exemplo de Cliente e Servidor Procedure.c 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 46

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

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

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

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

51 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); Exemplo de Cliente e Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 51

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

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

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

55 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 55

56 Endereçamento Endereçamento de servidores 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 56

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

58 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 Exemplo: TCP/IP 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) 1. Request para Replay para Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 58

59 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 59

60 Endereçamento por processo Endereçamento por processo 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 60

61 Endereçamento por processo Endereçamento por processo Duas alternativas para escolha do número do processo: 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 61

62 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 62

63 Endereçamento por processo Endereçamento por processo o kernel que contém o processo devolve uma mensagem do tipo here I am Transparência Gera carga extra no sistema 3 1. Broadcast 2. Here I am 3. Request 4. Replay Cliente Kernel Servidor Kernel Rede Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 63

64 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 64

65 Endereçamento por name server Endereçamento por name server 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 65

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

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

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

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

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

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

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

73 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 73 Performance

74 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 74 preferida por projetistas de

75 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 75 A primitiva de bufferização mais empregada

76 Bufferização Primitivas não-bufferizadas discartando mensagens 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 76

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

78 Bufferização Primitivas bufferizadas: Mailboxes 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 Servidor Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 78 Rede A Kernel

79 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 Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 79

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

81 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 1 é necessário o ack Cliente 2 Servidor Kernel 3 Kernel 1. Request 2. Reply 3. Ack Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 81

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

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

84 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. Servidor Cliente Nenhum processo usa o endereço Unknown Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 84

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

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

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

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

89

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

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

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

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

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Comunicação em Sistemas Distribuídos Sumário Modelo Cliente e Servidor Troca de Mensagens Remote Procedure Call Comunicação

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

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

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

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

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

Tópicos em Sistemas Distribuídos. Modelos de Comunicação Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos

Leia mais

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Sistemas Distribuídos 59. Sistemas Distribuídos 61. Receive não-bloqueante: 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 Área Compartilhda!

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

Paradigma Cliente/Servidor

Paradigma Cliente/Servidor Paradigma Cliente/Servidor Mário Meireles Teixeira UFMA Departamento de Informática Dezembro, 2012 Comunicação em Sistemas Distribuídos! Os processos em um SD estão lógica e fisicamente separados. Precisam

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Protocolos regras que os processos que estão se comunicando tem de seguir Protocolos

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

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

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais Comunicação Inter-Processos Conceitos Iniciais 1 Características para Comunicação Inter-Processos. Passagem de Mensagem pode ser suportada por duas operações de comunicação (send e receive). A comunicação

Leia mais

Sistemas Distribuídos. Coulouris Capítulo 4

Sistemas Distribuídos. Coulouris Capítulo 4 Sistemas Distribuídos Coulouris Capítulo 4 Mensagens Para comunicar-se com outros processos, um processo envia uma MENSAGEM para um DESTINO; um outro processo nesse destino recebe a mensagem. As operações

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes de Computadores. Protocolos de comunicação: TCP, UDP Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca

Leia mais

MODELO CLIENTE SERVIDOR

MODELO CLIENTE SERVIDOR SISTEMAS DISTRIBUÍDOS Modelo Cliente Servidor Modelo que estrutura um S.O. como um grupo de processos cooperantes, chamados servidores, que oferecem serviços a processos usuários, denominados clientes;

Leia mais

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Sistemas de Troca de Mensagens O Sistema de Comunicação provê tipicamente os seguintes serviços para as aplicações:

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

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

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

CAMADA DE TRANSPORTE

CAMADA DE TRANSPORTE Curso Técnico de Redes de Computadores Disciplina de Fundamentos de Rede CAMADA DE TRANSPORTE Professora: Juliana Cristina de Andrade E-mail: professora.julianacrstina@gmail.com Site: www.julianacristina.com

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

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 Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

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

Camada de Transporte, protocolos TCP e UDP

Camada de Transporte, protocolos TCP e UDP Camada de Transporte, protocolos TCP e UDP Conhecer o conceito da camada de transporte e seus principais protocolos: TCP e UDP. O principal objetivo da camada de transporte é oferecer um serviço confiável,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Aleardo Manacero Jr. Sistemas Distribuídos Aleardo Manacero Jr. Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído Sistemas

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

Leia mais

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares Arquitetura TCP/IP Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares Tópicos Problema de resolução de endereço Mapeamento direto Associação dinâmica ARP

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Novembro/2003 Tópicos Tolerância a falhas em comunicação em grupo Tolerância a falhas em comunicação

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

Sistemas Distribuídos RPC

Sistemas Distribuídos RPC Sistemas Distribuídos RPC Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Agosto/2003 Tópicos Conceitos de HW em SD Multiprocessadores e Multicomputadores Conceitos de SW

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Aula 4 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Migração de Código Em

Leia mais

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

MÓDULO 8 Modelo de Referência TCP/IP

MÓDULO 8 Modelo de Referência TCP/IP MÓDULO 8 Modelo de Referência TCP/IP A internet é conhecida como uma rede pública de comunicação de dados com o controle totalmente descentralizado, utiliza para isso um conjunto de protocolos TCP e IP,

Leia mais

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS Arquiteturas www.pearson.com.br capítulo 2 slide 1 2.1 Estilos Arquitetônicos Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre

Leia mais

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

Leia mais

Sistemas Cliente-Servidor

Sistemas Cliente-Servidor Sistemas Cliente-Servidor Disciplina Bancos de Dados II (INE 5616 2006-1) Curso de Sistemas de Informação Prof. Renato Fileto INE/CTC/UFSC 1 1 Cliente - Servidor Arquitetura cliente/servidor: Os servidores

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

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

Programação distribuída e paralela (C. Geyer) RPC 1 Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos

Leia mais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Arquitetura da Internet: TCP/IP www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Toda a estrutura atual da Internet está fundamentada na suíte de protocolos

Leia mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet

Leia mais

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Arquitetura Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Sistemas monolíticos Sistemas em camadas Sistemas micro-núcleo Modelo Cliente-Servidor Máquinas

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com SERVIÇOS DE REDES DE COMPUTADORES Prof. Victor Guimarães Pinheiro/victor.tecnologo@gmail.com www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com Modelo TCP/IP É o protocolo mais usado da atualidade

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Redes de Computadores Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Open Systems Interconnection Modelo OSI No início da utilização das redes de computadores, as tecnologias utilizadas para a comunicação

Leia mais

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Entrada / Saída Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Tópicos Princípios do hardware de E/S Princípios do software de E/S Camadas do software

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Introdução Um Modelo Arquiteturial dene o modo no qual os componentes de sistemas interagem e o modo no qual eles são mapeados

Leia mais

Prof. Marcelo Cunha Parte 5 www.marcelomachado.com

Prof. Marcelo Cunha Parte 5 www.marcelomachado.com Prof. Marcelo Cunha Parte 5 www.marcelomachado.com Criado em 1974 Protocolo mais utilizado em redes locais Protocolo utilizado na Internet Possui arquitetura aberta Qualquer fabricante pode adotar a sua

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador

Leia mais

Cap 03 - Camada de Aplicação Internet (Kurose)

Cap 03 - Camada de Aplicação Internet (Kurose) Cap 03 - Camada de Aplicação Internet (Kurose) 1. Qual a diferença entre um Programa de computador e um Processo dentro do computador? R. Processo é um programa que está sendo executado em uma máquina/host,

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Virtualização - motivação Consolidação de servidores. Consolidação de aplicações. Sandboxing. Múltiplos ambientes de execução. Hardware virtual. Executar múltiplos

Leia mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada

Leia mais

Redes de Computadores Modelo de referência TCP/IP. Prof. MSc. Hugo Souza

Redes de Computadores Modelo de referência TCP/IP. Prof. MSc. Hugo Souza Redes de Computadores Modelo de referência TCP/IP Prof. MSc. Hugo Souza É uma pilha de protocolos de comunicação formulada em passos sequenciais de acordo com os serviços subsequentes das camadas pela

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Protocolos Hierárquicos

Protocolos Hierárquicos Protocolos Hierárquicos O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio,

Leia mais

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

Redes de Computadores Aula 3

Redes de Computadores Aula 3 Redes de Computadores Aula 3 Aula passada Comutação: circuito x pacotes Retardos e perdas Aula de hoje Protocolo em camadas Aplicações C/S x P2P Web Estruturando a Rede Como organizar os serviços de uma

Leia mais