Cap. 03 Processos. 3.1 Threads. 3.2 Virtualização. 3.3 Clientes Introdução às Threads Threads em Sistemas Distribuídos

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

Download "Cap. 03 Processos. 3.1 Threads. 3.2 Virtualização. 3.3 Clientes. 3.1.1 Introdução às Threads 3.1.2 Threads em Sistemas Distribuídos"

Transcrição

1 Cap. 03 Processos 3.1 Threads Introdução às Threads Threads em Sistemas Distribuídos 3.2 Virtualização Virtualização em Sistemas Distribuídos Arquiteturas de Máquinas Virtuais 3.3 Clientes Interface do Usuário Lado Cliente para Transparência de Distribuição Pg. 1/81

2 Cap. 03 Processos Servidores Aspectos Gerais de Projeto Clusters de Servidores Gerenciamento de Clusters de Servidores 3.5 Migração de Código Abordagens para Migração de Código Migração e Recursos Locais Migração em Sistemas Heterogêneos Pg. 2/81

3 Referências Bibliográficas Andrew S. Tanenbaum; Maarten van Steen - Distributed Systems: Principles and Paradigms, Prentice-Hall, 2007, ISBN-10: , ISBN-13: Lectures dos autores Andrew S. Tanenbaum e Maarteen van Steen ( e ) George Coulouris; Jean Dollimore; Tim Kindberg Sistemas Distribuídos: Conceitos e Projeto, Bookman, 4th Edition, 2007, ISBN Notas de Aula do Prof. Ricardo Anido do Instituto de Computação (IC) da UNICAMP - Pg. 3/81

4 Cap. 03 Processos Introdução Introdução problema - como diferentes tipos de processos desempenham um papel crucial em sistemas distribuídos?! da perspectiva de sistemas operacionais, o gerenciamento e escalonamento de processos é o aspecto mais importante para tratar mas ao discutirmos este tópico em sistemas distribuídos estes aspectos e outros igualmente importantes emergem. threads em sistemas distribuídos permite que a comunicação e processamento de clientes e servidores sejam sobrepostos, resultando em alto grau de performance. virtualização permite que uma aplicação e, possivelmente o seu ambiente incluindo o sistema operacional, sejam executados concorrentemente com outra aplicação e de forma totalmente independente do hardware subjacente. Pg. 4/81

5 3 Processos 3.1 Threads 3.1 Threads processo bloco base para sistemas distribuídos, por outro lado a experiência mostra que a granularidade processo suportada pelos sistemas operacionais não é suficiente; se um nível de granularidade mais fino (e.g., threads) for contemplado, o desenvolvimento de aplicações distribuídas atinge níveis melhores de performance; solução - nível de granularidade mais fino - threads. Pg. 5/81

6 3 Processos 3.1 Threads Introdução às Threads processo programa em execução, ou seja, é um programa que está sendo correntemente executado por um processador virtual do sistema operacional; daí a necessidade do sistema operacional criar processadores virtuais, cada qual para executar diferentes programas; para rastrear estes processadores virtuais, o sistema operacional mantém a Tabela de Processos contendo entradas para registradores do processador, mapa de memória, arquivos abertos, informações para bilhetagem, privilégios, etc. fato de múltiplos processos compartilharem concorrentemente os recursos computacionais é transparente, ou seja, o sistema operacional garante a independência dos processos. Pg. 6/81

7 3 Processos 3.1 Threads Introdução às Threads Threads como um processo, a thread executa sobre o seu código e independentemente de outras threads; entretanto, em contraste com processos, nenhum esforço é feito para prover transparência de concorrência. Implicações da abordagem de Múltiplas Threads: performance de aplicações multithreaded não necessita ser pior que as aplicações single threaded - alias, em muitos casos multithreaded leva a ganho de performance; threads não são protegidas umas das outras, assim, esforço adicional deve ser creditado aos desenvolvedores de aplicações. Pg. 7/81

8 3 Processos 3.1 Threads Introdução às Threads Antes de discutirmos o papel das threads em Sistemas Distribuídos, vejamos o seu uso em Sistemas Tradicionais: em sistema com uma única thread por processo, o processo será inteiramente bloqueado sempre que o bloqueio de uma chamada de sistema for executado, logo, sistemas multithreaded podem contornar este problema disparando um outra thread; uma outra vantagem do suporte a múltiplas threads é o fato de podermos explorar o paralelismo quando executando um programa em sistemas multiprocessados; sistemas multithreaded são também úteis no contexto de grandes aplicações, pelo fato de serem concebidas como uma coleção de programas, cada qual executado em um processo separado; Pg. 8/81

9 3 Processos 3.1 Threads Introdução às Threads multithreaded systems - esta abordagem é típica em Ambiente UNIX cooperação entre programas é implementada por meio do Mecanismo IPC (InterProcess Communication). Pg. 9/81

