Anda di halaman 1dari 10

Sistemas Operacionais Distribudos e de Redes

Notas de Aula - 2000/1 Profa. Patrcia Kayser Vargas

inegvel a crescente importncia dos ambientes paralelos e distribudos tanto no meio acadmico com comercial. O uso de redes locais e da Internet est amplamente difundido mesmo para uso domstico. Mas para que tais recursos fsicos sejam aproveitados da melhor forma possvel preciso fornecer suporte adequado de software. Nesse texto sero discutidos diversos aspectos relacionados ao controle em ambientes distribudos. Por ambiente distribudo entende-se um conjunto de processadores interligados por uma rede de interconexo e sem memria compartilhada. A ausncia de memria compartilhada obriga a uma interao entre processadores de uma forma distinta do ambiente centralizado: ao invs de variveis ou arquivos compartilhados utiliza-se troca de mensagens. Esse texto apresentar diversos aspectos dos sistemas operacionais distribudos e de rede, bem como algoritmos distribudos mais importantes e alguns estudos de caso. Antes de iniciarmos a discusso sobre sistemas operacionais direcionados a ambiente distribudos, apresentaremos algumas definies possveis para sistema operacional. As informaes apresentadas nesse texto foram compiladas a partir das referncias bibliogrficas indicadas. Em especial, grande parte dos conceitos podem ser encontrados nos livros do Tanembaum [TAN 92][TAN 95]. Essa compilao no substitui a consulta aos textos originais. Ela serve para apresentar de uma forma mais simples e direta servindo como um roteiro para os alunos da disciplina INF01018 Sistemas Operacionais Distribudos e de Redes.
D 1 C A " @ 1 8 ( 5 3 1 ) ( & $" E77B976420'%#!   

No existe uma definio de consenso e incontestvel que defina o significado e o objetivo de um sistema operacional. Cada autor apresenta uma definio prpria mas das quais pode-se abstrair, se no uma definio de consenso, pelo menos uma aproximao. Apresenta-se abaixo a traduo de algumas definies de importantes autores da rea:
b P d a T U HG i P X S v i X S T i b S a T G Y S I y U Q T Y X P i T U T S a X T I F RfB``W`9````````Bf`B`Wh`RR`W`9`B70 ' RR`f`#```f```BI b P H y P X S v i X S H T Q S a X T P y w g P X S v Q G s Q P T I a S y w P X S v I s T H Q P T I a I H T i I a P Q P b U Q G g H S Q S X e T X U T d H b S a T G Y S X P U T S Q I HG ``V`X cRqB````x`#ButrRqB``S pf``S `RRBWhBhf`0fWW`c```BR`9RWVRP %0F

