Sistemas Distribuídos
|
|
- Paulo das Neves Bergmann
- 7 Há anos
- Visualizações:
Transcrição
1 Conteúdo Sistemas Distribuídos Prof. Fernando Luís Dotti material baseado em slides dos Profs. Avelino Zorzo e Celso Costa Introdução Comunicação entre Processos Algoritmos Distribuídos Gerência do Processador Memória Compartilhada Distribuída Sistema de Arquivos Distribuídos Estudos de Casos Sistemas Distribuídos 2 Introdução INTRODUÇÃO Fatores Motivadores Avanços em microeletronica processadores rápidos, baratos Avanços em comunicações redes eficientes, confiáveis Relação preço/performance melhor usar múltiplos processadores interconectados Sistemas Distribuídos 3 Introdução Introdução Por que Sistemas Distribuídos Melhoria de tecnologias Metáfora ( Us$10M 1i/s > Us$1m 100Mi/s) Rolls Royce (Us$10 > 1B km/l) Redes de computadores de alta velocidade Conectar vários computadores para resolver um problema Problema:???? O que é um sistema distribuído? Um sistema distribuído é uma coleção de computadores independentes que parecem um sistema único para o usuário [Tanenbaum ]. Dois aspectos: Hardware: autonomia Software: sistema único Exemplos: Fábrica com robôs Banco e agências Sistemas Distribuídos 5 Sistemas Distribuídos 6 1
2 Introdução Introdução Vantagens de S.D. sobre S.C Vantagens de S.D. sobre S.C Economia Grosh s law : performance é proporcional ao custo 2 Mainframes Velocidade CPUs x 50MIPS = MIPS Uma CPU (??) para isto deve executa 1 instrução a cada nanoseg (2 picoseg). (Velocidade da luz 0.6mm em 2 picoseg) Algumas aplicações são naturalmente distribuídas CSCW Confiabilidade (reliability) 5% for a do ar 5% em perda de performance Aviação, reatores nucleares, Expansão Aumentar poder de processamento sem se desfazer daquilo que já possui de maneira gradativa Sistemas Distribuídos 7 Sistemas Distribuídos 8 Introdução Introdução Vantagens de S.D. sobre PCs Desvantagens de S.D. Compartilhamento de dados Compartilhamento de periféricos Economia Comunicação Correio eletrônico Flexibilidade Melhor aproveitamento dos recursos Pouco software disponível Rede pode causar problemas Segurança Sistemas Distribuídos 9 Sistemas Distribuídos 10 Introdução Introdução Conteúdo histórico hardware classificações modelos de sistemas computacionais distribuídos (pradeep) terminologia considerações de projeto INTRODUÇÃO Histórico Sistemas Distribuídos 11 Sistemas Distribuídos 12 2
3 Introdução (histórico) Introdução (histórico) Computadores iniciais: Caros e grandes Anos 50 e 60: Spooling, multiprogramação otimizar utilização da CPU Início dos anos 60: Sistemas Time Sharing Sistemas Time Sharing Primeiro passo na direção dos Sistemas Distribuídos Incorpora dois conceitos fundamentais: Compartilhamento de recursos Acesso remoto Terminais passam a ter maior capacidade de processamento Tarefas principais/comuns em comp. principal Introdução (histórico) Introdução (histórico) Evolução do hardware: redução do tamanho, do preço, aumento da velocidade Comunicação: velocidades e distâncias maiores, maior confiabilidade Final dos anos 60 e início dos anos 70: Surgimento das redes Ethernet Xerox Palo Alto: 73 LAN ARPANet DoD: 69 WAN final dos anos 70: Protocolo TCP/IP Introdução (histórico) Final dos anos 60 e início dos anos 70: Unix Início dos anos 80: Estações de trabalho INTRODUÇÃO Hardware Sistemas Distribuídos 18 3
4 Introdução (hardware) Introdução (hardware) Taxonomia de hardware (Flynn 1972) SISD: single instruction single data computadores com um processador SIMD: single instruction multiple data array de processadores (alguns supercomputadores) MISD: multiple instruction single data não existe (?) MIMD: multiple instruction multiple data sistemas distribuídos estão nesta categoria, ou um conjunto de computadores independentes, cada um com seu contador de programa, conjunto de instruções e dados Barramento Fortemente acoplado Multiprocessadores (memória compartilhada) parallel processing systems ( pradeep) Switched MIMD Computadores Paralelos e Distribuídos Barramento Sequent, Encore Ultracomputer, RP3 Estações de Trabalho Fracamente acoplado Multicomputadores (memória privada) distributed computing systems ( pradeep) Switched Transputer, hypercube Sistemas Distribuídos 19 Sistemas Distribuídos 20 Introdução (hardware) Introdução (hardware) Multiprocessadores baseado em barramento Multiprocessadores baseado em switch Memórias CPU cache CPU cache CPU cache Memória CPUs C C C C M M M crossbar switch M C M C M C M C M omega switching network Sistemas Distribuídos 21 Sistemas Distribuídos 22 Introdução (hardware) Introdução (hardware) Multicomputadores em barramento Multicomputadores com switch Estação de trabalho Estação de trabalho Estação de trabalho Memória Local CPU Memória Local CPU Rede Memória Local CPU grid hypercube Sistemas Distribuídos 23 Sistemas Distribuídos 24 4
5 Introdução (hardware) MIMD: Multiprocessadores UMA: Uniform Memory Access (memória central) NUMA: Non Uniform Memory Access (distribuída) COMA: cache only memory access CCNUMA: cache coherent NUMA NCCNUMA: non cache coherent Multicomputadores (memória privada) NORMA nonremote memory access hwang98 INTRODUÇÃO Modelos de Distributed Computing Systems MIMD/NORMA (Pradeep) Sistemas Distribuídos 26 Modelos de Distributed Computing Systems MIMD/NORMA (Pradeep) Modelo Rede de Minicomputadores Redes de Minicomputadores Redes de Estações de Trabalho Redes de Estações de Trabalho com Estações as (Modelo /) Pool de Processadores / com um Pool de Processadores Micro Computador Micro Computador Rede Micro Computador Micro Computador Modelo Rede de Minicomputadores Modelo Rede de Minicomputadores Extensão do modelo timesharing cada minicomputador tem usuários conectados via terminais interativos rede permite a usuário acessar recursos de outros minicomputadores ex.: ARPANet Objetivo: Compartilhamento de recursos Software Telnet Ftp Acesso remoto à bases de dados 5
6 Modelo Rede de Estações Modelo Rede de Estações Estação Estação Rede Estação Estação Objetivo Interconectar estações de maneira a otimizar o seu uso Cada estação possui seu próprio sistema operacional, seu próprio disco Usuário se conecta a uma estação O sistema distribui a carga de processamento na rede de estações (Distribuição de carga) Modelo Rede de Estações Modelo / Como achar estação livre? Como transferir processo para outra estação? O que fazer com um processo remoto em uma estação livre, se um usuário se loga na estação? Ex.: Sprite Xerox PARC Estação Estação a Rede Estação Estação Modelo / Modelo / Podem existir estações sem disco Estações servidoras oferecem os serviços (servidor de arquivos, servidor de impressão, servidor de Base de Dados) Usuário se conecta a uma estação O sistema implementa o acesso remoto (transparente) aos serviços EX.: NFS da Sun Serviço: funcionalidade provida por um ou mais máquinas servidoras cooperantes : máquina servidora responsável por um serviço ou parte dele 6
7 Modelo Pool de Processadores Modelo Pool de Processadores Rede Run Server P1 P2 P3 Pool de Processadores Os processadores são gerenciados globalmente Alocação de um grupo de processadores a um usuário Liberação do grupo de processadores ao término da execução EX.: Sistema Operacional Amoeba Modelo / com Pool de Processadores O modelo mais usado é o / Modelo Híbrido combina o / com o Pool de Processadores Aproxima os ambientes Distribuídos dos Paralelos INTRODUÇÃO Terminologia Sistemas Distribuídos 40 Introdução (terminologia) Introdução (terminologia) Sistema Operacional programa que controla os recursos de um computador e oferece ao usuário uma interface mais conveniente para o uso do que a máquina Em um Sistema Computacional Distribuído podemos utilizar um: Sistema Operacional de Rede Sistema Operacional Distribuído 7
8 Introdução (terminologia) Introdução (terminologia) Sistema Operacional de Rede visão do sistema não é única, usuário conhece as várias máquinas computadores funcionam de maneira autonoma não há cooperação das máquinas para toleância a falhas DCS com um NOS é dito um Networked System ou Sistema em Rede Sistema Operacional Distribuído um SOD parece aos seus usuários como um único sistema operacional, centralizado, mas rodando em diversas CPUs independentes. O conceito chave é transparência. O uso de múltiplos processadores deve ser transparente ao usuário. Máquinas não são autônomas tolerância a falhas um DCS com um DOS é dito um Distributed System ou True Distributed System Introdução (considerações de projeto) INTRODUÇÃO Considerações de Projeto de um SOD Principal fonte de complexidade: informação completa sobre o sistema não está disponível recursos separados fisicamente não existe relógio comum mensagens podem ser entregues com atraso (variante) mensagens podem ser perdidas(!) inexistência de informação uptodate consistente maior dificuldade/complexidade para realizar tarefas ex.: como escalonar processadores se não se sabe exatamente quais estão rodando e qual sua carga em determinado momento Sistemas Distribuídos 45 Sistemas Distribuídos 46 Introdução (considerações de projeto) Introdução (considerações de projeto) Objetivo usuários devem ver um sistema distribuído como um sistema centralizado virtual que é flexível, eficiente, confiável, seguro e fácil de usar (Pradeep ) Transparência de acesso usuário não distingue entre acesso a recurso local ou remoto interface do usuário conjunto de chamadas de sistema tem que ser projetadas para fazer sentido em sistemas centralizados ou distribuídos acessar recursos locais ou distantes facilidade de esquema de nomeação global de localização movimentação de recursos e usuários a vontade recursos mantém mesmo nome, nome independente de localização usuários acessam mesmos recursos a partir de qualquer nodo Sistemas Distribuídos 47 Sistemas Distribuídos 48 8
9 Introdução (considerações de projeto) Introdução (considerações de projeto) Transparência de replicação replicação: aumento de desempenho e confiabilidade gerência de réplicas: nomeação de réplicas, mapeamento de nome dado pelo usuário para réplica apropriada do recurso, etc. de falhas mascara dos usuários as falhas parciais do sistema continuidade do funcionamento, talvez de maneira degradada, em presença de falhas de migração razões: manter desempenho, confiabilidade e segurança escolha de objeto (processo) a migrar comunicação deve continuar de maneira transparente Transparência de concorrência competição por recursos necessidade de: ordenação de eventos exclusão mútua nostarvation no deadlock de desempenho reconfiguração da carga do sistema para aumentar desempenho facilidades de alocação de recursos e migração de processos para homogeneizar a carga dos nodos Sistemas Distribuídos 49 Sistemas Distribuídos 50 Introdução (considerações de projeto) Introdução (considerações) Transparência de crescimento/expansão permitir sistema ser estendido sem interromper atividades dos usuários Flexibilidade: kernel monolítico vs. Microkernel Kernel monolítico gerência de processos, memória, dispositivos, arquivos, nomes, e comunicação entre processos provida pelo kernel kernel grande modificação e adição de serviços dificultadas área de usuário kernel monolítico inclui gerenciamento de arquivos, diretório, processos,... Sistemas Distribuídos 51 Sistemas Distribuídos 52 Introdução (considerações) Introdução (considerações) Flexibilidade: kernel monolítico vs. Microkernel Kernel monolítico Núcleo usuário NÚCLEO MONOLÍTICO Tratador usuário Núcleo Flexibilidade: kernel monolítico vs. Microkernel Microkernel kernel pequeno, facilidades mínimas para implementar demais serviços do sistema Funções Básicas em cada nodo : Comunicação entre processos Gerência de memória (básica) Gerência de processos (básica) Operações de E/S de baixo nível Funções Comuns: es gerência de arquivos, nomes, gerência adicional de processos, etc. Modo usuário. área de usuário microkernel sistema de arquivos microkernel servidor de diretórios microkernel servidor de processos microkernel rede Sistemas Distribuídos 54 9
10 Introdução (considerações) Introdução (considerações) Flexibilidade: kernel monolítico vs. Microkernel Microkernel MICROKERNEL MICROKERNEL MICROKERNEL Confiabilidade (reliability) e.g. 4 servidores 95% probabilidade de os 4 estarem fora do ar = 0, Outras considerações: perda de informações, segurança, tolerância a falhas, Performance Aplicação distribuída não deve ser mais lenta que aplicação centralizada comunicação: agrupar dados e outras informações para mandar através da rede minimizar tráfego (algoritmos distribuídos quanto se comunicam?) cache quando possível minimizar cópias de dados tirar vantagem de multiprocessamento Sistemas Distribuídos 55 Sistemas Distribuídos 56 Introdução (considerações) Escalabilidade (scalability) funciona para 200 funciona para ?? Princípios a serem evitados: componentes centralizados tabelas centralizadas algoritmos centralizados Algoritmos distribuídos nenhum computador deve conter todas informações sobre o estado do sistema falha em um computador não deve prejudicar outro não assumir que exista relógio global COMUNICAÇÃO ENTRE PROCESSOS Sistemas Distribuídos 57 Sistemas Distribuídos 58 Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas Sem Memória Compartilhada: os processos compartilham informações através de troca de mensagens P1 Área Compartilhda o S.O é responsável pelo mecanismo de comunicação entre os processos P1 P2 P2 Aspectos importantes para um sistema de troca de mensagens Simplicidade: construção de novas aplicações para interoperar com já existentes deve ser facilitada Semântica Uniforme: comunicação local (processos no mesmo nodo) e comunicação remota (processos em nodos diferentes) através de funções tão próximas quanto possível (=s!) Eficiência: reduzir número de mensagens trocadas tanto quanto possível economizar fechamento e abertura de conexões; usar piggybacking ; etc. Confiabilidade: garantir entrega da mensagem confirmação, eliminação de duplicatas, ordenação Corretude : relacionada principalmente a comunicação em grupo garantia de aspectos como Atomicidade; Ordenação; Survivability Sistemas Distribuídos 59 Sistemas Distribuídos 60 10
11 Aspectos importantes para um sistema de troca de mensagens Flexibilidade: possibilidade de utilizar somente funcionalidade requerida (em prol de desempenho) necessidade ou não de entrega garantida, ordenada, atomica, etc Segurança: suporte a autenticação, privacidade Portabilidade: disponibilidade do mecanismo de IPC em plataformas heterogêneas Operações: send/receive características de sincronização: bloqueante, não bloqueante Send bloqueante: processo enviador fica bloqueado até recepção de confirmação do receptor problema: ficar bloqueado para sempre mecanismo de timeout Send nãobloqueante: processo enviador pode proceder assim que conteúdo (dados a enviar) for copiado para buffer de envio Sistemas Distribuídos 61 Sistemas Distribuídos 62 Operações: send/receive características de sincronização: bloqueante, não bloqueante Receive bloqueante: processo receptor fica bloqueando na operação de receive até chegada da mensagem problema: ficar bloqueado para sempre mecanismo de timeout Receive nãobloqueante: processo receptor informa ao núcleo onde armazenar mensagem e procede processo receptor fica sabendo da chegada da mensagem por: polling teste periódico interrupção variante: não bloqueante condicional receive retorna mensagem ou informação de que mensagem ainda não chegou Sistemas Distribuídos 63 Operações: send/receive características de sincronização: bloqueante, não bloqueante quando send e receive são bloqueantes a comunicação é dita síncrona senão é dita assíncrona Send(message ) execução suspensa Retoma execução Acknowledgement Receive (message) execução suspensa Retoma execução Send(acknowledgement ) Sistemas Distribuídos 64 Operações: send/receive característica: endereçamento implícito e explícito explícito: processo com o qual se quer comunicar é explicitamente identificado através de um parâmetro implícito: processo com o qual se quer comunicar não é identificado ex.: sender mandando para qualquer receiver que desempenhe uma função/serviço sender nomeia serviço ao invés de processo qualquer processo servidor (de um grupo) que desempenhe esta função pode receber a mensagem receiver quer receber independente do sender: modelo cliente/servidor servidor quer poder servir qualquer cliente Endereçamento explícito: o remetente identifica o recebedor o recebedor identifica o remetente / * task 0 * / main ( ) { send ( t1, m ); } / * task 1 * / main ( ) { receive ( t0, m ); } Sistemas Distribuídos 65 Sistemas Distribuídos 66 11
12 Endereçamento implícito do lado recebedor: remetente identifica o recebedor recebedor recebe de qualquer remetente / * task 0 * / main ( ) { send ( t2, m ); } / * task 1 * / main ( ) { send ( t2, m ); } / * task 2 * / main ( ) { receive ( 1, m ); } Operações: send/receive característica: identificação de processos machine_id@local_ id segunda parte usada localmente na máquina para achar processo e se processo move? machine_id, local_ id, machine _id nome de criação, máquina onde está a máquina onde o processo foi criado deve manter tabela dizendo onde processo se encontra máquinas que um processo visita tem que manter entrada dizendo a próxima máquina para onde o processo migrou; (ou só máquina origem?) overhead; mensagem alcançar destino pode depender de vários nodos (falhas?) Sistemas Distribuídos 67 Sistemas Distribuídos 68 Operações: send/receive característica: identificação de processos métodos não transparentes: especifica identificador de máquina identificador único do processo não deve ter embutida informação de localização do processo nomeação em dois níveis: nome de alto nível (string ) independente de localização nome de baixo nível: como machine_id@local_id servidor de nomes traduz de um para outro processos usam nomes de alto nível para endereçar outros processos durante o send o servidor de nomes é consultado para achar nome de baixo nível (localização) uso possível para endereçamento funcional: originador diz nome de serviço e servidor de nomes mapeia para servidor apropriado Sistemas Distribuídos 69 Operações: send/receive característica: bufferização transmissão da mensagem: copiar corpo da mensagem do espaço de endereçamento do processo enviador para espaço de endereçamento do receptor processo recebedor pode não estar pronto para receber SO salva mensagem (SO do lado receptor implementa bufferização) relação com o sincronismo da comunicação síncrona null buffer (um extremo) assíncrona buffer de capacidade ilimitada (outro extremo) tipos intermediários de buffers: singlemessage, finitebound or multiple message Sistemas Distribuídos 70 Operações: send/receive característica: bufferização null buffer não há espaço temporário para armazenar mensagem para comunicação síncrona estratégia 1: mensagem permanece no espaço de endereçamento do processo enviador, que fica bloqueado no send; quando receptor faz receive, uma mensagem de confirmação para o enviador é mandada, e o send pode enviar os dados estratégia 2: enviador manda a mensagem e espera confirmação, se processo receptor não está em receive, kernel descarta mensagem se processo receptor está em receice, manda confirmação se não há confirmação dentro de um tempo (timeout) é sinal de que receptor não estava em receive, e a mensagem é repetida Sistemas Distribuídos 71 Operações: send/receive característica: bufferização single message buffer para comunicação síncrona idéia: manter a mensagem pronta para uso no local de destino request message é bufferizada no nodo receptor, caso o processo receptor não esteja pronto para recepção buffer pode estar no espaço do kernel ou do usuário no caso do kernel, caminho da mensagem pode envolver 2 cópias Sistemas Distribuídos 72 12
13 Operações: send/receive característica: bufferização unboundedcapacity buffer para comunicação assíncrona enviador não espera receptor podem existir várias mensagens pendentes ainda não aceitas pelo receptor para garantir entrega de todas mensagens, um buffer ilimitado é necessário Operações: send/receive característica: bufferização finitebound buffer unbounded capacity buffer: impossível na prática estratégia necessária para buffer overflow comunicação sem sucesso: send retorna código de erro comunicação com controle de fluxo: o enviador fica bloqueado no send até que o receptor aceite alguma(s) mensagem(s); introduz sincronização entre originador e receptor possível deadlock send assíncrono não é assíncrono para todas mensagens Sistemas Distribuídos 73 Sistemas Distribuídos 74 Operações: send/receive característica: codificação e decodificação dos dados da mensagem mesagens entre processos rodando em diferentes arquiteturas bigendian transferência de valores de ponteiros para memória perdem significado identificação necessária para dizer tipo de dado sendo transmitido uso de formato comum de transferência (sintaxe de transferência) representação com tags (tagged): mensagem carrega tipo dos dados transferidos. Ex.: ASN.1 (abstract syntax notation CCITT); sistema operacional Mach representação sem tags: receptor tem que saber decodificar mensagem. Ex.: XDR (external Data Representation Sun); Courier (Xerox) Operações: send/receive característica: tratamento de falhas perda de mensagem de pedido Send request origem Request destino Sistemas Distribuídos 75 Sistemas Distribuídos 76 Operações: send/receive característica: tratamento de falhas perda de mensagem de resposta Operações: send/receive característica: tratamento de falhas execução do pedido no destinatário não tem sucesso Send request origem Request Response destino execução Send response Send request origem Request destino crash restarted Sistemas Distribuídos 77 Sistemas Distribuídos 78 13
14 Operações: send/receive característica: tratamento de falhas estratégias four message: confirmação das mensagens de pedido e resposta three message : confirmação da resposta two message: resposta é confirmação Operações: send/receive característica: tratamento de falhas estratégia four message: confirmação das mensagens de pedido e resposta origem destino bloqueia execução retoma execução Request Acknowledgement Reply Acknowledgement bloqueia execução retoma execução Sistemas Distribuídos 79 Sistemas Distribuídos 80 Operações: send/receive característica: tratamento de falhas estratégia three message : confirmação da resposta Operações: send/receive característica: tratamento de falhas estratégia two message: resposta é confirmação origem destino origem destino bloqueia execução retoma execução Request Reply Acknowledgement bloqueia execução retoma execução bloqueia execução retoma execução Request Reply Sistemas Distribuídos 81 Sistemas Distribuídos 82 Operações: send/receive característica: tratamento de falhas idempotência e tratamento de requests duplicados idempotência : repetibilidade operação idempotente pode ser repetida inúmeras vezes sem causar efeitos colaterais ao servidor ex.: gettime(), sqrt(x) ex.: conta.deposita(valor); conta.retira(valor) operações não idempotentes necessitam exactelyonce semantics garante que somente uma execução no servidor é realizada ex.: usar identificador único para cada request; lado servidor guarda reply cache para responder mesma resposta a pedido repetido Troca de mensagens: Mecanismos Arquivos (Unix pipes) Sockets RPC (Remote Procedure Call ) RMI (Remote Method Invocation) Java, DCOM, CORBA, Sistemas Distribuídos 83 Sistemas Distribuídos 84 14
15 Usando Unix pipes int main ( ) { int b [ 2 ] ; int p[2]; char m[128]; p = pipe(); /** cria o pipe para comunicação **/ id = fork () ; /** cria outro processo **/ if ( id!= 0) { /** código do processo pai **/ write ( p[0], message ); } else { /** código do processo filho **/ read( p[1], m ); print ( %s\n,m ); } } COMUNICAÇÃO ENTRE PROCESSOS Sockets Sistemas Distribuídos 85 Sistemas Distribuídos 86 Sockets Conceitos Básicos Conceitos Básicos Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em sistema único ou processos residentes em sistemas remotos. Sockets criados por diferentes programas usam nomes para se referenciar Esses nomes geralmente devem ser traduzidos em endereços para uso Um endereço é especificado por um domínio Sistemas Distribuídos 87 Sistemas Distribuídos 88 Processo Usuário Processo Usuário Processo Usuário Processo usuário SO IPC em um mesmo sistema SO Comunicação de Processos Remotos SO Sistemas Distribuídos 89 Sistemas Distribuídos 90 15
16 Tipos de Sockets Tipos de Sockets STREAM SOCKET Provê sequenciamento e fluxo bidirecinal. Este tipo de socket transmite dados sobre um base confiável e com capacidade de transmissão de dados expressos. No domínio UNIX, o SOCKET_STREAM trabalha igual a um pipe. No domínio INTERNET este tipo de socket é implementado sobre TCP/IP. SOCK_DGRAM Suporta fluxo de dados bidirecional mas não oferece um serviço confiável como STREAM_SOCKET. Mensagens duplicadas, perdidas, e em ordem diferente (não sequenciadas ) são problemas que podem aparecer neste tipo de socket. Sistemas Distribuídos 91 Sistemas Distribuídos 92 Tipos de Sockets Domínios e Protocolos RAW_SOCKET permite o acesso a interface de protocolos de rede. Disponível para usuários avançados e que possuam autoridade de usuário root permite que uma aplicação acesse diretamente protocolos de comunicação de baixo nível. permite a construção de novos protocolos sobre os protocolos de baixo nível já existentes normalmente orientados a datagrama O espaço no qual o endereço é especificado é chamado de domínio Domínios básicos: INTERNET AF_INET os endereços consistem do end. de rede da máquina e da identificação do no. da porta, o que permite a comunicação entre processos de sistemas diferentes Unix: AF_UNIX os processos se comunicam referenciando um pathname, dentro do espaço de nomes do sistema de arquivos Sistemas Distribuídos 93 Sistemas Distribuídos 94 Domínios e Protocolos Tipos de Sockets Domínio Internet Implementação Unix do protocolotcp/udp/ip Consiste de: end. de rede da máquina identificação do no. da porta Permite a comunicação entre máquinas diferentes Conexões sob a forma de sockets do tipo stream e do tipo datagramas Socket Stream conexões confiáveis Datagramas não fornecem segurança Sistemas Distribuídos 95 Sistemas Distribuídos 96 16
17 Protocolos TCP/IP IP Processo A Processo B TCP/UDP IP Interface hardware TCP/UDP Internetwork Protocol Roteamento de mensagens na rede Unidade: datagramas Fragmentação de pacotes (se > MTU) Entrega não confiável de pacotes Sistemas Distribuídos 97 Sistemas Distribuídos 98 TCP UDP Transmission Control Protocol Para comunicação longa (conexão) Confiável Transmissão de fluxo de dados: Não respeita limites de mensagens Baixo desempenho em comunicações curtas (?) Usos típicos: Login remoto Transferência de arquivo User Datagram Protocol Para comunicação curta (sem conexão) Não confiável Transmissão de pacotes: respeita limites de mensagens Pouco prático para comunicações longas (confiabilidade precisa ser programada) Usos típicos: RPC Broadcast Sistemas Distribuídos 99 Sistemas Distribuídos 100 Porta Associação Definida por Endereço para um processo comunicante Inteiro de 16 bits (definido pelo usuário) Portas 1 a 1023 são do sistema Portas de TCP independentes das de UDP Um protocolo: TCP ou UDP Endereço IP local Porta local Endereço IP distante Porta distante Sistemas Distribuídos 101 Sistemas Distribuídos
18 Comunicação por sockets Comunicação via TCP 1 Cria um socket com Família (ou domínio): UNIX, Internet, XNS Tipo: stream, datagrama, puro Protocolo (por conseq.): TCP, UDP kernel socket conexão socket kernel rede sockfd = (int) socket (int family, int type, int protocol) Sistemas Distribuídos 103 Sistemas Distribuídos 104 Comunicação via TCP Comunicação via TCP Atribui ao socket Endereço Internet (pode ser any ) Porta de comunicação Declara Que está pronto para receber conexões Até quantas devem ser enfileiradas ret = (int) bind (int sockfd, struct sockaddr *myaddr, int addrlen) listen ( ) ret = (int) listen (int sockfd, int backlog) Sistemas Distribuídos 105 Sistemas Distribuídos 106 Comunicação via TCP Comunicação via TCP listen ( ) accept ( ) Bloqueia até que haja pedido de conexão Quando houver algum, aceita newsock = (int) accept (int sockfd, struct sockaddr *peer, int *addrlen) listen ( ) accept ( ) Cria um socket idêntico ao do servidor (mesma família e tipo) sockfd = (int) socket (int family, int type, int protocol) Sistemas Distribuídos 107 Sistemas Distribuídos
19 Comunicação via TCP Comunicação via TCP listen ( ) accept ( ) Pede uma conexão ao servidor Fica bloqueado ou retorna erro Se aceito, fecha a conexão estabelecimento de conexão connect ( ) ret = (int) connect (int sockfd, struct sockaddr *servaddr, int addrlen) listen ( ) accept ( ) Envia uma seqüência de bytes pela conexão estabelecimento de conexão connect ( ) send ( ) nbytes = (int) send (int sockfd, char *buf, int nbytes, int flags) Sistemas Distribuídos 109 Sistemas Distribuídos 110 Comunicação via TCP Comunicação via TCP listen ( ) accept ( ) recv ( ) Recebe msg enviada por send ( ) estabelecimento de conexão solicitação connect ( ) send ( ) nbytes = (int) recv (int sockfd, char *buf, int nbytes, int flags) listen ( ) accept ( ) recv ( ) send ( ) processamento ret = (int) close (int sockfd) Transmite ou confirma msgs faltantes Encerra a conexão Fecha o socket estabelecimento de conexão solicitação resposta connect ( ) send ( ) recv ( ) close ( ) close ( ) Sistemas Distribuídos 111 Sistemas Distribuídos 112 Comunicação via TCP Comunicação via UDP Diagrama completo e servidor criam seus sockets Família = Internet, tipo = datagrama listen ( ) accept ( ) recv ( ) send ( ) processamento estabelecimento de conexão solicitação resposta connect ( ) send ( ) recv ( ) close ( ) close ( ) Sistemas Distribuídos 113 Sistemas Distribuídos
20 Comunicação via UDP Comunicação via UDP e servidor definem endereços Recebe pacote enviado do endereço informado Se não houver nada, bloqueia recvfrom ( ) nbytes = (int) recvfrom (int sockfd, char *buf, int nbytes, int flags, struct sockaddr *from, int *addrlen) Sistemas Distribuídos 115 Sistemas Distribuídos 116 Comunicação via UDP Comunicação via UDP Envia pacote para o endereço informado Diagrama completo recvfrom ( ) solicitação sendto ( ) nbytes = (int) recvfrom (int sockfd, char *buf, int nbytes, int flags, struct sockaddr *from, int *addrlen) recvfrom ( ) processamento solicitação sendto ( ) sendto ( ) resposta recvfrom ( ) close ( ) close ( ) Sistemas Distribuídos 117 Sistemas Distribuídos 118 Comunicação entre processos Comunicação entre processos Exercícios: classifique cada uma das primitivas de pipes e sockets com relação a modelo implícito e explicito de endereçamento a comunicação bloqueante e não bloqueante e a bufferização de mensagens Obs.: analise o maior número possível de opções oferecidas por estas interfaces usando PIPES, teste, com programas: uso bidirecional de um pipe (existe?); uso concorrente de um pipe; Exercícios: usando sockets em plataforma linux ou solaris, e comunicação no modo datagrama, implemente em linguagem C um mecanismo de comunicação com suporte a falhas, do tipo twomessage analise bem a interface de sockets para utilizar o máximo de sua funcionalidade implemente um servidor concorrente (trata vários clientes simultaneamente) de operações matemáticas utilizando pipes e depois sockets (tipo stream) os clientes mandam os operandos e a operação, ficam a espera do resultado, e voltam a sortear operandos para o próximo pedido o servidor calcula e manda o resultado devolta para os vários clientes modifique a implementação para trabalhar com sockets no modo datagrama, adicionando o mecanismo de confirmação da questão anterior Sistemas Distribuídos 119 Sistemas Distribuídos
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 maisCOMUNICAÇÃ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 maisSockets - 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 maisSistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS
Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS Processo Usuário Processo Usuário SO IPC em um mesmo sistema 2 Processo Usuário Processo usuário
Leia maisIntrodução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)
Hardware Taxonomia de hardware (Flynn 1972) SISD: single instruction single data computadores com um processador SID: single instruction multiple data array de processadores (alguns supercomputadores)
Leia maisSistemas 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 maisCaracterização de Sistemas Distribuídos
Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes
Leia maisProgramação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)
II - UFRGS Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) Valter Roesler Universidade Federal do Rio Grande do Sul (UFRGS) Instituto de Informática
Leia maisSistemas Distribuídos
onteúdo Sistemas Distribuídos material baseado em slides dos Profs. Avelino Zorzo, elso osta, Fernando Dotti e Luiz Gustavo Fernandes e no livro: Distributed Operating Systems - oncepts and Design - Pradeep
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens
Leia maisComunicaçã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 maisSistemas 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 maisArquitetura de Computadores. Processamento Paralelo
Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple
Leia maisSistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos
Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação
Leia maisAULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MULTIPROCESSADORES
Leia maisSistemas Distribuídos
Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade
Leia maisFUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão
Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP
Leia maisConceitos de Sistemas Distribuídos
Conceitos de Sistemas Distribuídos Roteiro Definição de Sistemas Distribuídos (SD) Evolução Histórica Exemplos (SD) Modelos (Vantagens x Desvantagens) 2 O que é um Sistema Distribuído? Definição Coleção
Leia maisSistemas 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 maisSistemas Operacionais Distribuídos
Sistemas Operacionais Distribuídos Introdução O uso de redes locais e da Internet está amplamente difundido mesmo para uso doméstico. Mas para que tais recursos físicos sejam aproveitados da melhor forma
Leia maisCaracterísticas de Sistemas Distribuídos
Características de Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br 2002-2003 Carlos A. G. Ferraz 2 Tópicos O conceito de Sistemas Distribuídos Infra-estrutura básica Exemplos Vantagens e desvantagens
Leia maisSistemas distribuídos. Prof. Emiliano Monteiro
Sistemas distribuídos Prof. Emiliano Monteiro Múltiplos processadores São arquiteturas que possuem duas ou mais CPU interligadas e que funcionam em conjunto na execução de tarefas independentes ou no processamento
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia maisCaracterísticas de Sistemas Distribuídos
Tópicos O conceito de Características de Carlos Ferraz cagf@cin.ufpe.br Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito
Leia maisComunicação entre Processos
Comunicação entre Processos Troca de Mensagens send (destino, msg) receive (origem, mensagem) questões semântica de operações especificação de origem e destino formato de mensagem envio síncrono e assíncrono
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 20ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquiteturas MIMD As arquiteturas MIMD dividem-se
Leia maisIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Ementa; Bibliografia Calendário Site Introdução Características http://sites.google.com/sitew/leonardobcampos
Leia maisVamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com
Leia maisSISTEMAS OPERACIONAIS DE REDE
SISTEMAS OPERACIONAIS DE REDE Questão 01 O sistema operacional gerencia o sistema de arquivos, que irá armazenar as informações/arquivos. Para esta tarefa, durante a formatação do disco rígido, são criados
Leia maisProgramação com Sockets
Programação com LP4 Ciência da Computação 1 Comunicação entre processos Nível mais baixo É um tipo particular de modelo de programação em redes utilizado em várias linguagens como: C, C++ e Java São estruturas
Leia maisSIST706 Sistemas Distribuídos
Slide02 Arquiteturas de SD SIST706 Sistemas Distribuídos 2013/1 Prof. Jéfer Benedett Dörr @: prof.jefer@gmail.com profjefer.wordpress.com Notícias Cultura Livre Fontes de Notícias itil LPI Transistores:
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura
Leia maisAULA 3 - REDES. Prof. Pedro Braconnot Velloso
AULA 3 - REDES Prof. Pedro Braconnot Velloso Resumo da última aula Começo da Internet Princípios básicos Comutação pacotes x circuitos Protocolos Arquitetura em camadas Arquitetura TCP/IP APLICAÇÃO TRANSPORTE
Leia maisProgramação de Sistemas em Tempo Real
BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa
Leia maisCurso: Redes de Computadores
Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg
Leia maisComunicação 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 maisSumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos
Sumário Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos A Internet: Endereços Cada computador ligado à Internet tem um endereço único que o distingue dos restantes (endereço
Leia maisRoteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens
Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos
Leia maisComunicaçã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 maisSistemas 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 maisSockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27
Sockets André Restivo Faculdade de Engenharia da Universidade do Porto April 29, 2013 André Restivo (FEUP) Sockets April 29, 2013 1 / 27 Sumário 1 Introdução 2 Cliente/Servidor 3 API C++ 4 André Restivo
Leia maisSISTEMAS DISTRIBUÍDOS
INTRODUÇÃO SISTEMAS DISTRIBUÍDOS Até meados dos anos 80 as máquinas eram grandes e caras; A maioria das empresas tinham equipamentos que operavam de forma independente por falta de uma forma confiável
Leia maisSistemas Distribuídos
Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução: Sockets Para estabelecer a Comunicação Interprocesso nos Sistemas Distribuídos,
Leia maisSistemas Distribuídos
Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir
Leia maisDesenvolvimento de Aplicações Distribuídas
Desafios e Características Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características
Leia maisSistemas Distribuídos Aula 10
Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação
Leia maisEstruturas 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 maisSistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Leia maisSIST706 Sistemas Distribuídos
Slide01 Introdução e Conceitos de Sistemas Distribuídos SIST706 Sistemas Distribuídos 2013/1 Prof. Jéfer Benedett Dörr @: prof.jefer@gmail.com profjefer.wordpress.com Sistema Distribuído Definição de Andrew
Leia maisComunicação de Dados II
Comunicação de Dados II Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende kleber.rezende@ifsuldeminas.edu.br Interligação em Redes Acomoda distintas tecnologias
Leia maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisProgramando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
Leia maisBarramento. Prof. Leonardo Barreto Campos 1
Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;
Leia maisINTRODUÇÃ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 maisInfra-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 maisRedes de Computadores
Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores
Leia maisComunicação entre Processos
Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação
Leia maisSistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior
Sistemas Operacionais II Unix: Memória e E/S Geraldo Braz Junior Gerenciamento de Memória Gerenciamento de Memória Espaço de Endereçamento 1. Segmento de código Instruções de máquina que formam o código
Leia maisSoquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil
Soquetes TCP Jean Ribeiro Damasceno Escola de Engenharia (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil jeanrdmg@yahoo.com.br Função socket(): Cria um novo ponto final de comunicação int socket ( int
Leia maisSistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34
Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34 Introdução Serviço de arquivos descreve os serviços oferecidos pelo sistema de arquivos aos clientes Servidor de arquivos processo
Leia maisRedes 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 maisSistemas 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 maisCarlos Eduardo Batista Centro de Informática - UFPB
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação Arquitetura de computadores modernos Desafios da programação concorrente Definição de concorrência Correr junto Disputa por
Leia maisDireto 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 maisSis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o
Sistemas Operacionais um pouco da história... - Evolução dos SO s através do tempo - Novas técnicas não são assimiladas simultaneamente por todos - Década de 40, não existia SO - O programador é o faz
Leia maisDados 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 maisArquitetura de sistemas distribuídos
Arquitetura de sistemas distribuídos 3. Comunicação nos Sistemas Distribuídos 3.1.Introdução aos modelos de comunicação 3.2 Modelo Cliente-Servidor 3.3.Comunicação através de Sockets 3.3 Chamada a procedimento
Leia maisSistemas 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 maisIntrodução aos Sistemas Operacionais
1 Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas
Leia maisSistemas Distribuídos
Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.
Leia maisArquitetura 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 maisCapí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 maisThread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41
Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
Leia maisREDES 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 maisBacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór
Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Filipo Mór WWW.FILIPOMOR.COM - REVISÃO ARQUITETURAS PARALELAS Evolução das Arquiteturas Evolução das Arquiteturas Entrada CPU Saída von
Leia maisDefinição Rede Computadores
Definição Rede Computadores Uma rede de computadores consiste na interconexão entre dois ou mais computadores e dispositivos complementares acoplados através de recursos de comunicação, geograficamente
Leia maiscamada de transporte SOCKET TCP UDP
Sockets O que são sockets? O acesso aos serviços da camada de transporte pode ser feito por primitivas de transporte, essas primitivas são denominadas SOCKET. Por essas primitivas é possível acessar vários
Leia maisProcessos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução
Leia maisIntrodução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisGerê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 maisRedes 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 maisPROTOCOLOS DE COMUNICAÇÃO
PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group Serviços de Transporte na Internet Arquitectura TCP/IP
Leia maisSistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:
Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização
Leia maisÍ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 maisServidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP
2004-2015 Volnys Bernal 1 2004-2015 Volnys Bernal 2 Resumo das Chamadas UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2015 Volnys Bernal
Leia maisCapítulo 4: Camada de rede
Capítulo 4: Camada de Objetivos do capítulo: entender os princípios por trás dos serviços da camada de : modelos de serviço da camada de repasse versus roteamento como funciona um roteador roteamento (seleção
Leia maisOrganização de Computadores 2005/2006 Processamento Paralelo
GoBack Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 ORGC Processamento Paralelo slide 1 Porquê? Definição de computação paralela Alocação
Leia maisFundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads
Threads Prof. Edwar Saliba Júnior Março de 2007 1 Definição Partes de um processo que compartilham mesmo espaço de endereçamento Sub-rotina de um programa executada paralelamente ao programa chamador (execução
Leia maisArquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela
Arquitetura de Computadores Paralelos Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Por que estudar Computação Paralela e Distribuída? Os computadores sequenciais
Leia maisServidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP
2004-2017 Volnys Bernal 1 Servidor UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Resumo das Chamadas UDP 2004-2017
Leia maisRedes de Computadores Nível de Rede
Comunicação de Dados por Fernando Luís Dotti fldotti@inf.pucrs.br Redes de Computadores Nível de Rede Fontes Fontes principais: principais: Redes Redes de de Computadores Computadores -- das das LANs,
Leia maisSISTEMAS OPERACIONAIS DE REDE
ESPECIALIZAÇÃO EM REDES E COMPUTAÇÃO DISTRIBUÍDA 2011/1 Edital 005/2011 PROVA OBJETIVA Página 1 de 5 SISTEMAS OPERACIONAIS DE REDE Questão 01 Qual a função de um servidor DNS (Domain Name System)? a) Servir
Leia maisProgramação de Aplicações em. Rede usando Sockets
Programação de Aplicações em Objetivos: Rede usando Sockets Conhecer a API Sockets, que permite a programas de aplicação comunicar-se através da Internet Aplicações e Protocolo de Aplicação Aplicação:
Leia maisIntrodução. capítulo
Introdução capítulo 1 Definição de de um sistema distribuído Um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente Definição
Leia maisComputação Distribuída
Aula 1 Introdução aos Sistemas Distribuídos Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento de programas Usuário ia ao computador Processamento Seqüencial Leitoras de cartões
Leia maisSistemas 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 maisINTRODUÇÃ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 maisRedes 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 maisRedes 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