10 3 Processos 3.1 Threads Introdução às Threads pelo fato do IPC requerer intervenção do kernel, um processo irá geralmente efetuar mudança de modo de execução ( user mode para kernel mode ) => mudança do mapa de memória (MMU) bem como decarga de dados da TLB. Finalmente, uma boa razão em Engenharia de Software para usar threads é o fato de que muitas aplicações podem ser facilmente estruturadas como uma coleção de threads cooperantes. Pg. 10/81

11 3 Processos 3.1 Threads Introdução às Threads Thread Implementation há duas abordagens: User Level Threads (ULT) e Kernel Level Threads (KLT). User Level Threads executada inteiramente no modo usuário. todas as operações são executadas inteiramente no modo usuário => implementações podem ser extremamente eficientes; serviços providos pelo kernel em nome do processo que suporta a thread => se o kernel bloquear a thread => processo é bloqueado; threads são utilizadas quando há muitos eventos externos (bloqueio de threads com base em eventos) => se o kernel não distinguir as threads não há como suportar eventos entre as mesmas. Pg. 11/81

12 3 Processos 3.1 Threads Introdução às Threads Kernel Level Threads executada inteiramente no modo kernel, ou seja, todas as operações se comportam como system calls operações que bloqueiam a thread não mais são um problema kernel dispara um outra thread para atender o mesmo processo; tratamento de eventos externos kernel, responsável por tratar todos os eventos, escalona a thread associada ao evento; problema é (pode ser) a perda de eficiência toda operação de thread requer interrupção (trap) do kernel. Solução: união dos dois conceitos, normalmente referenciado como lightweight processes (LWP). significado tradicional (Unix System V / Solaris) executa no espaço do usuário em cima de uma única thread do kernel e compartilha os recursos e espaço de endereçamento com outros LWPs dentro do mesmo processo. Pg. 12/81

13 3 Processos 3.1 Threads Introdução às Threads Thread Implementation há duas abordagens: User Level Threads (ULT) e Kernel Level Threads (KLT). Pg. 13/81

14 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Threads - possibilitam o bloqueio da chamada de sistema sem o efetivo bloqueio de todo o processo que as suporta. esta propriedade torna as threads particularmente atrativas em sistemas distribuídos por tornar mais simples a comunicação; ou seja, threads possibilitam a manutenção de múltiplas conexões lógicas ao mesmo tempo (e.g., clientes multithreaded, servidores multithreaded ). na sequência discutiremos clientes e servidores multithreaded Pg. 14/81

15 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Multithreaded Clients para proporcionar alto grau de transparência, sistemas distribuídos que operam em redes amplas, devem esconder a demora na troca de mensagens; modo usual para esconder a latência de comunicação é executar outras tarefas logo após iniciar uma comunicação (e.g., troca de mensagens). e.g., Cliente Web arquivos podem ser descarregados através de várias threads, cada uma executando uma requisição http... uma vez obtido os arquivos, o browser pode apresentá-los. Pg. 15/81

16 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Multiple Request/Response Calls cliente invoca várias chamadas simultaneamente através de várias threads; na sequência, aguarda pelos resultados. se as chamadas forem atendidas por diferentes servidores, o tempo para download é bem menor por outro lado, exige suporte do cliente ao paralelismo real de fluxos ( streams ). alternativas para melhorar a performance: thread mais barato que criar um processo; servidores com múltiplas threads tiram proveito dos multiprocessadores; escondendo a latência da rede atender a uma nova requisição enquanto uma requisição anterior está sendo completada. Pg. 16/81

17 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Multithreaded Servers - não somente simplifica o código, mas facilita o desenvolvimento de servidores que exploram o paralelismo para atingir alto desempenho até mesmo em sistemas monoprocessados. Pg. 17/81

18 3 Processos 3.1 Threads Threads e Sistemas Distribuídos e.g., considere um servidor de arquivo que ocasionalmente é bloqueado para esperar pelo disco (operação de I/O); dois projetos/abordagens são possíveis: servidor de arquivo multithreaded ; servidor de arquivo single threaded. que análise você faz destas abordagens?! que vantagens e desvantagens há em cada uma das abordagens?! Há alguma outra abordagem?! executar o servidor de arquivo com uma máquina de estados finitos!! Pg. 18/81

19 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Máquina de Estado Finito (Finite State Machine - FSM) nesta abordagem o servidor utiliza chamadas não bloqueantes para enviar e receber (replay/send), ou seja, para toda mensagem enviada/recebida (replay/request) o estado da solicitação é explicitamente salvo em tabelas para posteriormente ser recuperado. Pg. 19/81