v v r x ~ p ~ v t s z t v r x r t n x t s r `B``fhx `RB` `Rp9RB`z `f`Rh0fi`f`90fW`4}```Bf`RWVfRBqom n ~ v n v y t u t ~ u n u x v x w n ~ | { u z v r y u x t w v u n t s pr p n

v r x ~ p ~ B``f`'```h`B`Rt ``RR`9Wo70``hBs fWVWR`#```ip```B`Wh`Ry n ~ { u ~ v z t s z r n u n ~ x t v x w | n ~ t v r p w v x w t x u x u v t x v u s ~ w n v

S T l X P I l T P i ``RB``h`kBujiB`f`f```i `Rh`#```ffBf`RRgfT ``fff`WxP `RRe`RP `RR``RY Q G s S P I a P Q S H T i S G y Y P X S v i X S T S G Y a P X P e P G X y H y T S X S U I a P Q P I a G a P a T

s z t r r t t t s z r z t z v y u n x v t p u n u x v x w x u s ~ y t t u p p v Rt `RBRy c}B`Rt `R``R`cxf`0fW``B`RR`fWw

     P Y a S Q X T X P Rf```us RWU

[DEI 90]

[SIL 99]

Compilador

Assembler

Editor de texto

Sistema Operacional
Hardware do Computador Figura 1.1 Viso de um Sistema Operacional em ambiente centralizado.
`fR9RB`f`R BRB`R```#But`f ````B``ut`R`p0```BR`fWVfBo

O S.O. prov meios para o uso apropriado dos recursos de hardware, software e dados durante a operao do sistema computacional. O S.O. no realiza por si s nenhuma funo til. Ele simplesmente prov um no qual cada um dos outros programas pode realizar trabalho til. Mas o que se caracteriza por um trabalho til? Note que essa definio est relacionada com a viso de usurio. Talvez um forma melhor de expressar essa idia seja dizer que o S.O. realiza funes bsicas a partir das quais outros programas podem realizar tarefas mais complexas.
6  0770 7# RB 

Um S.O prov um ambiente para a execuo de programas. Um S.O prov certos servios para programas e para os usurios desses programas. Os servios especficos providos iro, logicamente, variar de um S.O para outro, mas existem algumas classes comuns de servios que podem ser identificas [SIL 99]:         # : o sistema deve ser capaz de carregar um programa na memria e execut-lo. O programa deve ser capaz de terminar, tanto normalmente quanto em uma situao no normal (erro). : uma operao de E/S pode envolver um arquivo ou um dispositivo de E/S. Para dispositivos especficos, funes especiais so requeridas. Por eficincia e proteo, usualmente os usurios no podem realizar operaes de E/S diretamente. : esse servio permite que programas leiam e escrevam em arquivos e arquivos sejam criados e removidos. : servio implementado para permitir que um processo troque informaes com outro(s) processo(s). A interao pode ocorrer entre processos da mesma mquina ou entre processos em mquinas distintas ligadas em rede. Essa comunicao pode ser implementada atravs de memria compartilhada (quando na mesma mquina ou em processadores distintos com memria compartilhada) ou atravs de troca de mensagens. FT i f xY b w v V s g V t s r iY i f g f e d V c b ` Y X V y"uBpqphhaaWU S 3P I G % )E % ( # % ) % $A @ #7 53 1 # ) ( # ' & % $ # ! TRBQHFD2CB986420"

9`cf` ````` `WR`B`Wr`R`B`BuR``Wx``` R`RWVRB%o

``RRB Rt``RV``9``fBrfR B`R BWVrf`90fWB`RR`u R `B`

`f`BRcc`0` `RBfBc```Bf `W`fR %``f``RB`

[GOS 91]

Usurio 1

Usurio 2

Usurio 3

Usurio n

Sistema de BD

[CHO 97]

BR`f}fR``WRB%`R` RR'`#``

pelo S.O. Os primeiros servios esto diretamente ligados ao usurio enquanto as trs ltimas classes de servios garantem a execuo eficiente do S.O. 9Fa a

Os S.O modernos normalmente so baseados em uma arquitetura formada por um kernel (ncleo).e por servios. Assim, as funes providas pelo S.O so ento estruturadas em duas categorias [CHO 97]: servios do sistema: funes de alto nvel tal como so vistas pelas aplicaes (viso para o usurio de uma mquina estendida); kernel (ncleo): funes essenciais que so dependentes da arquitetura sob a qual o S.O vai executar (viso do administrador do sistema de um gerenciador de recursos)

Em outras palavras, os servios o objetivo principal a ser atingido enquanto o kernel a forma de atingir tal objetivo.

Figura 1.2 Arquitetura de um SO organizado com kernel e servios.

Um S.O. normalmente tem dois objetivos que so contraditrios: convenincia para o usurio e eficincia. No passado, a eficincia era o aspecto mias importante devido aos altos custos de hardware. Devido a isso, boa parte das teorias de S.O. concentram-se no uso timo dos recursos computacionais. importante porm notar a tendncia atual em priorizar a facilidade de uso e a transparncia. TTBqTpqh

Definio [TAN 95][TAN 92]: a2a2T FppaF2pF2FTFapFTFy

aDsa

B4

 ~} |{ z y FaB9paTx

w k w v u l q r q p k o n m l ki pts2Fjh

: manuteno do controle de quais usurios usam quanto e quais recursos computacionais. Tais informaes podem ser utilizadas para cobrar os servios do usurio (p.ex. um provedor de acesso a Internet) e/ou para acumular estatsticas de uso (p.ex. para planejamento de compra de novos equipamentos). : envolve a garantia de que todos os acessos aos recursos do sistema sejam controlados

g f f edBT

: possveis erros na CPU, dispositivos de E/S, etc, devem ser de alguma forma tratados pelo S.O para garantir uma computao correta e consistente. Note que o sistema no precisa necessariamente garantir tolerncia a falhas, mas no mnimo deteco. : necessrio quando h mltiplos usurios ou mltiplos processos.

servios do sistema kernel

Sistema de arquivos

gerncia de memria

Escalonamento

multiplexao de CPU, tratamento de interupes, , primitivas de sincronizao, comunicao entre processos

Essa definio implica hardware formado por mquinas autnomas e software fornecendo a abstrao de uma mquina nica. Vantagens: Econmicas: aproveitar mquinas potencialmente ociosas; mais barato vrios processadores interconectados do que um supercomputador. Distribuio inerente: algumas aplicaes so distribudas por natureza. Tolerncia a falhas: em caso de falha de uma mquina, o sistema como um todo pode sobreviver, apresentando apenas uma degradao de desempenho. Crescimento incremental: o poder computacional pode ser aumentado atravs da incluso de novos equipamentos. Flexibilidade: sistemas distribudos so mais flexveis do que mquinas isoladas, por isso muitas vezes so utilizados at mesmo que no se esteja buscando desempenho. essa flexibilidade que permite que vrios usurios compartilhem dados e perifricos. Pouco software de alto nvel disponvel para sistemas distribudos. Dificuldades para evitar acesso indevido (segurana). A rede de interconexo pode causar problemas ou no dar vazo a demanda. 99Du4B"

Desvantagens: a

Para obter isso, hoje a tendncia construir S.O. baseados em um micro kernel (ao invs de um sistema monoltico com mais performance mas menos flexibilidade). Um microkernel implementa poucas funes, fornecendo em princpio quatro servios bsicos: Mecanismo de comunicao entre processos Algum tipo de gerncia de memria Uma pequena parte do escalonamento e gerncia de baixo nvel de processos Estrada e sada de baixo nvel
I F 8 B 8 G D F D B @ @ 8 7 5 3 1 00 ) 'E9H9EC6A9642(

