Processos, Threads e o Modelo Cliente/Servidor
|
|
|
- Bárbara Aurora Neiva de Oliveira
- 9 Há anos
- Visualizações:
Transcrição
1 Processos, Threads e o Modelo Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA 29 de novembro de 2011 Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
2 Agenda 1 Threads em Sistemas Distribuídos 2 Migração de Código 3 Modelo Cliente/Servidor 4 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor 5 Questões de Projeto de Aplicações Servidoras Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
3 Threads em Sistemas Distribuídos Threads em Sistemas Distribuídos Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
4 Threads em Sistemas Distribuídos Introdução Processos formam um importante bloco de construção em sistemas distribuídos; Operações envolvendo processos (criação, destruição, comunicação) são relativamente caras. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
5 Threads em Sistemas Distribuídos Definição de Thread Mecanismo que permite a um processo ter mais de um fluxo de controle; Threads compartilham o mesmo espaço de endereçamento. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
6 Threads em Sistemas Distribuídos Threads em Sistemas não Distribuídos: Benefícios O processo inteiro não necessita ficar bloqueado ao realizar uma chamada bloqueante ao sistema; Exemplo de uso: planilha de cálculo Pode-se explorar paralelismo em sistemas multiprocessados; Simplifica o desenvolvimento de aplicações inerentemente concorrentes; Melhor desempenho para aplicações complexas que tradicionalmente eram implementadas através de múltiplos processos comunicando-se através de mecanismos IPCs Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
7 Threads em Sistemas Distribuídos Threads em Sistemas Distribuídos: Clientes multithreaded Clientes multithreaded. Exemplo: Web Browsers: Documento HTML consiste de um arquivo de texto e vários outros de imagens, ícones, etc... Pode-se esconder a grande latência na comunicação apresentando cada objeto assim que estiver disponível: estabelecimento de múltiplas conexões Melhoria no desempenho geral pode ser obtido no caso de servidores Web replicados em várias máquinas. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
8 Threads em Sistemas Distribuídos Threads em Sistemas Distribuídos: Múltiplos RPCs Considere um cliente que realiza diversos RPCs, cada um para uma thread diferente; Ele deve esperar o retorno de cada resultado; Alternativamente, poder-se-ia realizar as RPCs através de threads independentes; Se as RPCs são destinadas a servidores diferentes, pode-se esperar um ganho linear, se comparado a realizar uma RPC após a outra. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
9 Threads em Sistemas Distribuídos Servidores multithreaded: Objetivos Melhor desempenho: Iniciar uma thread para tratar uma requisição custa menos que iniciar um novo processo; Servidores que possuem uma única thread não são escaláveis a sistemas multiprocessados; Pode-se esconder a latência da rede, reagindo a uma nova requisição enquanto os resultados da anterior estiverem sendo entregues. Melhor estrutura: Muitos servidores demandam fortemente E/S. A utilização de chamadas bloqueantes simplifica a estrutura do código; Programas multithreaded tendem a ser menores e mais fáceis de entender, por possuírem um fluxo de controle simplificado. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
10 Threads em Sistemas Distribuídos Servidores multithreaded Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
11 Threads em Sistemas Distribuídos Sincronização de Programas Concorrentes Semáforos; Monitores. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
12 Migração de Código Migração de Código Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
13 Migração de Código Migração de Código Carzaniga et al. define mobilidade de código como a capacidade de mudar dinamicamente as ligações entre o código e a localização onde executa. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
14 Migração de Código Migração de Código: Motivações Melhoria do desempenho global: processos podem ser movidos de máquinas muito carregadas para máquinas com cargas mais leves. Carga é usualmente expressa em termos do comprimento da fila de processos da CPU ou de sua utilização; Diminuição da carga na rede: Exemplo: uma aplicação cliente que requeira muitas operações em banco de dados ou validação de formulário no cliente; Exploração de processamento paralelo: Exemplo: busca de informações na Web através de várias instâncias de um agente móvel; Extensão dinâmica da funcionalidade de aplicações: Exemplo: descoberta dinâmica de recursos e vinculação do código cliente apenas quando for necessário o acesso ao servidor; Em grades oportunistas, liberação dos recursos da máquina. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
15 Migração de Código Migração de Código: Cuidados relacionados à Segurança Confiar cegamente em um código carregado dinamicamente nem sempre é uma boa ideia... Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
16 Migração de Código Migração de Código: Necessidades Para efetuar a migração de um processo, algumas informações de estado (também chamadas de contexto) devem ser salvas e transportadas para sua nova localização; Fuggetta descreve que um processo consiste basicamente de três segmentos: segmento de código, segmento de recursos e segmento de execução. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
17 Migração de Código Alternativas para Migração de Código Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
18 Migração de Código Alternativas para Migração de Código Migração Forte: mecanismo que migre os três segmentos e reinicia o processo exatamente no mesmo estado e na mesma posição de código em que ele estava antes da migração Migração Fraca: somente o segmento de código é transferido e talvez alguns dados de inicialização. O programa transferido é sempre executado a partir de seu estado inicial; Migração é iniciada pelo emissor (proativa): a aplicação deixa o local onde está executando e migra para uma outra localidade na rede por iniciativa própria (e.g. programas de busca em bases de dados na web); Migração iniciada pelo receptor (reativa): a iniciativa da migração parte de uma aplicação executando na máquina de destino (e.g. applets Java). Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
19 Migração de Código Migração Forçada Expressa a habilidade do sistema em suportar a migração de um processo a qualquer momento, mediante a solicitação de uma entidade externa; Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
20 Migração de Código Etapas do Processo de Migração Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
21 Migração de Código Etapas do processo de migração 1 O fluxo de execução é interrompido; 2 O estado da entidade a ser migrada é capturado; 3 O código e o estado da entidade migrada são transportados para a máquina de destino; 4 O código e o estado da entidade migrada são restaurados; 5 A execução é reiniciada. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
22 Migração de Código Migração de Recursos Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
23 Migração de Código Migração de Recursos 1 Recurso compartilhado: após o término do processo de migração o acesso ao recurso continua disponível (e.g. uma impressora de rede); 2 Recurso já disponível: Exemplo: uma aplicação gera uma série de arquivos de saída em uma unidade de fita. Após a migração, a nova máquina na qual a aplicação executa também tenha disponível uma unidade de fita. A aplicação poderá continuar a gerar os arquivos de saída no novo dispositivo; 3 Recurso referenciado: a referência ao recurso utilizado é migrada juntamente com o seu estado e seu código. Assim, ao chegar em seu destino, ele deve tentar se reconectar através da rede ao recurso na antiga máquina. Exemplo: uma base de dados; 4 Recurso despachado: o recurso deverá ser migrado inteiramente junto com o estado e o código da aplicação. Exemplo: arquivos utilizados pela aplicação. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
24 Migração de Código Tipos de Recursos Fixos: os recursos não podem ser migrados. Exemplo: hardware local; Vinculados: os recursos podem, a princípio, serem migrados mas a um alto custo; Não vinculados: os recursos podem facilmente serem movidos junto com o objeto. Exemplo: uma cache. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
25 Migração de Código Vinculação Objeto-Recurso Por identificador: o objeto requer uma instância específica do recurso. Exemplo: um banco de dados específico; Por valor: o objeto requer o valor de um recurso. Exemplo: entradas na cache; Por tipo: o objeto requer somente que um dado tipo de objeto esteja disponível. Exemplo: monitor colorido. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
26 Migração de Código Ações de Migração Relativas aos Recursos Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
27 Migração de Código Migração em Sistemas Heterogêneos Principal problema: A máquina alvo pode não ser adequada para execução do código migrado; O contexto do processo/thread é dependente do hardware local, sistema operacional e ambiente de execução. Solução: utilização de uma máquina abstrata implementada em diferentes plataformas; Soluções atuais: Uso de linguagens interpretadas que executam em uma máquina virtual, como Java; Uso de VMMs (Virtual Machine Monitors), o que permite a migração completa do sistema operacional junto com as aplicações. Exemplo: substituição de uma máquina em um cluster, um ambiente de computação de longo tempo de execução. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
28 Modelo Cliente/Servidor Modelo Cliente/Servidor Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
29 Modelo Cliente/Servidor Introdução ao Modelo Cliente/Servidor Uma questão fundamental em sistemas distribuídos é a definição de como devemos organizar os processos; Um modelo bastante popular organiza os processos em clientes que requisitam serviços de servidores. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
30 Modelo Cliente/Servidor Comunicação Cliente Servidor Através de um protocolo simples sem conexão Utilizado quando a rede é razoavelmente confiável, como a maioria das LANs; Vantagem: eficiência; Desvantagem: dificuldades de tornar a aplicação resistente a falhas de transmissão; Se o cliente não recebe resposta, ele não tem como detectar se a mensagem original foi perdida ou se isto ocorreu com a resposta; O cliente pode reenviar a requisição; Para requisições como retorne o saldo da minha conta isto não gera problemas mas para mensagens do tipo transfira ,00 da minha conta o reenvio da requisição seria desastroso. Através de protocolo confiável orientado a conexão Desvantagem: desempenho relativamente baixo; Funciona muito bem em WANs; Exemplo: praticamente todas as aplicações na Internet utilizam conexões TCP/IP. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
31 Modelo Cliente/Servidor Exemplo CS: Arquivo de Cabeçalho Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
32 Modelo Cliente/Servidor Exemplo CS: um Servidor Simples Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
33 Modelo Cliente/Servidor Exemplo CS: um Cliente Simples Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
34 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
35 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Camadas de uma Aplicação Uma aplicação CS pode ser estruturada em três níveis: 1 Interface com o usuário 2 Processamento 3 Dados Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
36 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Camada de Interface com o Usuário Consiste dos programas que permitem a interação dos usuários com a aplicação; Pode ser muito simples, utilizando uma interface a caractere simples ou mais sofisticado utilizando interfaces gráficas; Exemplo simples: interface de terminal onde o mainframe controla toda a interação inclusive o monitor e teclado; Exemplo sofisticado: Interface de sistema que permite ao usuário arrastar o ícone que representa o arquivo para uma lixeira provocando sua exclusão. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
37 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Camada de Processamento Contêm a funcionalidade principal da aplicação; Exemplo: uma ferramenta de busca na Internet; Ela deve transformar a string que o usuário digitou em uma ou mais consultas a um grande banco de dados e formatar os resultados obtidos em páginas HTML a serem apresentadas para o usuário. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
38 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Exemplo: Ferramenta de Busca Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
39 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Camada de Dados Na sua forma mais simples consiste de um sistema de arquivos mas é comum que sejam utilizados banco de dados; Além de apenas armazenar dados pode também também tratar sua consistência e realizar funções como gerar uma notificação quando uma dada condição ocorrer; Estas ações são muitas vezes implementadas através de stored procedures. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
40 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Um Segundo Exemplo Considere um sistema de suporte à decisão para uma corretora de valores: Uma camada frontal implementa a interface com o usuário; Uma camada de dados armazena os dados financeiros; Uma camada de processamento realiza a análise dos dados, o que eventualmente exige métodos e técnicas sofisticados de estatística e inteligência artificial. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
41 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Arquiteturas Multi-divididas A distinção entre os três níveis lógicos sugere várias possibilidades para a distribuição física de uma aplicação C/S; A organização mais simples requer apenas dois tipos de máquinas: 1 Cliente: que executa os programas que compreendem a interface com o usuário; 2 Servidor: que implementa as camadas de processamento e de dados. Esta organização é conhecida como Cliente/Servidor em duas camadas; No entanto, diversas outras arquiteturas podem ser utilizadas. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
42 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Possíveis Organizações Cliente/Servidor Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
43 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Alternativas de Organização Cliente/Servidor (a) Na alternativa (a), executa-se no cliente só a parte da interface dependente do terminal; Na alternativa (b), todo o software de interface com usuário executa no cliente; Exemplo da alternativa (c): verificação de consistência do preenchimento de um formulário feito no cliente; Na alternativa (d), a aplicação executa na máquina cliente, indo para o servidor somente as operações sobre as base de dados. Exemplo: muitas aplicações bancárias; Na alternativa (e), o disco local no cliente mantêm parte dos dados. Exemplo: browser web mantendo uma cache; Recentemente tem-se evitado as alternativas (d) e (e) devido a problemas de gerenciamento e por tornar o sofware cliente dependente da plataforma subjacente do cliente; Clientes gordos (abordagens (d) e (e)); Clientes magros (abordagens (a) a (c)): mais fáceis de gerenciar. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
44 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Arquitetura em Três Camadas A divisão vista anteriormente apresenta diversas possibilidades de distinção entre máquinas clientes e servidoras; No entanto, um servidor pode também agir como cliente, resultando em uma arquitetura em três níveis: Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
45 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Arquitetura em Três Camadas Nesta arquitetura, programas que formam o nível de processamento residem em um servidor separado; Um exemplo típico é o processamento de transações, onde o monitor de transações coordena as transações em servidores de dados possivelmente diferentes; Outro exemplo é a organização usual de sites na Web, onde o servidor Web age como ponto de entrada para um site, passando requisições para um servidor de aplicação no qual ocorre o processamento propriamente dito. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
46 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Servidores de Aplicação São softwares que fornecem uma infraestrutura de serviços para a execução de aplicações distribuídas; São executados em servidores e são acessados pelos clientes através de uma conexão de rede; Vantagem: simplificam o desenvolvimento de aplicações através dos serviços implementados, fazendo com que os desenvolvedores possam concentrar a maior parte do tempo na implementação da lógica de negócio; Serviços típicos: integração com bancos de dados, segurança, garantia de disponibilidade, balanceamento de carga e tratamento de exceções; Exemplos: WebLogic Server (BEA), JBoss (Red Hat), WebSphere Application Server (IBM), JRun (Adobe), Apache Geronimo (Apache Software Foundation), Oracle OC4J (Oracle Corporation), Sun Java System Application Server (Sun Microsystems), Glassfish, Appaserver, Base4 e Zope. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
47 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Distribuição Horizontal A distribuição do modelo CS em múltiplas camadas vista anteriormente é conhecida por distribuição vertical; O modelo CS pode também ser distribuído horizontalmente, dividindo-se o cliente ou servidor em partes logicamente equivalentes; Um exemplo popular é um servidor Web replicado em várias máquinas de forma a prover um balanceamento da carga de trabalho. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
48 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Distribuição Horizontal de Servidor Web Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
49 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Cluster de Servidores Conjunto de máquinas conectadas por uma rede de alta largura e baixa latência onde cada máquina executa um ou mais servidores; Normalmente organizado logicamente em três camadas: 1 Comutador: responsável pelo roteamento das requisições de clientes; 2 Servidores de aplicação / computação; 3 Sistema distribuído de arquivos / banco de dados. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
50 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Cluster de Servidores Logical switch (possibly multiple) Application/compute servers Distributed file/database system Client requests Dispatched request First tier Second tier Third tier Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
51 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Comutadores de Camada de Transporte O comutador aceita requisições de conexão TCP; Ele identifica o melhor servidor para tratar a requisição e repassa o pacote a ele; O servidor enviará a resposta ao cliente requisitante, mas insere o endereço IP do comutador como endereço fonte no cabeçalho do pacote IP, realizando uma falsificação (spoofing). Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
52 Distribuição Horizontal e Vertical do Modelo Cliente/Servidor Comutadores de Camada de Transporte Logically a single TCP connection Response Server Client Request Switch Request (handed off) Server Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
53 Questões de Projeto de Aplicações Servidoras Questões de Projeto de Aplicações Servidoras Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
54 Questões de Projeto de Aplicações Servidoras Organização de Servidores Servidor interativo: o próprio servidor manipula a requisição e, se necessário, retorna uma resposta ao cliente; Servidor concorrente: repassa para uma thread ou processo em separado a requisição e imediatamente espera pela próxima requisição. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
55 Questões de Projeto de Aplicações Servidoras Vinculação Cliente-Servidor Através de portas conhecidas designadas pela Autoridade para Atribuição de Números na Internet (Iana). Ex: FTP-21, HTTP-80 Através de um daemon que registra os servidores em execução; Através de um super-servidor, que escuta em várias portas e repassa a requisição a um servidor específico. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
56 Questões de Projeto de Aplicações Servidoras Vinculação Cliente-Servidor Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
57 Questões de Projeto de Aplicações Servidoras Interrupção do Servidor Exemplo: usuário deseja interromper a transferência de um enorme arquivo para o servidor FTP; Uma abordagem é o usuário sair abruptamente da aplicação cliente, o que automaticamente interromperá a conexão com o servidor; O servidor encerrará a conexão antiga, entendendo que o cliente falhou; Esta prática é muito adotada na Internet atual... Outra alternativa é permitir o envio de dados fora da banda; Neste caso o servidor pode escutar em uma porta de controle separada da qual passam os dados normais. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
58 Questões de Projeto de Aplicações Servidoras Servidores Com e Sem Estado 1 Sem Manter Estado: Não é mantida nenhuma informação a respeito dos clientes e suas requisições; Exemplo: um servidor Web tipicamente não armazena estado. Após a requisição ser processada, o servidor Web esquece completamente do cliente; Cada requisição deve ser auto-contida; Fácil recuperação em caso de falha. 2 Mantendo Estado: O servidor mantêm informações persistentes sobre seus clientes; Exemplo: um servidor de arquivo que sabe quais clientes possuem quais arquivos abertos; Normalmente leva a um melhor desempenho na execução das operações disponibilizadas; Em caso de falha, deve-se recurar o estado do servidor. Francisco Silva (UFMA/LSD) Cliente/Servidor 29 de novembro de / 58
Arquiteturas. capítulo
Arquiteturas capítulo 2 Modelos de arquitetura de sistemas distribuídos Clientes realizam pedidos a servidores Client invocation invocation Server result Server result Client Key: Process: Computer: Modelos
Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor
Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /
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
ach 2147 desenvolvimento de sistemas de informação distribuídos
ach 2147 desenvolvimento de sistemas de informação distribuídos arquiteturas e processos de sistemas distribuídos Daniel Cordeiro 18 e 20 de abril de 2017 Escola de Artes, Ciências e Humanidades EACH USP
Sistemas Distribuídos Capítulo 3 - Aula 3
Sistemas Distribuídos Capítulo 3 - Aula 3 Aula passada Arquitetura de SDs Estilo Arquitetônico Arquitetura de Sistemas Sistemas Autogerenciáveis Aula de hoje Threads Threads em SDs Processos Clientes Processos
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos
Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br
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
Sistemas Distribuídos
Sistemas Distribuídos Processos Gustavo Reis [email protected] 1 - Processos Conceito originado do campos de sistemas operacionais no qual, em geral, são definidos como programas em execução
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
Camada de Aplicação da Arquitetura TCP/IP
Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Aplicação da Arquitetura TCP/IP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes
Prof. Marcelo Cunha Parte 6
Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede
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.
Introdução à Informática. Aula 05. Redes de Computadores. Prof. Fábio Nelson
Aula 05 Redes de Computadores Sistemas de Comunicação de Dados Sistemas computadorizados que transmitem dados por meio de linhas de comunicação, como, por exemplo, linhas telefônicas ou cabos. História:
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Introdução Slide 1 Nielsen C. Damasceno Introdução Tanenbaum (2007) definiu que um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas
O que é um sistema distribuído?
Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores
Nuvem e Virtualização Redes Programáveis
Nuvem e Virtualização Redes Programáveis Visão Geral da Nuvem A computação em nuvem envolve muitos computadores conectados em uma rede, possibilitando que eles sejam fisicamente localizados em qualquer
SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU
SOP - TADS Threads Prof. Ricardo José Pfitscher [email protected] Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
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
Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores
Fundamentos de Sistemas Operacionais de Arquitetura Aberta CST em Redes de Computadores Introdução Computadores Computadores são compostos, basicamente, de CPU, memória e dispositivos de entrada e saída
contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.
Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens
Java para Web & EJB. Teoria, prática e questões Módulo Introdução e Servlets
Java para Web & EJB Teoria, prática e questões Módulo Introdução e Servlets Introdução ao Desenvolvimento Web com Java Tópicos Aplicações, componentes e containers web Aplicações web Modelo de aplicações
Características de Sistemas Distribuídos
Características de Sistemas Distribuídos Carlos Ferraz [email protected] 2002-2003 Carlos A. G. Ferraz 2 Tópicos O conceito de Sistemas Distribuídos Infra-estrutura básica Exemplos Vantagens e desvantagens
Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização
Hardware: Componentes Básicos Arquitetura dos Computadores Dispositivos de Entrada Processamento Dispositivos de Saída Armazenamento Marco Antonio Montebello Júnior [email protected] Sistema de
Bruno Antunes da Silva UFSCar - Sorocaba
Bruno Antunes da Silva UFSCar - Sorocaba Introdução HDFS Arquitetura Leitura e escrita Distribuição de nós Controle de réplicas Balancer MapReduce Conclusão Aplicações web com grandes quantidades de dados
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
Backup e Restauração Banco de Dados. Evandro Deliberal
Backup e Restauração Banco de Dados Evandro Deliberal [email protected] https://www.linkedin.com/in/evandrodeliberal Redes de armazenamento: Tecnologias e Virtualização Agenda I. DAS e Introdução a
Disciplina: Redes de Computadores I (R1)
UNIVERSIDADE FEDERAL DO PIAUI UFPI Colégio Técnico de Teresina CTT Professor: José Valdemir dos Reis Junior Disciplina: Redes de Computadores I (R1) 56. Uma das desvantagens da utilização de redes de computadores
Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI
ARQUITETURA DE SISTEMAS OPERACIONAIS VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI INTRODUÇÃO Programas computacionais (ou software) constituem o elo entre
Características de Sistemas Distribuídos
Tópicos O conceito de Características de Carlos Ferraz [email protected] Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito
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 [email protected] 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
Gerenciamento de Redes: Protocolo SNMP
Gerenciamento de Redes: Protocolo SNMP Protocolo SNMP (do inglês Simple Network Management Protocol Protocolo Simples de Gerência de Rede) é um protocolo usado para gerenciar redes TCP/IP complexas. Com
Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais
Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1 Competências: SOP 1. Compreender as abstrações de um sistema operacional e operar um sistema operacional Unix/Linux como
Prof. Samuel Henrique Bucke Brito
RM-OSI: Modelo de Referência www.labcisco.com.br ::: [email protected] Prof. Samuel Henrique Bucke Brito Quando surgiram as redes de computadores havia um grande problema de compatibilidade entre
Sistema centralizado O Paradigma Cliente/Servidor
centralizado O Paradigma Cliente/Servidor Computador central (mainframe) + conjunto de terminais + recursos centralizados recursos mainframe terminais 2 distribuído Relações entre entidades Grupo de computadores
Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto
Matéria: Sistema Computacional - SC Prof.: Esp.: Patrícia Dias da Silva Peixoto SISTEMA OPERACIONAL E TIPOS DE SISTEMAS OPERACIONAIS O QUE É UM SISTEMA OPERACIONAL (S.O.). Por mais complexo que possa parecer,
TELECOMUNICAÇÕES Prof. Ricardo Rodrigues Barcelar
- Aula 0 - REVISÃO DE REDES DE COMPUTADORES 1. INTRODUÇÃO Esta é uma revisão que visa trazer a tona alguns conceitos vistos na disciplina de Redes de Computadores vistos no semestre passado. 2. REVISÃO
Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR
n n n n Cliente-servidor Código móvel Agentes de software Processos pares Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Arquiteturas em Sistemas Distribuídos Cliente- Servidor Client invocation
Sistemas Operacionais
Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas
Modelos de Sistemas MSc. Eugénio Alberto Macumbe Modelos de Sistemas Um modelo de arquitectura de SD está preocupado com a localização das partes e o relacionamento entre elas. Os exemplos incluem os modelos
Gerenciador de Banco de Dados
Gerenciador de Banco de Dados Os bancos de dados requerem tipicamente um grande espaço de armazenamento. Os bancos de dados corporativos são medidos geralmente em gigabytes, ou, para os maiores, terabytes
Arquiteturas de Sistemas Distribuídos
Arquiteturas de Sistemas Distribuídos Sistema distribuído O processamento de informações é distribuído em vários computadores ao invés de confinado em uma única máquina. Bastante comum em qualquer organização
PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017
PTC 3450 - Aula 05 2.1 Princípios das aplicações de rede 2.2 A Web e o HTTP (Kurose, p. 62-73) (Peterson, p. 425-444) 21/03/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All
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
Aula 03-04: Modelos de Sistemas Distribuídos
UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)
Flávia Rodrigues. Silves, 26 de Abril de 2010
Flávia Rodrigues STC5 _ Redes de Informação e Comunicação Silves, 26 de Abril de 2010 Vantagens e Desvantagens da Tecnologia Acessibilidade, quer a nível pessoal quer a nível profissional; Pode-se processar
Arquiteturas. Capítulo 2
Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas Híbridas Arquiteturas e Middleware Sistemas Distribuídos
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
Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos
Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS Marcelo Henrique dos Santos Marcelo Henrique dos Santos Email: Site: [email protected] www.marcelohsantos.com.br TECNOLOGIA EM JOGOS
SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento
SISTEMAS DISTRIBUÍDOS ARQUITETURAS Slides cedidos pela Professora Aline Nascimento INTRODUÇÃO A organização dos SDs trata em grande parte dos componentes de software que constituem o sistema Os componentes
Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:
Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires [email protected]! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para
Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1
Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação
Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I
Arquitetura de Rede Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I 2 Tipos de arquiteturas Cliente-Servidor Peer-to-Peer Arquitetura Híbrida Cliente-Servidor
Redes de Computadores. Disciplina: Informática Prof. Higor Morais
Redes de Computadores Disciplina: Informática Prof. Higor Morais 1 Agenda Sistemas de Comunicação Histórico das Redes de Comunicação de Dados Mídias de Comunicação Meios de Transmissão Padrões e Protocolos
SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento
SISTEMAS DISTRIBUÍDOS PROCESSOS Slides cedidos pela professora Aline Nascimento INTRODUÇÃO Diferentes tipos de processos desempenham papel crucial em sistemas distribuídos. O conceito de um processo é
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
Data Warehouse ETL. Rodrigo Leite Durães.
Data Warehouse ETL Rodrigo Leite Durães [email protected] Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,
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
Sistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Sistemas Distribuídos
Comunicação em Grupo Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 10.4 pág. 304-311 2 Comunicação em Grupo Suponha que se deseja um serviço de arquivos único
Arquitecturas de Software Enunciado de Projecto 2007 2008
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Enunciado de Projecto 2007 2008 1 Introdução Na primeira metade da década de 90 começaram a ser desenvolvidas as primeiras
Arquitetura de Software para Computação Móvel
Introdução à Computação Móvel Arquitetura de Software para Computação Móvel Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br
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
Gerenciamento de Redes. Alan Santos
Gerenciamento de Redes Alan Santos Ciclo de gerenciamento Quando falamos de gerenciamento de redes devemos primeiro estabelecer o que será gerenciado e o que se espera como resultado desse gerenciamento.
Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída
11 1 Introdução Recentes avanços em redes de computadores impulsionaram a busca e o desenvolvimento de meios para facilitar e acelerar o desenvolvimento de aplicações em sistemas distribuídos, tornando
Servidor de Armazenamento em Nuvem
Aula 10 Servidor de Armazenamento em Nuvem Prof. Roitier Campos Gonçalves Cloud Computing modelo tecnológico que habilita de forma simplificada o acesso on-demand a uma rede, a qual possui um pool de recursos
Programação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Experiência 04: Comandos para testes e identificação do computador na rede.
( ) Prova ( ) Prova Semestral ( ) Exercícios ( ) Prova Modular ( ) Segunda Chamada ( ) Exame Final ( ) Prática de Laboratório ( ) Aproveitamento Extraordinário de Estudos Nota: Disciplina: Turma: Aluno
Programação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.
SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Modelos: Para que um sistema, ao ser projetado, alcance as características de um sistema distribuído, esse deve ser desenvolvido em cima de algum modelo de computação
Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES
Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Camada de aplicação Um protocolo da camada de aplicação define como processos de uma aplicação, que funcionam em sistemas finais diferentes,
Fundamentos de Redes e Sistemas Distribuídos Aula 03 Camadas
Fundamentos de Redes e Sistemas Distribuídos Aula 03 Camadas Prof. Dr. Rodrigo Clemente Thom de Souza Camada de Aplicação É a única camada vista pela maioria dos usuários!!! Objetivo: Fornecer serviços
Redes de Computadores
Instituto Superior Politécnico de Ciências e Tecnologia Redes de Computadores Prof Pedro Vunge I Semestre de 2017 SUMÁRIO I - Introdução às Redes de Computadores 1.4 Principais componentes de uma rede
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 [email protected]
1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento
Grupo 11 1. Em um SID a segurança é de grande importância, ela deve garantir que apenas usuários autorizados acessem recursos e garantir que a informação transmitida pela rede somente possa ser alcançada
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
REDES DE COMPUTADORES
REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] ENLACE X REDE A camada de enlace efetua de forma eficiente e com controle de erros o envio
Sistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Desenvolvimento de Aplicações Distribuídas
Arquitetura Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura
Objetos e Componentes Distribuídos: EJB e CORBA
: EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli
Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação
Cleverson A. Fargiani
1 Cleverson A. Fargiani IBM Cognos Now! BAM Business Activity Monitoring 2008 IBM Corporation 2 Agenda do Workshop de Cognos Now! Soluções de Gerenciamento de Desempenho Conceito de BI Operacional & BI
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO http:// www.cefetrn.br/datinf ARQUITETURA TCP/IP Nome: Curso: Turma: LISTA DE EXERCÍCIO
