Sei sulla pagina 1di 21

Faculdade de Engenharia

Departamento de Engenharia Electrotcnica


Engenharia Informtica
Sistemas Distribudos


Conceitos de Software



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

Potrebbero piacerti anche