Na teoria, a idia que se alguma mquina parar de funcionar, alguma outra mquina pode pegar o trabalho dela. Na prtica, existem alguns servidores em diferentes mquinas que precisam estar no ar para que o sistema como um todo funcione.

& $ "  '%#!

Outros servios ( usurio.


c a W aU`U X WUT S Q HbHYVRP

ap de Localizao: os usurios no sabem onde os recursos esto localizados. de Migrao: os recursos podem se mover sem alterar seus nomes. de Replicao: os usurios no sabem quantas cpias de um recurso existem. de Concorrncia: mltiplos usurios podem compartilhar um recurso automaticamente. de Paralelismo: atividades podem ocorrer em paralelo sem que o usurio saiba (falta muito ainda para ser atingido).
    

, etc) providos por servios em nvel de

Existem vrios aspectos relacionados a confiabilidade:


p d ifgf h dgf d e

Disponibilidade ( ): se refere a frao de tempo que o sistema est funcionando/usvel. Pode-se melhorar a disponibilidade atravs de um projeto que no exija o funcionamento simultneo de um nmero substancial de componentes crticos; ou, ainda, atravs de redundncia, isto , componentes chaves de hardware e software devem ser replicados, de modo que se um deles falhar, os outros estaro aptos a tomar conta da tarefa. Tolerncia a falhas: o que fazer em caso de falha de um servidor? Em geral, sistemas distribudos podem ser projetados para mascarar falhas, isto , escond-las do usurio. Por exemplo, um servio de arquivos (ou outros servios quaisquer) pode ser construdo com um grupo de servidores cooperantes de tal modo que o usurio no perceba a perda de um ou mais servidores (a no ser, talvez, por perda de desempenho).

Todos os itens anteriores no devem ser atingidos sacrificando o desempenho. Quando rodar uma determinada aplicao em um sistema distribudo, ele no pode ser pior do que rodar a mesma aplicao em um nico processador. Mtricas para medir desempenho: Tempo de resposta (nmero de tarefas / tempo)
4H96

Principal problema o Custo de Comunicao. Para otimizar o desempenho, otimiza-se o nmero de mensagens. Porm, a melhor forma de obter desempenho ter vrias atividades rodando em paralelo em diferentes processadores, o que implica em enviar muitas mensagens. Para minimizar o problema: considerar a granulosidade:
ed k j hg f ed lHib wv o p t s qp o n 6Hu%rm %%6H

Os sistemas distribudos precisariam se adaptar a possibilidade de termos ambientes com centenas ou milhares de processadores. Para isso, deve-se evitar: Componentes centralizados. Por exemplo, um nico servidor de email para todos os usurios. Tabelas centralizadas. Por exemplo, uma nica relao on-line de telefones. Algoritmos centralizados. Por exemplo, roteamento de mensagens baseado em informaes completas. Nenhuma mquina possui informaes completas sobre o estado do sistema. Mquinas tomam decises baseadas apenas nas informaes disponveis localmente. Falha de uma das mquinas no impede o funcionamento do algoritmo.

Deve-se usar algoritmos descentralizados, que possuem as seguintes caractersticas:

%646H#

Executar tarefas que envolvam grandes computaes ( de interaes e poucos dados pode ser mais apropriado.

), baixas taxas

~ } z | { z y l'x

ui6

y x w r u t r s r v'6Rq

Utilizao do sistema Quantidade consumida da capacidade da rede

Tamanho do gro ( grosso ).

): tempo execuo de uma tarefa (gro fino

e gro ) de

Executar tarefas pequenas remotamente no vlido porque o custo adicional ( comunicao no compensa o ganho de CPU.

No h suposies implcitas de que existe um relgio global.


lY6E2#u

Sistemas distribudos consistem de vrias CPUs interconectadas. No entanto, h vrias formas diferentes no qual esse hardware pode estar organizado. Dentre as vrias classificaes existentes, Flynn prope uma taxonomia considerando o nmero de fluxo de instrues e o nmero de fluxo de dados.
H9H6'9H9H

SISD uniprocessadores tradicionais;

fluxo de instrues e dados nico a caracterstica dos

MIMD caracteriza-se por vrios processadores interconectados. Tanembaum [TAN 92] apresenta a seguinte subclassificao, onde os dois primeiros so definidos em relao a organizao da memria e os dois ltimos em relao a forma de interconexo: Multiprocessador mquinas MIMD com memria compartilhada (um nico espao de endereamento virtual compartilhado por todas as CPUs). Multicomputador mquinas que no possuem memria compartilhada, isto , cada processador possui sua memria privada. Barramento um nico cabo, rede, barramento ou outro meio que conecte todas as mquinas. Analogia: TV a cabo. Switch: existem cabos individuais conectando mquina a mquina, com vrios padres possveis. comunicao rpida entre os processadores (grande atraso para troca de msg entre mquinas alto.
4 96%94  4 H 4 %9u

Outra classificao:


Fortemente acoplado nmero de bits por segundo). Fracamente acoplado

Com a criao de novas arquiteturas de computadores, surgiram novas demandas de software e, em especial, novas funes exigidas ao S.O. Pode-se considerar como uma boa classificao da evoluo dos Sistemas Operacionais a tabela abaixo apresentada em [CHO 97]. Essa tabela apresenta uma comparao entre as caractersticas dos S.O modernos:

!    #" 

Tabela 2.1 Caractersticas dos SO modernos. 1 Gerenciamento de processos Gerenciamento de memria Gerenciamento de E/S Gerenciamento de arquivos S.O de Rede Acesso Remoto (network operating system) Troca de Informaes Navegao na Rede S.O Distribudo Viso Global do Sistema de (distributed operating system) arquivos, Espao de Nomes Tempo, Segurana Poder Computacional Sistema Cooperativo Aplicaes Distribudas Autnomo Abertas e Cooperativas S.O Centralizado Gerenciamento de recursos Mquina estendida Compartilhamento de recursos Viso de Computador nico em Sistema de Mltiplos Computadores Trabalho Cooperativo

2 3

Note que as classificaes de sistemas operacionais apresentadas acima tambm so apresentadas em [TAN 95][TAN 92], com exceo do ltimo tipo, que pode ou no ser considerado como um sistema operacional. Entre as diversas geraes dos S.O existe uma diferena com relao ao acoplamento. Por nvel de acoplamento ( ) considera-se a medida de quo centralizado ou descentralizado o sistema [CHO 97].

3 SO Distribudo

4 Sistema Cooperativo Autnomo

SO Centralizado

SO de Rede

Figura 2.1 Classificao dos SO modernos segundo [CHO 97]. Nas prximas sees cada um desses tipos de sistemas operacionais ser analisado com um pouco mais de detalhamento. 2.3.1 Sistema Operacional Centralizado Nessa categoria enquadram-se os S.O tradicionais para arquiteturas monoprocessadas que evoluram de um simples sistema de controle para um sistema multitarefa e multiusrio. Alguns autores [CHO 97] incluem nessa classificao tambm o suporte para arquitetura multiprocessada enquanto outros [TAN 95] consideram esse tipo de suporte como um tipo especial de sistema ou ). operacional (sistema operacional multiprocessado ou O MOS definido como um sistema com compartilhamento de tempo em multiprocessador. Nessa classe de sistemas operacionais, a comunicao e compartilhamento de recursos feita via memria compartilhada ou interrupes. Como caractersticas principais destaca-se: Sistema altamente acoplado, com todos os recursos compartilhados internamente; Comunicao entre processos via memria compartilhada.

As principais funes exigidas nesse tipo de sistema esto sumarizadas na tabela abaixo.

t t c qwx } t v ~ } | { t x v t p uww{ uuzywusrqo

AGuAGGH)xu#x)# 7GD

fd 7e7

t y y u t w v u ts r G7G#Ax#)G#q

7))#AH5

p i g ibh g fe db G7G#7ca

` Y VUSR P 5XW9ATQI

6 ( E48 6F & %8 E ( & ( AG9HG))9))DC n mlk j i h A7Gx'g