20 3 Processos 3.1 Threads Threads e Sistemas Distribuídos Qual a melhor estrutura? em servidores com altas demandas de entrada/saída, utiliza-se simplesmente chamadas bloqueantes pois a estrutura dos servidores pode ser simplificada; programas com suporte a múltiplas threads tendem a ser menores e mais fáceis de serem compreendidos em razão do controle de fluxo simplificado. Pg. 20/81

21 3 Processos 3.2 Virtualização 3.2 Virtualização Processos e Threads possibilitam a concepção de programas que se comportam como se fossem executados simultaneamente, ou seja, se rapidamente chaveados cria-se a ilusão do paralelismo. resource virtualization - camada de abstração entre o hardware (processador, memória, disco, conexão, etc.) e a camada logo acima que consome estes recursos (e.g., aplicações). objetivo é prover a separação do que é real e de fato está disponível do que será apresentado para o usuário final. Pg. 21/81

22 3 Processos 3.2 Virtualização Virtualização em Sistemas Distribuídos Na prática, todo sistema computacional (distribuído) disponibiliza uma interface de programação no nível mais alto (Fig. a) em essência, virtualização estende ou substitui a interface tal que possa imitar o comportamento de um outro sistema (Fig. b). Pg. 22/81

23 3 Processos 3.2 Virtualização Virtualização em Sistemas Distribuídos 1970s - introdução da virtualização foi uma necessidade de executar sistemas legados em hardware de mainframes ; software não incluia somente aplicações, mas de fato o próprio sistema operacional para o qual o software foi projetado. Nas décadas seguintes, o cenário mudou em razão: hardware tornou-se mais barato; computadores com maior suporte computacional; nro de sistemas operacionais diminuiu; ou seja, virtualização tornou-se um problema menor. Pg. 23/81

24 3 Processos 3.2 Virtualização Virtualização em Sistemas Distribuídos 1990s - cenário no qual a virtualização é retomada. enquanto hardware e software de camadas mais baixas mudam razoavelmente rápido, software em camadas de alto nível de abstração são mais estáveis; ou seja, software legados não mais podem ser mantidos no mesmo passo das plataformas para as quais foram construídos. Papel da Virtualização auxilia na portabilidade de interfaces legadas para a nova plataforma bem como dá abertura para uma grande classe de aplicações correntes. Virtualização oferece suporte a uma diversidade de plataformas e máquinas, permitindo que cada aplicação seja executada na sua própria máquina virtual com bibliotecas e sistema operacional. Pg. 24/81

25 3 Processos 3.2 Virtualização Arquiteturas de Máquinas Virtuais Virtualização pode ocorrer em diferentes níveis, mas é fortemente dependente das interfaces disponibilizadas pelos componentes; geralmente, um sistema computacional disponibiliza quatro diferentes tipos de interfaces. Pg. 25/81

26 3 Processos 3.2 Virtualização Arquiteturas de Máquinas Virtuais machine instructions - interface entre hardware e software consistindo de instruções de máquina que podem ser invocadas por qualquer programa; privileged machine instructions - interface entre hardware e software consistindo de instruções de máquinas que podem ser invocadas por programas com privilégio; system calls - interface entre sistema operacional e aplicação consistindo de chamadas de sistema do sist. operacional; library calls - interface que consiste de chamadas de bibliotecas, geralmente formada pelo que é conhecido por application programming interface. Pg. 26/81

27 3 Processos 3.2 Virtualização Arquiteturas de Máquinas Virtuais Essência da Virtualização imitar o comportamento das interfaces, independente de onde estejam na arquitura de software.... virtualização vem se tornando incrivelmente importante no que tange a confiabilidade e segurança em sistemas distribuídos,... justificativa - possibilitam a isolação completa da aplicação e do seu ambiente, assim, uma falha causada por um erro ou por um ataque não irá afetar a máquina como um todo. Abordagens para prover Virtualização: Process Virtual Machine Virtual Machine Monitor Pg. 27/81

28 3 Processos 3.2 Virtualização Arquiteturas de Máquinas Virtuais Process Virtual Machine - sistema que essencialmente provê um conjunto de instruções abstrato (e.g., inst. interpretadas ou emuladas) utilizado para executar aplicações. Java Virtual Machine (JVM) Pg. 28/81

29 3 Processos 3.2 Virtualização Arquiteturas de Máquinas Virtuais Virtual Machine Monitor - sistema implementado com uma camada que blinda o hardware original, mas oferece o conjunto completo de instruções do hardware como uma interface. Vmware; VirtualBox Pg. 29/81

30 3 Processos 3.3 Clientes 3.3 Clientes Discutimos nas seções prévias o Modelo Cliente/Servidor, seus papéis e como interagem um com o outro. na sequência, discutiremos a anatomia do Cliente e na próxima seção a anatomia do Servidor. Pg. 30/81

