Sistemas Distribuídos

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

Download "Sistemas Distribuídos"

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

Leia mais

COMUNICAÇÃO ENTRE PROCESSOS

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

Leia mais

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

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

Leia mais

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

Introdução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)

Introduçã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 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

Caracterização de Sistemas Distribuídos

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

Leia mais

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)

Programaçã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 mais

Sistemas Distribuídos

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

SISTEMAS DISTRIBUÍDOS

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

Leia mais

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

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

Leia mais

Sistemas Operacionais Distribuídos e de Redes

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

Leia mais

Arquitetura de Computadores. Processamento Paralelo

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

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

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

Leia mais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

Leia mais

Sistemas Distribuídos

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

Leia mais

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

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

Leia mais

Conceitos de Sistemas Distribuídos

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

Leia mais

Sistemas Distribuídos Aula 2

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

Leia mais

Sistemas Operacionais Distribuídos

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

Características de Sistemas Distribuídos

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

Leia mais

Sistemas distribuídos. Prof. Emiliano Monteiro

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

Leia mais

Fundamentos de Sistemas Operacionais

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

Leia mais

Características de Sistemas Distribuídos

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

Leia mais

Comunicação entre Processos

Comunicaçã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 mais

SSC0611 Arquitetura de Computadores

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

Introdução aos Sistemas Distribuídos

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

Leia mais

Vamos fazer um pequeno experimento

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

Leia mais

SISTEMAS OPERACIONAIS DE REDE

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

Leia mais

Programação com Sockets

Programaçã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 mais

SIST706 Sistemas Distribuídos

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

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

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

Leia mais

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

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

Programação de Sistemas em Tempo Real

Programaçã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 mais

Curso: Redes de Computadores

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

Leia mais

Comunicação entre Processos

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

Leia mais

Sumá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 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 mais

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

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

Leia mais

Comunicação entre processos. Sistema centralizado

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

Leia mais

Sistemas Operacionais II

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

Leia mais

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27

Sockets. 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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 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: Sockets Para estabelecer a Comunicação Interprocesso nos Sistemas Distribuídos,

Leia mais

Sistemas Distribuídos

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

Leia mais

Desenvolvimento de Aplicações Distribuídas

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

Leia mais

Sistemas Distribuídos Aula 10

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

Leia mais

Estruturas de Sistemas Operacionais

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

Leia mais

Sistemas Distribuídos

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

Leia mais

SIST706 Sistemas Distribuídos

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

Leia mais

Comunicação de Dados II

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

Leia mais

Programação concorrente (processos e threads)

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

Leia mais

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

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

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

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

Leia mais

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

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

Leia mais

Infra-Estrutura de Software

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

Leia mais

Redes de Computadores

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

Leia mais

Comunicação entre Processos

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

Leia mais

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

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

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

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

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

Leia mais

Redes de Computadores e Aplicações

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

Leia mais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB

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

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Arquitetura de sistemas distribuídos

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

Leia mais

Sistemas de Troca de Mensagens

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

Leia mais

Introdução aos Sistemas Operacionais

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

Leia mais

Sistemas Distribuídos

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

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

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

Leia mais

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

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

Leia mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. 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 mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Leia mais

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

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

Definição Rede Computadores

Definiçã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 mais

camada de transporte SOCKET TCP UDP

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

Processos ca 3 pítulo

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

Leia mais

Organização e Arquitetura de Computadores I

Organizaçã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 mais

Introdução à Computação: Sistemas de Computação

Introduçã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 mais

Gerência de Entrada e Saída

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

Leia mais

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

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

Leia mais

PROTOCOLOS DE COMUNICAÇÃO

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

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

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

Leia mais

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

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

Leia mais

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

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

Capítulo 4: Camada de rede

Capí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 mais

Organização de Computadores 2005/2006 Processamento Paralelo

Organizaçã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 mais

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

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

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

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

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

Redes de Computadores Nível de Rede

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

SISTEMAS OPERACIONAIS DE REDE

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

Leia mais

Programação de Aplicações em. Rede usando Sockets

Programaçã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 mais

Introdução. capítulo

Introduçã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 mais

Computação Distribuída

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

Leia mais

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

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

Leia mais

INTRODUÇÃO. RPC x RMI

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

Leia mais

Redes de Computadores

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

Leia mais

Redes de Computadores

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

Leia mais