( @ %8 64 BA9#753

2 10 (&% ))'$

Tabela 2.2 Funes de Gerenciamento em S.O centralizados.

programas grandes Multiusurios

paginao e segmentao, memria virtual Multiprogramao e tempo compartilhado ( ), escalonamento de processos, proteo e controle de acesso, compartilhamento de arquivos e controle de concorrncia processamento concorrente, sincronizao de processos, tratamento de , comunicao entre processos

Multitarefa

Dentre os possveis aprimoramentos na arquitetura cita-se duas abordagens: Gerenciamento dos mdulos: uso de orientao a objetos para facilitar extenses e portabilidade; Separao dos cdigos dependentes de hardware do restante do sistema: uso de kernel mnimo (microkernel), reduzindo a complexidade do porte de uma arquitetura de mquina para outro. Normalmente o cdigo do kernel monoltico por ser centrado na eficincia. ou NOS)

Sistema operacional de rede uma coleo de S.O de computadores conectados a uma rede incorporando mdulos para prover acesso a recursos remotos. Com isso tem-se uma implementao barata, porm, exige que o usurio conhea a localizao dos recursos requisitados. Um exemplo tpico um conjunto de estaes de trabalho interconectados por uma LAN usando UNIX. Pode-se considerar como uma extenso do S.O centralizado para facilitar o compartilhamento de recursos e a troca de informaes apresentando as seguintes caractersticas: cada computador possui seu S.O privado; usurios normalmente esto a par da localizao dos seus arquivos e movem eles atravs de transferncias explcitas; sistema possui pouco ou nenhum recurso de tolerncia a falhas.