31 3 Processos 3.3 Clientes Interface do Usuário Máquina Cliente tem como principal função oferecer os meios pelos quais usuários interagem como servidores remotos; grosseiramente, há duas abordagens através das quais estas interações são suportadas: Networked Application with its own Protocol General Solution to allow Access Pg. 31/81

32 3 Processos 3.3 Clientes Interface do Usuário Networked Application with its own Protocol - para cada serviço remoto, o cliente contempla em separado um componente que contacta o serviço remoto através da rede; tudo é processado e armazenado no servidor. Pg. 32/81

33 3 Processos 3.3 Clientes Interface do Usuário e.g., Agenda em um PDA Personal Digital Assistant de Usuário que deseja sincronizar seus dados em um repositório remoto;... neste caso um protocolo no nível de aplicação irá manipular a sincronização dos dados (como apresentado na Fig. abaixo). Pg. 33/81

34 3 Processos 3.3 Clientes Interface do Usuário General Solution to allow Access - acesso direto aos serviços remotos através de interfaces convenientes de usuário.... máquina cliente não tem necessidade de armazenar e nem mesmo manter um protocolo dependente da aplicação;... esta abordagem ( thin-client approach ) vem recebendo mais atenção na medida que dispositivos móveis vem se tornando mais sofisticados e a conectividade na Internet aumentando. Pg. 34/81

35 3 Processos 3.3 Clientes Interface do Usuário General Solution to allow Access - acesso direto aos serviços remotos através de interfaces de usuário convenientes.... máquina cliente é utilizada apenas como terminal. Pg. 35/81

36 3 Processos 3.3 Clientes Interface do Usuário X Window System - utilizado para controlar terminais mapeados por bit, tais como: monitor, teclado e mouse ; pode ser vista como parte do sistema operacional que controla o terminal coração do sistema (X Kernel). Pg. 36/81

37 3 Processos 3.3 Clientes Interface do Usuário X Window System - aspecto interessante é o de que X Kernel e Aplicações X não necessariamente residem na mesma máquina; X Kernel contém todos os drivers para terminanis específicos e, normalmente, é altamente dependente do hardware. X Protocol protocolo de comunicação no nível de aplicação pelo qual uma instância Xlib pode trocar dados e eventos com X Kernel, ou seja, X Kernel reage aos eventos de teclado ou mouse enviando pacotes de evento para o Xlib. Várias aplicações podem se comunicar ao mesmo tempo com o X Kernel, mas uma o faz com permissões especiais (Window Manager) - look and feel do display. Pg. 37/81

38 3 Processos 3.3 Clientes Lado Cliente para Trans. de Distribuição Em muitos casos, o software Cliente contempla mais do que apenas Interface de Usuário, p.ex., parte do nível de dados e de processamento podem ser executados no lado cliente;... nestes casos a interface do usuário é relativamente pequena em contraste com o processamento e comunicação. além da interface do usuário e software relacionado à aplicação, o lado cliente compreende componentes para oferecer transparência de distribuição. idealmente, um cliente não deveria estar ciente que está se comunicando com um processo remoto; já em servidores, a distribuição é frequentemente menos transparente por razões de desempenho e correção. Pg. 38/81

39 3 Processos 3.3 Clientes Lado Cliente para Trans. de Distribuição transparência de acesso geralmente contemplada através da geração de um apêndice no cliente a partir da interface do servidor, ou seja, da definição do que o servidor irá oferecer.... o apêndice ( stub ) disponibiliza a mesma interface disponível no servidor, mas esconde as possíveis diferenças de arquitetura de máquina bem como de comunicação; transparência de acesso geração de um apêndice do lado cliente é dependente da interface que o servidor oferece. Pg. 39/81

40 3 Processos 3.3 Clientes Lado Cliente para Trans. de Distribuição transparência de localização e migração permitir que o lado cliente do software possa rastrear a localização do servidor;... nestes casos é crucial a utilização de um conveniente sistema de nomes que possibilite a localização. Pg. 40/81

41 3 Processos 3.3 Clientes Lado Cliente para Trans. de Distribuição transparência de replicação múltiplas invocações podem ser tratadas pelo apêndice ( stub ) no cliente.... lado cliente coleta de forma transparente todas as respostas e repassa uma única resposta à aplicação. Pg. 41/81

42 3 Processos 3.3 Clientes Lado Cliente para Trans. de Distribuição transparência de falha mascarar falhas de comunicação e de servidor através do middleware do cliente.... middleware do cliente pode ser configurado para repetidamente reestabelecer a conexão com o servidor, ou talvez, tentar um outro servidor após n tentativas. transparência de concorrência pode ser tratada através de servidores especiais intermediários especiais monitores de transações o que requer menor suporte do cliente. transparência de persistência frequentemente tratada inteiramente no servidor por se tratar de armazenamento não volátil para recuperação posterior, caso necessário. Pg. 42/81

