Discentes: Docentes: Egidio, Nilton Dr. Munguanaze Machava, Elias eugenio Macuvele, Henriques Baptista Ronda, Gorbatchov
Maputo, Setembro de 2014
ndice
Indice.............................................................................................. Error! Bookmark not defined. Introduo ....................................................................................................................................... 3 Objectivos: ...................................................................................................................................... 4 Geral ............................................................................................................................................ 4 Especficos .................................................................................................................................. 4 1.Conceitos de software .................................................................................................................. 5 1.1.Sistemas operativos distribudos ........................................................................................... 6 SO de nico processador ......................................................................................................... 6 Sistema operativo de mltiplos processadores ........................................................................ 8 Sistema Operativo de mltiplos computadores ....................................................................... 8 1.2. Sistema Operativo em Rede ............................................................................................... 11 1.3.Middleware.......................................................................................................................... 14 Tipos de midleware- .............................................................................................................. 15 Servios do midleware ........................................................................................................... 16 Middleware e Abertura- ......................................................................................................... 17 Comparao entre Sistemas ................................................................................................... 19 Concluso ...................................................................................................................................... 20 Bibliografia ................................................................................................................................... 21
Introduo Segundo (Tanembaum & Steen, 2002) um sistema distribudo uma coleco de computadores independentes que aparentam para os seus usurios ser um nico sistema coerente. Onde em relao ao hardware as mquinas so autnomas, e quanto ao software os usurios pensam que esto usufruir de um sistema nico. Este por ser um programa roda por geralmente roda por cima de outras camadas de software e hardware. No presente trabalho trataremos da camada de software que se encontra logo asseguir, por debaixo do sistema distribudo.
Objectivos: Geral Conhecer os sistemas operativos para computadores distribudos para entender os sistemas distribudos.
Especficos Abordar os seguintes temas Sistemas Operativos Distribudos Sistemas Operativos de Rede Middleware Comparao entre os diferentes sistemas
Metodologia Diviso de trabalho pelos membros do grupo e Pesquisa literria
1.Conceitos de software Sistemas distribudos tm alguns pontos em comum com um sistema operativo porque um sistema distribudo funciona como um gerente de recursos gerindo o hardware subjacente permitindo que mltiplos usurios e aplicaes compartilhem recursos como CPUs, memrias, dispositivos perifricos, a rede e a informao. Eles procuram esconder a complexidade e a natureza homognea do hardware subjacente providenciando uma mquina virtual que facilita a execuo de aplicaes. Para entender os sistemas distribudos e olhar-se- por agora para os sistemas operativos para computadores distribudos. Segundo (Tanembaum & Steen, 2002) estes podem ser divididos em duas categorias: -Sistema fortemente acoplado neste o sistema operativo procura manter uma nica e global vista dos recursos os quais gere. Este e normalmente chamado Sistema operativo distribudo. Que normalmente usado para gerir mltiplos processadores e mltiplos computadores homogneos. O objectivo e esconder a complexidade tal como um SO de nico processador esconde a complexidade da gerncia de hardware compartilhado por mltiplos processos. -Sistema fracamente acoplado - esse pode ser imaginado como uma coleco de computadores, onde em cada computador executado o seu prprio sistema operativo. Este normalmente chamado de Sistema Operativo de Rede (Network OS) destinando-se a sistemas de computadores mltiplos homogneos. Este tem muita semelhana com o SO de nico processador, a diferena esta no facto de os servios locais serem disponibilizados para clientes remotos. Contudo esses sistemas operativos cooperam entre si para disponibilizar os seus servios e recursos para os outros. nfase de ateno deve ser dada aos servios dos Sistemas operativos de Rede para que possa-se dar melhor suporte a distribuio transparente, o que aponta para o assunto middleware.
1.1.Sistemas operativos distribudos Segundo (Tanembaum & Steen, 2002) existem 2 tipos de SOD (Sistemas operativos Distribudos): SO de mltiplos processadores - que gere os recursos de um processadores mltiplos. SO de mltiplos computadores - desenvolvido para mltiplos computadores homogneos A funcionalidade dos SODs na sua essncia a mesma em relao a um SO de nico processador a diferena reside no facto de um SOD dar-lhe com processadores mltiplos. Por isso entender o funcionamento de um SO de nico processador e proveitoso para entender um SOD.
SO de nico processador O objectivo desses sistemas permitir usurios e aplicaes uma facilidade de partilha de recursos como CPUs, memorias principais, discos e dispositivos perifricos. Afirma-se que um SO implementa uma maquina virtual oferecendo facilidades de multitasking as aplicaes. Devendo sempre apesar do multitasking garantir a segurana de Dados, neste caso olhando para ao aspecto integridade de dados. Por isso um SO deve estar no total controlo de como seus recursos de hardware so usados e compartilhados. Por isso muitos CPUs suportam pelo menos dois modos de operao: -Modo Kernel- nesse modo permitida a execuo de todas as instrues, toda a memria e coleco de registos so acessveis durante a execuo. Este acontece quando executado cdigo do prprio sistema operativo. Modo usurio - nesse existe uma restrio para o acesso a memria e registos. A troca para um desses modos de operao d-se atravs das chamadas de Sistema que so implementadas pelo prprio SO. Isto levou a organizao na qual virtualmente todo o cdigo do sistema operativo executado no modo kernel. Resultando num programa monoltico correndo num nico espao de memoria. Sistemas Operativos Monolticos no so uma boa ideia na perspectiva de abertura, engenharia de software, confiabilidade, e manuteno. Uma abordagem mais flexvel a organizao do sistema operativo em duas partes: -A primeira consiste de uma coleco de mdulos para gerir o hardware mas que pode ser executado de forma igual no modo usurio. -A segunda parte consiste num pequeno microkernel contendo apenas o cdigo que deve ser executado no modo kernel. Mas na prtica este apenas precisa de ter o cdigo para manipular registos, escalonar o uso da cpu pelos processos, manipular o MMU (unidade de gerncia da memoria), e capturar interrupes de hardware, etc. Esta abordagem possui a organizao abaixo.
Microkernel Hardware
Figura 1:Abordagem para o Microkernel (Tanembaum & Steen, 2002)
Aplicao do usurio
Mdulo de memria
Mdulo de processo
Mdulo de Ficheiros No h troca directa de dados entre os mdulos Interface do sistema operativo Chamadas de sistema Modo kernel Modo usurio Exixtem muitos benefcios em usar microkernels, um deles a flexibilidade.
Sistema operativo de mltiplos processadores Objectivo importante fazer com que o nmero de processadores fique transparente para a aplicao. Neste usado o multitasking e deve-se garantir a segurana dos dados. Um dos factores importantes a ser observado a integridade de dados ao impedir que mltiplos processadores acedam os mesmos dados nos mesmos locais de memoria ao mesmo tempo. Isto feito a partir de primitivas de sincronizao. Duas destas primitivas so os semforos e monitores. Sistema Operativo de mltiplos computadores Segundo (Tanenbaum & Van Steen, 2002) os sistemas operativos em mltiplos computadores possuem uma estrutura totalmente diferente e complexa em relao aos sistemas operativos em multiprocessadores. Esta diferena reside no facto de que estas estruturas de dados para o sistema de gesto de recursos no serem facilmente partilhadas pela simples colocao na memria partilhada fisicamente. Em vez disso, o nico meio de comunicao atravs do message passing (que em portugus significa passagem de mensagens).
Figura 2:Estrutura geral do sistema operativo em mltiplos computadores
Na figura X1 pode-se ver que cada computador possui seu prprio Kernel (componente central so sistema operativo que serve de ponte entre aplicativos e processamento real de dados feito a nvel de hardware), este que contm mdulos para gerir recursos como memria, CPU, entre outros. Cada computador possui tambm um mdulo separado para manipular a comunicao entre processadores, que mandam e rebem mensagens de um computador para outro. Cada kernel uma camada comum de software que implementa o sistema operacional como uma mquina virtual de apoio a execuo de vrias tarefas em simultneo. Em outras palavras, ele fornece uma implementao completa do software de memria compartilhada. Sistemas operacionais de mltiplos computadores que no fornecem a noo de memria compartilhada apenas oferecem o message-passing primitivas entre sistemas diferentes.
Figura 3:Alternativas para blquear e tamponar em message-passing
Explicando a figura acima, apenas existem dois lugares onde as mensagens podem ser tamponadas (armazenadas no buffer), que so ou no lado do emissor o no lado do receptor. Isto leva quatro pontos de sincronizao que so pontos em um remetente ou receptor possivelmente podem blquear. Se existe buffer no lado do emissor, faz sentido bloquear o emissor apenas quando o buffer estiver cheio, como mostrado no ponto s1. Alternativamente, colocar uma mensagem em um buffer pode retornar um estado de indicao que a operao foi bem sucedida. Isto evita que o emissor seja bloqueado quando o buffer estiver cheio. Caso contrrio, quando no existe buffer do lado do emissor, h trs pontos alternativos para bloquear o emissor: a mensagen foi enviad (ponto s2), a mensagem chegou ao receptor(ponto s3) ou a mensagem foi entregue ao receptor (ponto s4). Bloquear o recetor faz sentido apenas no ponto de sincronizao s3, que pode acontecer somente quando no houver buffer no lado recetor, ou quando o mesmo buffer estiver vazio.
A relao entre bloquear, tamponar (buffering) e garantias de comunicao confivel est resumida na tabela a seguir:
Ponto de sincronizao Enviar Buffer (Tampo) Garantia de comunicao confivel Boquear emissor at o buffer nao completar Yes No necessria Boquear emissor at a mensagem ser enviada No No necessria Boquear emissor at a mensagem ser recebida No Necessria Boquear emissor at a mensagem ser entregue No Necessria Tabela 1: Relao entre bloquear, tamponar (buffering) e comunicao confivel
Muitas das questes envolvidas na construo de sistemas operativos em mltiplos computadores so igualmente importantes para qualquer sistema distribudo. A principal diferena entre sistemas operativos de mltiplos computadores e sistemas distribudos est na forma que eles geralmente assumem, que o hardware subjacente homogneo e deve ser totalmente gerenciado. Muitos sistemas distribudo, no entanto, so construdos por cima de um sistema operacional existente.
1.2. Sistema Operativo em Rede Vamos comear com software fracamente acoplado em hardware fracamente acoplado, uma vez que esta provavelmente a combinao mais comum em muitas organizaes. Um exemplo tpico uma rede de estaes de trabalho ligados por uma rede. Neste modelo, cada usurio tem uma estao de trabalho para seu uso exclusivo. Ele pode ou no ter um disco rgido. Ele definitivamente tem seu prprio sistema operativo. Todos os comandos so normalmente executados localmente, mesmo na estao de trabalho. No entanto, s vezes possvel que um usurio para fazer login em outra estao de trabalho remotamente usando um comando como mquina rlogin. O efeito desse comando transformar prpria estao de trabalho do usurio em um terminal remoto conectado na mquina remota. Comandos digitados no teclado so enviadas para a mquina remota, e sada da mquina remota exibida na tela. Para mudar para um computador remoto diferente, necessrio primeiro fazer logout e depois usar o comando rlogin se conectar a outra mquina. A qualquer instante, apenas uma mquina pode ser usada, e a seleo da mquina totalmente manual. As redes de estaes de trabalho, muitas vezes tambm tm um comando de cpia remota para copiar arquivos de uma mquina para outra. Por exemplo, um comando como: rcp mquina1: arquivo1 machine2: arquivo2 pode copiar o arquivo de arquivo1 mquina1 para machine2 e dar- lhe o nome arq2 l. Novamente aqui, o movimento de arquivos explcito e exige que o usurio estar completamente ciente de onde todos os arquivos esto localizados e onde todos os comandos esto sendo executados. Embora melhor do que nada, esta forma de comunicao extremamente primitiva e levou os projectistas de sistemas de pesquisa para formas mais convenientes de comunicao e compartilhamento de informaes. Uma abordagem fornecer um sistema de arquivos globais compartilhados acessveis a partir de todas as estaes de trabalho. O sistema de arquivos suportado por um ou mais mquinas chamadas servidores de arquivos. Os servidores de arquivos aceitar solicitaes de programas do usurio em execuo numas outras mquinas, chamados de clientes, para ler e gravar arquivos. Cada solicitao de entrada analisado e executado, e a resposta enviada de volta, como ilustrado na figura a baixo.
Figura 4: Dois clientes e um servidor em um sistema operacional de rede
Os servidores de arquivos geralmente mantm os sistemas de arquivos hierrquicos, cada um com um directrio raiz que contm os subdirectrios e arquivos. Workstations pode importar ou montar esses sistemas de arquivos, aumentando seus sistemas de arquivos locais com aqueles localizados nos servidores. Por exemplo, na figura 2, dois servidores de arquivos so mostrados. Um deles tem um directrio chamado jogos, enquanto o outro tem um directrio chamado trabalho. Esses directrios contm vrios arquivos. Ambos os clientes indicados tm montado tanto dos servidores, mas eles montara-los em lugares diferentes em seus respetivos sistemas de arquivos. Cliente 1 montou-os em seu directrio raiz, e pode a cess-los como Jogos e trabalho, respetivamente. Cliente 2, como cliente 1, montou jogos em seu diretrio raiz, mas com relao leitura de e-mails e notcias como uma espcie de jogo, criou um diretrio / games / trabalho e trabalho montada l. Consequentemente, ele pode a cessar notcias usando o caminho / games / trabalho / news ao invs de / trabalho / news. Enquanto no importa onde o cliente monta um servidor em sua hierarquia de diretrios, importante notar que diferentes clientes podem ter uma viso diferente do sistema de arquivos. O nome de um arquivo depende de onde ele est sendo a cessado a partir de, e como essa mquina montou seu sistema de arquivos. Porque cada estao de trabalho funciona de forma relativamente independente das outras, no h garantia de que todos eles apresentam a mesma hierarquia de diretrios para seus programas.
Figura 5: Diferentes clientes podem montar os servidores em diferentes lugares
O sistema operativo que usado neste tipo de ambiente deve gerenciar as estaes de trabalho individuais e servidores de arquivos e cuidar da comunicao entre eles. possvel que todas as mquinas funcionam do mesmo sistema operativo, mas isso no necessrio. Se os clientes e servidores executados em sistemas diferentes, como um mnimo que eles devem concordar com o formato e o significado de todas as mensagens que eles podem potencialmente taxas. Em uma situao como esta, em que cada mquina tem um alto grau de autonomia e h poucos requisitos de todo o sistema, as pessoas costumam falar de um sistema operacional de rede.
1.3.Middleware A camada mdia da arquitetura cliente/servidor de trs camadas pode ser implementada de vrias maneiras tais como, monitores de processamento de transaes, servidores de mensagens, etc. onde cada uma apresenta vantagens e limitaes. A esta tecnologia que implementa os vrios tipos de camadas mdias, juntamente com suas funcionalidades, d-se o nome de middleware. Middleware um software de conectividade que consiste em um conjunto de servios que permite a interao, atravs da rede, de mltiplos processos executando em uma ou mais mquinas. Middleware essencial para migrar aplicaes de mainframe para aplicaes cliente/servidor provendo comunicao atravs de plataformas heterogneas (Bray, 1998). Esse software de conectividade se localiza entre a aplicao e o sistema operativo (Bernstein, 1996). No que se refere ao modelo OSI middleware est localizado entre as camadas de aplicao e transporte. O middleware implementa seus prprios protocolos.
Figura 6- localizao do middleware na arquitetura do SD (Fonte:COULOURIS-2007)
Tipos de midleware- a) Middleware orientado a transaes Middleware orientadoTransao caracterizado por possibilitar que a interao entre componentes de um sistema distribudo ocorram no contexto de uma transao distribuda. O middleware orientado transao fornece a capacidade de gerenciar transaes em bancos de dados distribudos, sendo normalmente utilizados em aplicaes distribudas que necessitam realizar transaes coordenadas e sincronizadas atravs de mltiplos servidores de bancos de dados. Vantagens Componentes se mantm consistentes; Bastante confivel; Boa performance; Escalonamento e priorizao de solicitaes; Desvantagens Ausncia de padronizao para descrever servios Executa numa menor quantidade de plataformas Bloqueios desnecessrios b) Middleware Orientado a Mensagens (MOM) Prov suporte para comunicao persistente assncrona. Esse sistema oferece capacidade de armazenamento temporrio para mensagens, no exigindo que o emissor e o receptor estejam activos durante a transmisso da mensagem. Vantagens Suporta comunicao em grupo de forma atmica Confiabilidade Amplo suporte a protocolos de rede Desvantagens Escalabilidade e heterogeneidade limitadas Pouca portabilidade por falta de padronizao
Uso Aplicaes cuja disponibilidade da rede ou de todos os componentes no seja um problema. c) Middleware orientado a objecto (MOO) Este tipo de middleware possui todas as caractersticas do paradigma de orientao a objetos, como herana, polimorfismo e encapsulamento [Bakken 2001].O middleware orientado a objetos caracterizado por requisies a objetos remotos. Vantagens Grande suporte a heterogeneidade; Marshalling e unmarshalling automticos; Versatilidade.
Desvantagens Pouca Escalabilidade Uso Aplicaes que no precisam de grande escalabilidade
Servios do midleware Devido importncia da portabilidade de aplicaes e protocolos padronizados para possibilitar a interoperabilidade, os servios middleware tm sido alvo de esforos de padronizao. Algumas tentativas tm sido feitas por entidades pblicas, tais como, ISO e American National Standards Institute (ANSI) e outras por consrcios industriais como X/Open, Open Software Fundation (OSF), Object Management Group (OMG) e ActiveX (Microsoft). O esforo de padronizao demonstra a importncia desses servios. O propsito principal dos servios middleware permitir que uma plataforma no dependa de APIs especficas, permitindo que aplicaes executem em diferentes plataformas e incluam servios de alto nvel que escondam a complexidade de redes e sistemas distribudos. 1- Servios de Comunicao: abandonam primitivas de passagem de mensagens baseada em sockets a favor de: Chamadas de procedimentos remotos atravs de rede; Invocao de mtodos remotos; Sistemas de fila de mensagens; Comunicao com streams; Servios de notificao. 2- Servios de sistema de informao: servios que ajudam a gerenciar dados em Sistemas Distribudos: Servios de nomes; Servios de diretrio (Maquina de busca); Servios de localizao; Cache e replicao 3- Servios de Controlo: Servios para dar a aplicao controle sobre quando, onde e como aceder dados: Processamento de transaes distribudas; Migrao de cdigo. 4- Servios de Segurana: Servios de autenticao e autorizao; Servios de criptografia; Servios de auditoria
Middleware e Abertura- Sistemas distribudos modernos so geralmente construdos baseando-se na utilizao de middlewares, dessa forma tais sistemas acabam se tornando independentes do sistema operativo utilizado. Infelizmente, esta independncia frequentemente trocada por uma grande dependncia de middlewares especficos. Tais problemas esto relacionados ao fato de que os middlewares so frequentemente menos abertos do que eles anunciam. Um sistema distribudo para ser verdadeiramente aberto deve ser especificado atravs de interfaces completas. Completas significa que tudo que necessrio para a implementao de um sistema seja realmente especificado. Definies incompletas da interface conduzem a situao na qual desenvolvedores de sistemas podem ser forados a adicionar suas prprias interfaces. Consequentemente, isso pode resultar em uma situao na qual duas equipas diferentes de desenvolvedores que seguem o mesmo padro, mas middlewares diferentes, produzirem aplicaes que rodem sobre seus middlewares, mas que no podem ser compartilhados facilmente com outro tipo de middleware. Em um sistema distribudo aberto baseado em middleware, os protocolos usados por cada middleware deveriam ser os mesmos, assim como as interfaces que eles oferecem para as aplicaes.
Figura 7-Middleware e SD aberto (fonte:https://www.google.co.mz/search?q=imagens+de+middleware&newwindow)
Comparao entre Sistemas A funcionalidade dos sistemas operativos distribudos essencialmente a mesma dos tradicionais sistemas operativos para sistema uniprocessadores, excepto pelo facto de que eles manipulam mltiplas CPUs, assumindo que o hardware homogneo e deve ser gerenciado como se fosse um nico. Em contraste com os sistemas operativos distribudos, os sistemas operativos de rede no assumem que o hardware seja homogneo e que ele deve ser gerenciado com se fosse um nico sistema. Ao invs disso, eles so geralmente construdos a partir de uma coleo de sistemas uniprocessadores, cada um com seu prprio sistema operativo,
Item SO Distribudos SO Rede SO baseados em Middleware Multiprocessadores Multicomputadores Grau de Transparncia Muito alta Alta Baixa Alta Mesmo SO em todos ns Sim Sim No No N de Copias de SO 1 N N N Base de comunicao Memoria compartilhada Mensagens Arquivo Especfico do modelo Gerncia de recursos Global centralizado Global distribuda Por n Por n Escalabilidade No Moderado Sim Varivel Abertura Fechado Fechado Aberto Aberto Tabela 2-Comparao entre sistemas Concluso Em projectos de que envolvem sistemas distribudos deve-se dar muita ateno a camada por baixo do SD, para garantia do bom funcionamento de um SD consoante os objectivos da sua criao. Abaixo esta um quadro resumo de tudo o que foi tratado nesta obra. Sistema Descrio Objectivo principal SOD SO fortemente acoplado, para mltiplos processadores e computadores homogneos Esconder e gerir recursos SO de rede SO fracamente acoplado para computadores heterogneos(LAN e WAN) Oferecer servios locais a clientes remotos Middleware Nivel adicional por cima do nvel dos SOs de rede implementando servios de propsitos generalistas Providenciar a transparncia da distribuio Tabela 4: Quadro de resumo (Tanembaum & Steen, 2002)
Bibliografia Tanembaum, A. S., & Steen, M. V. (2002). DISTRIBUTED SYSTEMS-PRINCIPLES AND PARADIGMS. (P. Hall, Ed.) Alan Apt. http://www.inf.ufsc.br/~mario/ine6502ch1.pdf- 30 de Agosto de 2014 http://www.informatik.uni-trier.de/~ley/pers/hd/b/Bernstein:Philip_A=.html- 28 de Agosto de 2014 Philip A. Bernstein: Middleware: A Model for Distributed System Services. Commun. ACM 39(2): 86-98 (1996) http://academic.research.microsoft.com/search?query=Middleware+Support+for+Voting+an d+Data+Fusion.- 27 de Agosto de 2014 David E. Bakken, Zhiyuan Zhan, Christopher C. Jones, David A. Karr: Middleware Support for Voting and Data Fusion. DSN 2001: 453-462