Para facilitar a comunicao e uso dos recursos, pode-se prover um sistema de arquivos globalmente compartilhado acessvel a todas as mquinas. O sistema suportado por uma ou mais mquinas denominadas servidores de arquivos. Assim um N.O.S. tpico uma coleo de S.O. centralizados locais juntamente com servidores de arquivos e impresso comuns. Os recursos so vistos como pertencentes localmente a computadores especficos. A maior parte dos N.O.S apresentam uma API de alto nvel como RPC ou socket no servio de transporte para suportar a comunicao entre os S.O nos diferentes domnios da rede. Com a incluso dessa camada de transporte, diversas aplicaes de rede so suportadas. Os principais tipos so: login remoto, transferncia de arquivos, mensagens, navegao na rede e execuo remota.

"G"XG9"9""D

2.3.2 Sistema operacional de rede (

AG#uDG7

)7)

AG7

E/S eficiente

E/S virtual,

'7)'

nico usurio

interface de usurio, controle de E/S, interrupes,

5ABGA5A)'"A)"5 ))GH

BA9#75"7)")G

A implementao de um sistema verdadeiramente distribudo tem como objetivo a obteno de um conjunto de mquinas ligadas em rede que funcionem como um uniprocessador virtual. Um SO Distribudo parece ao usurio como um sistema centralizado comum, mas executa em mltiplas unidades de processamento independentes onde: (1) o uso de mltiplos processadores deve ser invisvel (transparente) para o usurio; (2) o usurio v o sistema como um uniprocessador virtual, no como uma coleo de mquinas distintas conectadas por um subsistema de comunicao. Como principais caractersticas tem-se um mecanismo de comunicao global nico entre processos, proteo global e gerenciamento homogneo de processos. O objetivo fornecer transparncia no acesso aos recursos, mas, de fato, no existe um sistema 100% transparente. Assim, o SO Distribudo deve: (1) controlar a alocao de recursos da rede para permitir seu uso no modo mais eficiente; (2) prover ao usurio com um computador virtual conveniente que serve como um ambiente de programao de alto nvel; (3) esconder a distribuio dos recursos; (4) prover mecanismos para proteo dos recursos do sistema contra acesso por usurios no autorizados; (5) prover comunicao segura

