Sistemas Operacionais Distribudos O que um sistema distribudos?
- uma coleo de computadores independentes que aparenta ser um nico
computador aos seus usurios. Exemplos: Rede com estaes de trabalho
e processadores stand- alone alocados por demanda com um sistema de
arquivos unificado; Sistema bancrio com terminais espalhados
geograficamente e um nico banco de dados. Sistemas Distribudos2
Stand-alone Programas que rodam sozinhos.
Slide 3
Sistemas Operacionais Distribudos Como se tornou possvel o
surgimento desses sistemas? Com o surgimento de computadores mais
rpidos e baratos e o surgimento de redes de computadores de alta
velocidade. Sistemas Distribudos3
Slide 4
Vantagens de S.D sobre sistemas centralizados. Lei de Grosch O
poder de computao de um computador proporcional ao quadrado do seu
preo. (Aplicvel a mainframes); No caso de microprocessadores, mais
barato se comprar vrios processadores e mont-los em um sistema
multi-processador (preo); Em alguns casos, teoricamente impossvel
de se construir um computador centralizado que possa ser comparado
a um sistema distribudo com uma grande quantidade de processadores
(velocidade); Sistemas Distribudos4
Slide 5
Vantagens de S.D sobre sistemas centralizados. Algumas aplicaes
so inerentemente distribudas - Sistema de uma cadeia de lojas,
jogos ou outras aplicaes cooperativas(distributividade inerente);
Maior confiabilidade, til em aplicaes de alto risco
(confiabilidade); Crescimento incremental acaba com necessidade da
compra de mainframes cada vez maiores, agora o sistema pode ser
trocado aos poucos (crescimento incremental). Sistemas
Distribudos5
Slide 6
Vantagens de S.D sobre micros independentes: Compartilhamento
de dados (colaborao e preo); Compartilhamento de dispositivos
(preo); Comunicao; Mistura de computadores pessoais e
compartilhados pode permitir uma distribuio de tarefas mais
eficiente (flexibilidade). Sistemas Distribudos6
Slide 7
Desvantagens de S.D Software Sistemas Operacionais, linguagens
de programao e aplicaes; Comunicao Tratamento e recuperao de
mensagens; Melhoria da rede pode acarretar em custos altos.
Segurana Compartilhamento de dados implica em esquemas especiais
para proteo de dados sigilosos. Sistemas Distribudos7
Slide 8
Caractersticas de S.D Sistema de comunicao interprocessos nico,
independente se os dois processos esto localizados na mesma mquina
ou no; Esquema de proteo global; Gerenciamento de processos nico,
isto , como eles so criados, destrudos, iniciados ou parados;
Sistemas Distribudos8
Slide 9
Caractersticas de S.D A idia usada nos sistemas operacionais de
rede de se estabelecer protocolos para a comunicao cliente-
servidor no suficiente; Deve haver um nico conjunto de chamadas de
sistema em todas as mquinas e as chamadas devem ser projetadas
levando em conta o ambiente distribudo. Sistemas Distribudos9
Slide 10
Caractersticas de S.D Sistema de arquivos deve ter a mesma viso
e regras em todas as mquinas. Segurana deve ser implementada em
relao aos usurios e no em relao as mquinas. Sistemas
Distribudos10
Slide 11
Caractersticas de S.D Geralmente, o mesmo ncleo (kernel) roda
em todas as mquinas, j que os mesmos implementam as mesmas funes e
chamadas; Cada ncleo pode ter um controle razovel sobre os recursos
locais; - Exemplo: no gerenciamento de memria, swapping, ou at
escalonamento de processos, no caso de uma CPU possuir mais de um
processo sendo executado. Sistemas Distribudos11
Slide 12
Sistemas Distribudos Verdadeiro As vezes so chamados de
sistemas operacionais distribudos; Software fortemente acoplado
(tightly-coupled) em um hardware fracamente acoplado
(loosely-coupled); Sistemas Distribudos12
Slide 13
Sistemas Distribudos Verdadeiro O objetivo: - Criao de uma
iluso para os usurios que o sistema de multicomputadores funciona
como uma grande mquina de tempo compartilhado; - As vezes so
referenciados como sistemas de imagem nica ou uni processador
virtual. Sistemas Distribudos13
Slide 14
Sistemas Operacionais de Redes Loosely coupled Comunicao
explicitamente solicitada pelo usurio e se d atravs da troca de
mensagens; Distribuio do sistema clara para o usurio; Servidores de
arquivos fornecem arquivos a mquinas clientes; Sistemas
Distribudos14
Slide 15
Sistemas Operacionais de Redes Usurios diferentes tem vises
diferentes do sistema, devido a diferenas em como os sistemas de
arquivo locais esto organizados e quais dispositivos locais as
mquinas possuem, etc. Sistemas Distribudos15
Slide 16
Sistemas Operacionais de Redes Mquinas podem rodar diferentes
verses de um mesmo S.O ou at diferentes S.Os desde que os
protocolos de comunicao e servios sejam usados por todas as
mquinas; A coordenao (mnima) de servios entre as mquinas feita
atravs da aderncia aos protocolos. Sistemas Distribudos16
Slide 17
Definio de Sistema Distribudos Um Sistema Distribudo (SD) :
Exemplo de S.D Sistemas Distribudos17 Um conjunto de computadores
independentes que se apresenta a seus usurios como um sistema nico
e coerente.
Slide 18
Exemplo de S.D (2) Sistemas Distribudos18
Slide 19
Definio de Sistema Distribudo(5) Sistemas Distribudos19 Um
Sistema Distribudo organizado como um middleware. O SD oculta as
diferenas de hardware e de sistemas operacionais das aplicaes
distribudas; A camada middleware se estende por vrias mquinas e
oferece a mesma interface a cada aplicao. Middleware ou mediador,
no campo da computao distribuda, um programa de computador que faz
a mediao entre software e demais aplicaes. utilizado para mover ou
transportar informaes e dados entre programas de diferentes
protocolos de comunicao, plataformas e dependncias do sistema
operacional.
Slide 20
Metas de projeto Um Sistema Distribudo deve: Oferecer fcil
acesso a seus recursos groupware; Ocultar razoavelmente bem o fato
de que os recursos so distribudos por uma rede (Transparncia); Ser
aberto Inerface Definition Language (IDL) e Poder ser expandido
(Escalabilidade). Sistemas Distribudos20
Slide 21
Transparncia em um Sistema Distribudo Sistemas Distribudos21
Diferentes formas de transparncia em um sistema distribudo.
Slide 22
Escalabilidade A escalabilidade pode ser medida segundo trs
dimenses: Escalabilidade de tamanho: fcil adicionar mais usurios e
recursos no sistema Escalabilidade geogrfica: usurios e recursos
podem estar distantes entre si Escalabilidade administrativa: fcil
de gerenciar, mesmo que abranja muitas organizaes administrativas
diferentes Sistemas Distribudos22
Slide 23
Problemas na Escalabilidade (1) Sistemas Distribudos23
Slide 24
Problemas na Escalabilidade (2) Caractersticas dos algoritmos
descentralizados: Nenhuma mquina tem informaes completas sobre o
estado do sistemas. Sistemas Distribudos24
Slide 25
Problemas na Escalabilidade (2) As mquinas tomam decises tendo
como base somente informaes locais. A falha de uma mquina no arruna
o algoritmo. No h nenhuma premissa implcita quanto existncia de um
relgio global. Sistemas Distribudos25
Slide 26
Tcnicas de Escalabilidade(1) Sistemas Distribudos26
Slide 27
Tcnicas de Escalabilidade (2) ocultar latncia Sistemas
Distribudos27 Latncia a diferena de tempo entre o incio de um
evento e o momento em que seus efeitos tornam-se perceptveis.
Slide 28
Tcnicas de Escalabilidade (3) distribuio Sistemas
Distribudos28
Slide 29
Algum sabe como funciona o DNS? O DNS ( Domain Name System -
Sistema de Nomes de Domnios ) um sistema de gerenciamento de nomes
hierarquicos e distribudo visando resolver nomes de domnios em
endereos de rede (IP). Sistemas Distribudos29
Slide 30
Algum sabe como funciona o DNS? Ele baseia-se em nomes
hierrquicos e permite a inscrio de vrios dados digitados alm do
nome do host e seu IP. O servidor DNS traduz nomes para os endereos
IP e endereos IP para nomes respectivos, e permitindo a localizao
de hosts em um domnio determinado. Sistemas Distribudos30
Slide 31
Algum sabe como funciona o DNS? Existem 13 servidores DNS raiz
no mundo todo e sem eles a Internet no funcionaria. Destes, dez
esto localizados nos Estados Unidos da Amrica, um na sia e dois na
Europa. Sistemas Distribudos31
Slide 32
Algum sabe como funciona o DNS? Para Aumentar a base instalada
destes servidores, foram criadas rplicas localizadas por todo o
mundo, inclusive no Brasil desde 2003. Ou seja, os servidores de
diretrios responsveis por prover informaes como nomes e endereos
das mquinas so normalmente chamados servidores de nomes. Sistemas
Distribudos32
Slide 33
Ciladas Quando Desenvolvemos Sistemas Distribudos Sistemas
Distribudos33
Slide 34
Tipos de Sistemas Distribudos: Sistemas Distribudos34
Slide 35
Tipos de Sistemas Distribudos: Sistemas Distribudos35
Slide 36
Sistemas de Computao de Alto Desempenho Sistemas
Distribudos36
Slide 37
Sistemas de Computao de Alto Desempenho Aplicaes: - Sistemas
meteorolgicos; - Ferramentas de mapeamento gentico; - Simuladores
geotrmicos; - Programas de renderizao de imagens tridimensionais; -
Computao em Nuvens, necessidade de ter uma infraestrutura
tecnolgica respondendo a vrios clientes simultaneamente de maneira
remota, por exemplo; - Aplicaes crtica - que no pode parar de
funcionar ou no pode perder dados (os sistemas bancrios, por
exemplo); - Entre tantos outros. Sistemas Distribudos37
Slide 38
Sistemas de Computao de Cluster O que cluster? Sistema que
relaciona dois ou mais computadores para que estes trabalhem de
maneira conjunta no intuito de processar uma tarefa. Estas mquinas
dividem entre si as atividades de processamento e executam este
trabalho de maneira simultnea. Como funciona? Cada computador que
faz parte do cluster recebe o nome de n (ou node); No h limite
mximo de ns; Mas o cluster deve ser "transparente", ou seja, ser
visto pelo usurio ou por outro sistema que necessita deste
processamento como um nico computador. Sistemas Distribudos38 Dois
ou mais computadores trabalham de maneira conjunta para realizar
processamento pesado.
Slide 39
Sistemas de Computao de Cluster necessrio alguma padronizao? -
Os ns do cluster devem ser interconectados, preferencialmente, por
uma tecnologia de rede conhecida, para fins de manuteno e controle
de custos, como a Ethernet; - importante que o padro adotado
permita a incluso ou a retirada de ns com o cluster em
funcionamento, do contrrio, o trabalho de remoo e substituio de um
computador que apresentar problemas, por exemplo, faria a aplicao
como um todo parar. Sistemas Distribudos39
Slide 40
Sistemas de Computao de Cluster De que composto os ns? - Na
computao em cluster os ns podem at mesmo ser compostos por
computadores simples, como PCs de desempenho mediano; Finalidade -
Configura um sistema de processamento com capacidade suficiente
para dar conta de determinadas aplicaes que, se fossem atendidas
por supercomputadores ou servidores sofisticados, exigiriam
investimentos muito maiores. Sistemas Distribudos40
Slide 41
Fotografia de um Cluster. Sistemas Distribudos41 No necessrio
haver um conjunto de hardware exatamente igual em cada n;
importante que todas as mquinas utilizem o mesmo sistema
operacional, de forma a garantir que o software que controla o
cluster consiga gerenciar todos os computadores que o integram. No
necessrio haver um conjunto de hardware exatamente igual em cada n;
importante que todas as mquinas utilizem o mesmo sistema
operacional, de forma a garantir que o software que controla o
cluster consiga gerenciar todos os computadores que o
integram.
Slide 42
Sistemas de Computao de Cluster (1) Sistemas Distribudos42
Slide 43
Sistemas de Computao de Cluster (2) Sistemas Distribudos43
Slide 44
Sistemas de Computao de Cluster (3) Sistemas Distribudos44
Slide 45
Tipos de clusters 1. Cluster de Alto Desempenho (High
Performance Computing Cluster) 2. Cluster de Alta Disponibilidade
(High Availability Computing Cluster) 3. Cluster para Balanceamento
de Carga (Load Balancing) 4. Combinao de tipos de clusters Sistemas
Distribudos45
Slide 46
Cluster de Alto Desempenho (High Performance Computing Cluster)
So direcionados a aplicaes bastante exigentes no que diz respeito
ao processamento; Onde so utilizados? Em sistemas utilizados em
pesquisas cientficas, onde h a necessidade de analise uma grande
variedade de dados rapidamente e realizar clculos bastante
complexos. Qual o foco deste tipo de cluster? O processamento
direcionado aplicao fornea resultados satisfatrios em tempo hbil,
mesmo que haja grande volume de dados a serem analisados e
processados por segundo. Sistemas Distribudos46
Slide 47
Cluster de Alta Disponibilidade (High Availability Computing
Cluster) Qual o foco desse tipo de cluster? - Sempre manter a
aplicao em pleno funcionamento; - No aceitvel que o sistema pare de
funcionar, se acontecer, a paralisao deve ser a menor possvel. Que
recursos so utilizados para atingirem o objetivo? - Ferramentas de
monitoramento que identificam ns defeituosos ou falhas na conexo, -
Replicao (redundncia) de sistemas e computadores para substituio
imediata de mquinas com problemas, - Uso de geradores para garantir
o funcionamento em caso de queda de energia, entre outros. Sistemas
Distribudos47
Slide 48
Cluster de Alta Disponibilidade (High Availability Computing
Cluster) Observao: - tolervel que o sistema apresente algum grau de
perda de desempenho, especialmente quando esta situao consequncia
de algum esforo para manter a aplicao em atividade. Sistemas
Distribudos48
Slide 49
Cluster para Balanceamento de Carga (Load Balancing) As tarefas
de processamento so distribudas o mais uniformemente possvel entre
os ns; Cada computador recebe e atende a uma requisio e no,
necessariamente, divide uma tarefa com outras mquinas. Por exemplo:
- Imagine que um grande site na internet receba por volta de mil
visitas por segundo e que um cluster formado por 20 ns tenha sido
desenvolvido para atender a esta demanda. Como se trata de uma
soluo de balanceamento de carga, estas requisies so distribudas
igualmente entre as 20 mquinas, de forma que cada uma receba e
realize, em mdia, 50 atendimentos a cada segundo. Sistemas
Distribudos49
Slide 50
Cluster para Balanceamento de Carga (Load Balancing) Obs1.: -
No basta ao cluster de balanceamento de carga ter um mecanismo
meramente capaz de distribuir as requisies; - necessrio que este
procedimento seja executado de forma a garantir um "equilbrio" na
aplicao; Como feito? - Monitoramento constante dos ns para
verificar, por exemplo, qual mquina est lidando com a menor
quantidade de tarefas e direcionar uma nova requisio para esta.
Obs2.: - O balanceamento de carga pode ser utilizado em vrios tipos
de aplicaes; - Uso comum na internet. Sistemas Distribudos50
Slide 51
Combinao de tipos de clusters Conforme a necessidade; Como
feito? - Combinando caractersticas de tipos diferentes no intuito
de atender plenamente aplicao; Por exemplo: - Uma loja na internet
pode utilizar um cluster de alta disponibilidade para garantir que
suas vendas possam ser realizadas 24 horas por dia e, ao mesmo
tempo, aplicar balanceamento de carga para suportar um expressivo
aumento eventual no nmero de pedidos causados por uma promoo.
Sistemas Distribudos51
Slide 52
Funcionamento bsico dos cluster Cada computador de um cluster
denominado n ou nodo; Todos devem ser interconectados, de maneira a
formarem uma rede, de qualquer topologia; A rede precisa ser criada
de uma forma que permita o acrscimo ou a retirada de um n (em casos
de danos, por exemplo), mas sem interromper o funcionamento do
cluster; Sistemas Distribudos52
Slide 53
Funcionamento bsico dos cluster Sistema operacional usado nos
computadores deve ser de um mesmo tipo; Isso porque existe
particularidades em cada sistema operacional que poderiam impedir o
funcionamento do cluster. Sistemas Distribudos53
Slide 54
Cluster Beowulf O Beowulf padro de clustering disponibilizado
pela NASA (National Aeronautics and Space ) em 1994 e amplamente
adotado desde ento. Origem do nome: - Nome de um poema extenso e
bastante antigo, cujo manuscrito foi encontrado no sculo XI; - A
obra descreve os atos de um heri de mesmo nome que se destaca por
sua fora descomunal e que, portanto, enfrenta um perigoso monstro
para salvar um reino; - A histria serviu de inspirao para que os
pesquisadores Thomas Sterling e Donald Becker, da NASA, batizassem
o projeto de cluster no qual trabalhavam de Beowulf. Sistemas
Distribudos54
Slide 55
Cluster Beowulf Define-se, basicamente, pela nfase nas
seguintes caractersticas: - Entre os ns, deve haver pelo menos um
que atue como mestre para exercer o controle dos demais; Mquinas
mestres so chamadas de front-end; as demais, de back-end;
Possibilidade de existir mais de um n no front-end para que cada um
realize tarefas especficas, como monitoramento. Sistemas
Distribudos55
Slide 56
Cluster Beowulf Sistemas Distribudos56
Slide 57
Como funciona? Cluster Beowulf Comunicao entre os ns pode ser
feita por redes do tipo Ethernet, mais comuns e mais baratas; No
necessrio o uso de hardware exigente, nem especfico; A ideia a de
se aproveitar componentes que possam ser encontrados facilmente. At
mesmo PCs considerados obsoletos podem ser utiliz-los; Sistemas
Distribudos57
Slide 58
Como funciona? Cluster Beowulf O sistema operacional deve ser
de cdigo aberto, razo pela qual o Linux e outras variaes do Unix so
bastante utilizados em cluster Beowulf; Os ns devem se dedicar
exclusivamente ao cluster; Deve-se fazer uso de uma biblioteca de
comunicao apropriada, como a PVM (Parallel Virtual Machine) ou a
MPI (Message Passing Interface); Ambas so direcionadas troca de
mensagens entre os ns. Sistemas Distribudos58
Slide 59
Vantagens Cluster Beowulf Soluo consideravelmente mais barata e
menos complexa que um supercomputador. Construo de um cluster
"poderoso" ; Poupar gastos com equipamentos; Licenas de software;
Manuteno. Curiosidade: - O cluster montado por Thomas Sterling e
Donald Becker para a NASA, por exemplo, era composto por 16 PCs com
processador Intel 486 DX4 e sistema operacional Linux conectados
por uma rede Ethernet de 10 Mb/s; Sistemas Distribudos59
Slide 60
Vantagens de Desvantagens de Cluster Pode-se obter resultados
to bons quanto ou at superiores que um servidor sofisticado a
partir de mquinas mais simples e mais baratas (tima relao
custo-benefcio); No necessrio depender de um nico fornecedor ou
prestador de servio para reposio de componentes; A configurao de um
cluster no costuma ser trivial, mas fazer um supercomputador
funcionar poder ser muito mais trabalhoso e exigir pessoal
especializado; Sistemas Distribudos60
Slide 61
Vantagens de Desvantagens de Cluster possvel aumentar a
capacidade de um cluster com a adio de ns ou remover mquinas para
reparos sem interromper a aplicao; H opes de softwares para cluster
disponveis livremente, o que facilita o uso de uma soluo do tipo em
universidades, por exemplo; Sistemas Distribudos61
Slide 62
Vantagens de Desvantagens de Cluster Relativa facilidade de
customizao para o perfeito atendimento da aplicao; Um cluster pode
ser implementado tanto para uma aplicao sofisticada quanto para um
sistema domstico criado para fins de estudos, por exemplo; Entre
outras. Sistemas Distribudos62
Slide 63
uma rede de computadores na qual os recursos do computador so
compartilhados com todo e qualquer computador no sistema; O que
pode ser partilhado? Poder de processamento; Memria; Armazenamento
de dados; 63 Computao em grade
Slide 64
Viso sobre Computao em Grade Pode ser to simples quanto uma
coleo de computadores parecidos rodando no mesmo sistema
operacional; Podem ser to complexo quanto sistemas de redes
mltiplas que abrangem todas as plataformas de computador possamos
imaginar. 64 Computao em grade - Grid Computing um tipo especial de
computao distribuda.
Slide 65
Grid Computing Sistemas Distribudos65
Slide 66
Sistemas de Computao em Grid (2) Diferentes dos sistemas
baseados em Clusters, os sistemas de computao em Grid tem um alto
grau de heterogeneidades, diferentes hardwares, SOs, redes,...
Usurios e recursos de diferentes organizaes so interligados,
permitindo total colaborao, criando uma Organizao Virtual (V.O. =
Virtual Organization) Os membros das V.O. tem total acesso a um
conjunto comum de recursos (por exemplo, os sistemas da polcia
americana, do FBI e de outras agencias formam um grid). Sistemas
Distribudos66
Slide 67
Sistemas de Computao em Grid Sistemas Distribudos67
Slide 68
Sistemas de Computao em Grid (4) Sistemas Distribudos68
Middleware ou mediador- Programa de computador que faz a mediao
entre software e demais aplicaes.
Slide 69
Camadas do modelo de Grid Computing: 1. Camada de Coletiva
(Collective layer): manipula o - Acesso a mltiplos recursos,
normalmente consiste em servios para descoberta de recursos, alocao
e escalonamento de tarefas. 2. Camada de Conectividade
(Connectivity layer): - Consiste em protocolos de comunicao para
suportar transaes da grade que abranjam a utilizao de mltiplos
recursos. Sistemas Distribudos69
Slide 70
Camadas do modelo de Grid Computing: 3. Camada de Recurso
(Resource layer): - Gerencia um nico recurso, como criar um
processo ou ler um dado. 4. Camada Base (Fabric layer): - Fornece
interfaces para recursos locais em um site especfico. Sistemas
Distribudos70
Slide 71
Sistemas para Processamento de Transaes Propriedades
caractersticas das transaes: Atmicas: para o mundo exterior, a
transao acontece como se fosse indivisvel. Consistentes: a transao
no viloa as invariantes do sistema. Isoladas: transaes interferem
umas com as outras. Durveis : uma vez terminada uma transao as
alteraes so permanentes. Sistemas Distribudos71
Slide 72
Integrao de Aplicaes Comerciais Vrios pacotes de middleware e
protocolos de comunicao so usados para dar suporte as aplicaes
comerciais, entre eles: CORBA (Common Object Request Broker
Architecture) DCOM (Distributed Component Object Management) RPC
(Remote Procedure Call) RMI (Remote Method Invocation) Sistemas
Distribudos72
Slide 73
Sistemas Embarcados Distribudos Requisitos para aplicaes
embarcadas: Adotar mudanas contextuais (significa que um
dispositivo deve estar ciente do fato de seu ambiente pode mudar o
tempo todo). Incentivar composio ad hoc (usos diferentes para
usurios diferentes, por exemplo os PDA podem ter diferentes usos).
Reconhecer compartilhamento como padro (isso requer meios para ler,
armazenar gerenciar e compartilhar informaes com facilidade).
Sistemas Distribudos73
Slide 74
Sistema Eletrnico para Tratamento (pessoal) de Sade Questes
inerentes a aplicao: Onde e como os dados monitorados devero ser
armazenados? Como podemos evitar a perda de dados cruciais? Qual a
infraestrutura necessria para gerar e transmitir sinais de alerta?
Como os mdicos podem dar retorno on-line? Como pode ser alcanada a
extrema robustez do sistema de monitorao? Quais so as questes de
segurana e como as polticas adequadas podem ser impostas? Sistemas
Distribudos74
Slide 75
Sistema Eletrnico para Tratamento de Sade Sistemas
Distribudos75
Slide 76
Redes de Sensores Sistemas Distribudos76
Slide 77
Redes de Sensores Questes referentes a redes de sensores: Como
montar (dinamicamente) um rvore eficiente em uma rede de sensores?
Como ocorre a agregao de resultados? Ela pode ser controlada? O que
acontece quando os enlaces falham? Sistemas Distribudos77