43 3 Processos 3.4 Servidores 3.4 Servidores servidor processo que implementa serviço(s) específico(s) em nome de um coleção de clientes e normalmente são organizados de modo que aguarda requisição(ões) do(s) cliente(s).... em essência o servidor aguarda a requisição de um cliente e na sequência garante que a mesma seja atendida, para em seguida esperar/aguardar pela próxima requisição;... para estabelecer a comunicação, clientes enviam requisições para um end point - (também chamado port ) na máquina onde o processo servidor está executando.... na prática, o mapeamento é 1-para-1 entre porta e serviço. Pg. 43/81

44 3 Processos 3.4 Servidores Aspectos Gerais de Projeto Classificação/Categorização dos Servidores: interactive servers - próprio servidor trata a requisição e, se necessário, retorna a resposta para o cliente que requisitou; concurrent servers - não manipula diretamentea a requisição, mas a repassa para um outro processo/thread; processo/thread passa o ser o responsável por responder e, na sequência, servidor fica a espera da próxima requisição; e.g., servidor com suporte para múltiplas threads ou processos, onde um processo é instanciado para atender a requisição. e.g., Sistema UNIX thread ou processo que trata a requisição é responsável por retornar a resposta ao cliente requisitante. Pg. 44/81

45 3 Processos 3.4 Servidores Aspectos Gerais de Projeto Como um Cliente contacta um Servidor?! normalmente clientes enviam requisições para end points ou ports que, normalmente estão associados a serviços bem conhecidos. ftp-data 20 File Transfer [Default Data] ftp 21 File Transfer Control telnet 23 Telnet 24 any private mail service smtp 25 Simple Mail Transfer login 49 Login Host Protocol no entanto, há serviços que não requerem um end point (já atribuído), e.g., time-of-day server. Pg. 45/81

46 3 Processos 3.4 Servidores Aspectos Gerais de Projeto daemon mantém informações do end point corrente para cada serviço implementado pelo servidor local; cliente inicialmente contacta o daemon para requerer o end point e na sequência contacta o servidor específico. Pg. 46/81

47 3 Processos 3.4 Servidores Aspectos Gerais de Projeto... daemon mantém informações do end point corrente para cada serviço implementado pelo servidor local;... neste contexto, implementar cada serviço por um servidor em separado (processo em separado) representa alto custo de recursos;... outro cenário semelhante é o de vários servidores executando simultaneamente, muitos deles esperando por uma requisição;... em ambos os casos, é mais eficiente manter um único servidor (possivelmente maior em capacidade - superserver ) ouvindo cada um dos end points associados a cada um dos serviços; e.g., inetd (Internet Service Daemon) é um superserver daemom no UNIX responsável por gerenciar serviços Internet tais como: FTP, POP3 e Telnet. Pg. 47/81

48 3 Processos 3.4 Servidores Aspectos Gerais de Projeto superservers - servidores que ouvem em diversas portas, ou seja, oferece vários serviços independentes; é mais eficiente ter um único superserver ouvindo cada end point associado a um serviço específico. Pg. 48/81

49 3 Processos 3.4 Servidores Aspectos Gerais de Projeto superservers - servidores que ouvem em diversas portas, ou seja, oferece vários serviços independentes; e.g., inetd (Internet Service Daemon) é um superserver daemom em Sistemas UNIX responsável por gerenciar serviços Internet tais como: FTP, POP3 e Telnet.... assim quando um segmento TCP ou UDP chega para uma porta destino em particular, inetd instancia o servidor apropriado para tratar a conexão em curso; vantagem - para serviços que não espera que sejam executados com alta carga, este método é mais eficiente, pois o servidor específico é executado somente quando necessário. Pg. 49/81

50 3 Processos 3.4 Servidores Aspectos Gerais de Projeto Aspecto de Projeto Interrupção de Servidor: e.g., como interromper o download de arquivo grande de um Servidor FTP?!... finalizar abruptamente a aplicação?! out-of-band data - permite o tratamento de interrupções na comunicação, ou seja, dados out-of-band serão tratados pelo servidor antes de algum outro dado do cliente. stateless server - não mantém informação de estado dos seus clientes e pode alterar o seu próprio estado sem necessidade de informar a qualquer cliente que houve mudanças. e.g., Servidor Web é um bom exemplo de servidor sem estado, pois o mesmo simplesmente responde a requisições HTTP. Pg. 50/81