Processos do Usurio SO Local

Mdulo de Comunicao

Rede de Computadores

Figura 2.2 Diferenciao na arquitetura entre S.O de Rede e S.O Distribudo. A figura acima [GOS 91] mostra de forma esquemtica uma comparao da arquitetura NOS e DOS, enquanto a tabela abaixo diferencia os trs tipos de SO segundo as principais caractersticas. Note que por MOS entende-se um sistema centralizado para ambiente multiprocessado. Tabela 2.3 Diferenciao entre SO de Rede, SO Distribudo e SO centralizado para ambiente multiprocessado (resumido do quadro de [TAN 92]).

Se parece com um processador virtual? Todas as mquinas devem rodar o mesmo sistema operacional? Quantas cpias do sistema operacional

N N N

S S N

E C IH@

B775"75"X97D
Rede de Computadores

2.3.3 Sistema Operacional Distribudo (

ou DOS)

Processos do Usurio

4 0 ( #"   321)'&%$ !  E C FDG E C FDB


S S 1

  @ 8 6 A975

existem? Como a comunicao feita? H uma nica fila de execuo? Arquivos Compartilhados N Mensagens N Memria Compartilhada S

2.3.4 Sistema Autnomo Cooperativo Um sistema autnomo cooperativo um sistema de software orientado a servio de alto nvel que requer o suporte de mecanismos de comunicao no qual protocolos de comunicao de alto nvel so construdos. Chow [CHO 97] classifica como um tipo de S.O mas isso no um conceito sedimentado na literatura. Por ser um tipo de sistema com crescente aumento em importncia ele ser estudado independente de ser ou no um S.O de fato.

[TAN 92] [TAN 95]

TANENBAUM, A. S. TANENBAUM, A. S.

T1Teg)FggTx TegTe)F1)H T1)x1gTe)F

[SIL 99]

SILBERSCHATZ et al.

1Teg)IgTD

[GOS 91]

GOSCINSKI, A. Addison-Wesley, 1991. 913 p.

~t rzt  u ~ } | v { r vzt y x w v ut r s r 1Te)FA))gTFq

[DEI 90]

DEITEL, H. M. 1990.

p y f ow n l j h y f y d w w yw Tgg)mkigTeg)FgTxv
. Addison-Wesley, : The Logical Design. John Willey, 1999. Prentice Hall, 1995. Prentice Hall, 1992.

[CHO 97] CHOW, R.; JOHNSON, T. Addison-Wesley, 1997.

b ` XY R s U q pYh fY c b `Y X W V U Q R Q SSu1tTFragigedSaDSDTDTSP

Anda mungkin juga menyukai