51 3 Processos 3.4 Servidores Aspectos Gerais de Projeto... uma forma particular de projeto stateless é quando o servidor mantém o que é conhecido como soft state - mantém-se estado em favor de um cliente, mas por um tempo limitado. stateful servers - em contraste com os servidores stateless, estes últimos geralmente mantém as informações por longos períodos, ou seja, as informações são persistentes. e.g., imagine um servidor de arquivo que permite ao cliente manter a cópia local de um arquivo por razões de desempenho. Obs.: melhoria de performance sobre servidores stateless é frequentemente um importante benefício de um projeto stateful! Pg. 51/81

52 3 Processos 3.4 Servidores Aspectos Gerais de Projeto e.g., imagine um servidor de arquivo que permite ao cliente manter a cópia local de um arquivo, até mesmo para desempenho de operações de atualização.... esta abordagem pode melhorar o desempenho de operações de leitura/escrita como percebido pelo cliente;... este servidor poderá manter uma tabela com entradas para client, file de modo a rastrear que cliente tem permissão de atualização sobre qual arquivo;... se o servidor sofre alguma pane, o mesmo terá que recuperar a tabela de cliente, file ou, diferentemente, não poderá garantir que as mais recentes atualizações de um dado arquivo; esta abordagem melhora a performance das operações. Pg. 52/81

53 3 Processos 3.4 Servidores Clusters de Servidores server cluster - coleção de máquinas conectadas através de uma rede, onde cada máquina executa um ou mais servidores. os clusters de servidores que iremos considerar aqui são aqueles cujas máquinas estão interconectadas por uma LAN; normalmente, clusters de servidores estão organizados em 03 camadas como qualquer arquitetura multicamadas. e.g., muitos clusters de servidores contém servidores dedicados para o processamento de aplicações. Pg. 53/81

54 3 Processos 3.4 Servidores Clusters de Servidores Organização Geral server cluster - logicamente organizados em três camadas: logical switch ; application e database system. Pg. 54/81

55 3 Processos 3.4 Servidores Clusters de Servidores Organização Geral... no entanto, nem todos os clusters de servidores seguem esta separação estrita (03 camadas): logical switch ; application servers e database system. e.g., fluxo de mídia por meio de cluster de servidores normalmente acomoda arquitetura em duas camadas, pois cada máquina se comporta como um servidor dedicado de mídia. e.g., quando um cluster de servidores oferece muitos serviços, pode acontecer que diferentes máquinas executem diferentes servidores de aplicação e, assim, é necessário que o switch seja capaz de distinguir os serviços para encaminhar as requisições. Pg. 55/81

56 3 Processos 3.4 Servidores Clusters de Servidores Organização Geral aspecto de projeto de cluster de servidores esconder o fato de que há múltiplos servidores, ou seja, aplicações cliente não precisam conhecer nada acerca da organização do cluster. se considerarmos aspectos como escalabilidade e disponibilidade, um cluster de servidores deve contemplar muitos pontos de acesso, com cada ponto de acesso implementado por uma máquina dedicada e em separado; um modo padrão de acessar um cluster de servidores é estabelecer uma conexão TCP e enviar requisições da camada de aplicação como parte de um sessão. Pg. 56/81

57 3 Processos 3.4 Servidores Clusters de Servidores Organização Geral TCP handoff mecanismo de repasse de responsabilidade no qual um servidor que recebe uma solicitação de conexão a repassa para uma de suas réplicas; cabe a esta máquina o dever de responder ao solicitante da requisição, cuja requisição foi repassada. Pg. 57/81

58 3 Processos 3.4 Servidores Clusters de Servidores Organização Geral TCP handoff - as it is based on passing the duty of servicing the TCP connection to the selected replica. Pg. 58/81

59 3. Processos 3.4 Servidores Clusters de Servidores Servidores Distribuídos Como discutido anteriormente, quando cluster de servidores disponibilizam um único ponto de acesso, esconde-se do cliente como o mesmo está organizado (vantagem);... mas por outro, se este ponto de acesso falha, o cluster torna-se indisponível (desvantagem); Este problema pode ser eliminado oferendo vários pontos de acesso bem como os seus respectivos endereços;... e.g., DNS (Domain Name System) pode retornar vários endereços, todos pertencentes ao mesmo host.... ainda assim, nesta abordagem, será necessário novas tentativas pelos clientes, se um dos endereços falha. Pg. 59/81

60 3. Processos 3.4 Servidores Clusters de Servidores Servidores Distribuídos O que pode ser melhorado? adição de estabilidade e flexibilidade neste caso tanto pelo cliente quanto pelo servidor; estabilidade manutenção do ponto de acesso por um longo período; flexibilidade flexibilidade na configuração do cluster de servidores. servidor distribuído - nada mais do que um conjunto dinâmico de máquinas, como pontos de acesso que podem variar mas que aparecem para o mundo exterior como um máquina única.... clientes podem se beneficiar deste modelo em razão da estabilidade, robustez e alto desempenho do servidor.... vamos nos concentrar como um ponto de acesso estável pode ser mantido em um sistema distribuído?! Pg. 60/81

61 3. Processos 3.4 Servidores Clusters de Servidores Servidores Distribuídos resposta - podemos utilizar serviços de rede disponíveis como a suporte a mobilidade no IPv6;... um nó móvel está associado a rede nativa ( home network ) e da qual recebeu um endereço estável ( home address - HoA);... a rede nativa ( home network ) tem um roteador conhecido por home agent - responsável pelo tráfego para o nó móvel ( mobile node ) quando o mesmo está fora da rede nativa;... quando um nó móvel se associa a rede que está visitando ( foreign network ), ele irá receber um endereço temporário ( care-of address CoA) através do qual é atingível. Pg. 61/81

62 3. Processos 3.4 Servidores Clusters de Servidores Servidores Distribuídos Este princípio pode ser usado para oferecer um endereço estável para o Servidor Distribuído e.g., um único endereço de contato. Pg. 62/81

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

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

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

Leia mais

Distributed Systems Principles and Paradigms

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

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais

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

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

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

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

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

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Introdução Aplicações em rede de computadores As redes de computadores atualmente estão em todos os lugares. Ex.: Internet, redes de telefones móveis, redes corporativas, em fábricas,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br Tópicos da Aula Apresentação do curso Introdução Definição de sistemas distribuídos Exemplo Vantagens e desvantagens Convergência digital Desafios Visão

Leia mais

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

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

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Referências Caracterização de Sistemas Distribuídos Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Capítulo 9 Seções 9.1 a 9.3 Distributed Systems: concept

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

Sistemas Distribuídos

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

Leia mais

Infra-estrutura de Software

Infra-estrutura de Software Infra-estrutura de Software Apresentação Ciência da Computação Professor: Carlos Ferraz Monitoria: em formação Horários: Quartas e Sextas, 08-10h (D-005) Laboratório: G4, normalmente URL: http://www.cin.ufpe.br/~cagf/if677/2013-1

Leia mais

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos.

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Processes Chapter 3 PROCESSOS O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Essa comunicação acontece entre processos e eles são fundamentais em SDs. O conceito de processos

Leia mais

Sistemas Distribuídos

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

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

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

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

SISTEMAS DISTRIBUIDOS

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

Leia mais

Sistema de Arquivos Distribuídos

Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos Sistema de Arquivos Distribuídos A interface cliente para um sistema de arquivos é composta por um conjunto de primitivas e operações em arquivos (criar, apagar, ler, escrever)

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Processos e Threads (partes I e II)

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

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Introdução Frederico Madeira LPIC 1, LPIC 2, CCNA fred@madeira.eng.br www.madeira.eng.br Referências - Coulouris, G.;Dollimore, J.; Kindberg, T.; SISTEMAS DISTRIBUIDOS CONCEITOS E

Leia mais

Arquiteturas de Software Problemas e soluções

Arquiteturas de Software Problemas e soluções Arquiteturas de Software Problemas e soluções Marcos Monteiro, MBA, ITIL V3 http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br Cliente - Servidor Cada instância de um cliente pode enviar requisições

Leia mais

INTERNET = ARQUITETURA TCP/IP

INTERNET = ARQUITETURA TCP/IP Arquitetura TCP/IP Arquitetura TCP/IP INTERNET = ARQUITETURA TCP/IP gatewa y internet internet REDE REDE REDE REDE Arquitetura TCP/IP (Resumo) É útil conhecer os dois modelos de rede TCP/IP e OSI. Cada

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s: Tecnologia em Redes de Computadores Redes de Computadores Professor: André Sobral e-mail: alsobral@gmail.com Conceitos Básicos Modelos de Redes: O O conceito de camada é utilizado para descrever como ocorre

Leia mais

Redes. Pablo Rodriguez de Almeida Gross

Redes. Pablo Rodriguez de Almeida Gross Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

Leia mais

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Clientes e Servidores

Clientes e Servidores Clientes e Servidores September 29, 2009 Sumário Definição Localização do Servidor/Objectos Transparência da Distribuição Concorrência Preservação de Estado no Servidor Avarias Adaptação ao Canal de Comunicação

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído 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

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc. Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software Prof. MSc. Hugo Souza Continuando nossas aulas relativas ao Módulo 1, veremos a seguir

Leia mais

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Aula 1 Caracterização de Sistemas Distribuídos Prof. Dr. João Bosco M. Sobral mail: bosco@inf.ufsc.br - página: http://www.inf.ufsc.br/~bosco Rodrigo Campiolo mail: rcampiol@inf.ufsc.br - página: http://ww.inf.ufsc.br/~rcampiol

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

Leia mais

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

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

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

Leia mais

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos Aula 23 Distribuídos SOs de Rede Em sistemas operacionais de rede você sabe quando é local e quando é remoto. Assim, o trabalho não muda, com exceção de comandos para acesso remoto: - telnet - ftp - etc.

Leia mais

Balanceamento de carga: Conceitos básicos

Balanceamento de carga: Conceitos básicos Balanceamento de carga: Conceitos básicos Introdução A tecnologia de balanceamento de carga está viva e está bem; de fato, ela é a base sobre a qual operam os application delivery controller (ADCs). A

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas ATIVIDADE 1 MÁQUINAS VIRTUAIS Existem hoje diversas tecnologias e produtos para virtualização de computadores e ambientes de execução, o que pode gerar uma certa confusão de conceitos. Apesar disso, cada

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Software em Sistemas Distribuídos Aplicativo ou Sistema Operacional Sincronismo Interação Controles Um sistema operacional moderno provê dois serviços fundamentais para o usuário

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um

Leia mais

Sistemas distribuídos:comunicação

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

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP HTTP (Hypertext Transfer Protocol ) Protocolo usado na Internet para transferir as páginas da WWW (WEB). HTTPS (HyperText Transfer

Leia mais

Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas

Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas Conhecer os modelo OSI, e TCP/IP de cinco camadas. É importante ter um padrão para a interoperabilidade entre os sistemas para não ficarmos

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais

Leia mais

SISTEMAS DISTRIBUÍDOS (1. CICLO)

SISTEMAS DISTRIBUÍDOS (1. CICLO) SISTEMAS DISTRIBUÍDOS (1. CICLO) Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

Infra-Estrutura de Software. Introdução. (cont.)

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

Sumário. Clientes e Servidores. Localização do Servidor/Objectos. Clientes e Servidores. Definição. Localização do Servidor/Objectos.

Sumário. Clientes e Servidores. Localização do Servidor/Objectos. Clientes e Servidores. Definição. Localização do Servidor/Objectos. Sumário Definição Clientes e Servidores Localização do Servidor/Objectos Segurança Concorrência September 29, 2008 Preservação de Estado no Servidor Avarias Adaptação ao Canal de Comunicação C/S e Arquitectura

Leia mais

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro O MySQL Cluster é versão do MySQL adaptada para um ambiente de computação distribuída, provendo alta disponibilidade e alta redundância utilizando

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955 O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Universidade Federal do Pará Campus Universitário de Marabá Curso de Bacharelado em Sistemas de Informação Sistemas Distribuídos Prof.: Warley Junior warleyjunior05@gmail.com Plano de Ensino. Turma SI

Leia mais

VI - Introdução aos Sistemas Operacionais

VI - Introdução aos Sistemas Operacionais VI - Introdução aos Sistemas Operacionais Consiste de um ou um conjunto de programas que compõem o software básico do computador e cuja finalidade é a de executar os programas aplicativos e de servir de

Leia mais

Sistemas Distribuídos Aula 1 Introdução

Sistemas Distribuídos Aula 1 Introdução Sistemas Distribuídos Aula 1 Introdução 35T34 3B2 Programa Introdução. Conceitos de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Processos e processadores

Leia mais

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões FACSENAC ECOFROTA Documento de Projeto Lógico de Rede Versão:1.5 Data: 21/11/2013 Identificador do documento: Projeto Lógico de Redes Versão do Template Utilizada na Confecção: 1.0 Localização: FacSenac

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II INTERNET Protocolos de Aplicação Intranet Prof: Ricardo Luís R. Peres As aplicações na arquitetura Internet, são implementadas de forma independente, ou seja, não existe um padrão

Leia mais

Visão do Usuário da DSM

Visão do Usuário da DSM Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1 Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia (rogerio@fct.unesp.br)

Leia mais

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos Middleware Camada Intermediária de Suporte a Sistemas Distribuídos Alternativas de comunicação entre processos (IPC) Mecanismos de IPC tradicionais (ou de baixo nível) Memória compartilhada, filas de mensagens,

Leia mais

SISTEMAS OPERACIONAIS

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

Leia mais

Sistemas Operacionais 2014 Sistemas Distribuídos. Alexandre Augusto Giron

Sistemas Operacionais 2014 Sistemas Distribuídos. Alexandre Augusto Giron Sistemas Operacionais 2014 Sistemas Distribuídos Alexandre Augusto Giron ROTEIRO Conceitos Hardware/Software para Sistemas Distribuídos Estrutura de Rede Objetos Distribuídos Sistemas de Arquivos Distribuídos

Leia mais

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

Leia mais