10
S i s t e m a s O p e r a c i o n a i s D i s t r i b u í d o s e d e R e d e s Notas de Aula - 2000/1 Profa. Patrícia Kayser Vargas É inegável a crescente importância dos ambientes paralelos e distribuídos tanto no meio acadêmico com comercial. O uso de redes locais e da Internet está amplamente difundido mesmo para uso doméstico. Mas para que tais recursos físicos sejam aproveitados da melhor forma possível é preciso fornecer suporte adequado de software. Nesse texto serão discutidos diversos aspectos relacionados ao controle em ambientes distribuídos. Por ambiente distribuído entende-se um conjunto de processadores interligados por uma rede de interconexão e sem memória compartilhada. A ausência de memória compartilhada obriga a uma interação entre processadores de uma forma distinta do ambiente centralizado: ao invés de variáveis ou arquivos compartilhados utiliza-se troca de mensagens. Esse texto apresentará diversos aspectos dos sistemas operacionais distribuídos e de rede, bem como algoritmos distribuídos mais importantes e alguns estudos de caso. Antes de iniciarmos a discussão sobre sistemas operacionais direcionados a ambiente distribuídos, apresentaremos algumas definições possíveis para sistema operacional. As informações apresentadas nesse texto foram compiladas a partir das referências bibliográficas indicadas. Em especial, grande parte dos conceitos podem ser encontrados nos livros do Tanembaum [TAN 92][TAN 95]. Essa compilação não 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 Distribuídos e de Redes. Não existe uma definição de consenso e incontestável que defina o significado e o objetivo de um sistema operacional. Cada autor apresenta uma definição própria mas das quais pode-se abstrair, se não uma definição de consenso, pelo menos uma aproximação. Apresenta-se abaixo a tradução de algumas definições de importantes autores da área: [DEI 90] [SIL 99]

Sistemas operativos distribuidos e de redes

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Sistemas operativos distribuidos e de redes

Sistemas Operacionais Distribuídos e de Redes

Notas de Aula - 2000/1

Profa. Patrícia Kayser Vargas

� ��������� �������

É inegável a crescente importância dos ambientes paralelos e distribuídos tanto no meio acadêmicocom comercial. O uso de redes locais e da Internet está amplamente difundido mesmo para usodoméstico. Mas para que tais recursos físicos sejam aproveitados da melhor forma possível épreciso fornecer suporte adequado de software. Nesse texto serão discutidos diversos aspectosrelacionados ao controle em ambientes distribuídos. Por ambiente distribuído entende-se umconjunto de processadores interligados por uma rede de interconexão e sem memóriacompartilhada. A ausência de memória compartilhada obriga a uma interação entre processadoresde uma forma distinta do ambiente centralizado: ao invés de variáveis ou arquivos compartilhadosutiliza-se troca de mensagens.

Esse texto apresentará diversos aspectos dos sistemas operacionais distribuídos e de rede, bemcomo algoritmos distribuídos mais importantes e alguns estudos de caso. Antes de iniciarmos adiscussão sobre sistemas operacionais direcionados a ambiente distribuídos, apresentaremosalgumas definições possíveis para sistema operacional.

As informações apresentadas nesse texto foram compiladas a partir das referências bibliográficasindicadas. Em especial, grande parte dos conceitos podem ser encontrados nos livros doTanembaum [TAN 92][TAN 95]. Essa compilação não substitui a consulta aos textos originais. Elaserve para apresentar de uma forma mais simples e direta servindo como um roteiro para os alunosda disciplina INF01018 – Sistemas Operacionais Distribuídos e de Redes.

����� ����������� �"!$#%��&'��(��*)%+%�-,

Não existe uma definição de consenso e incontestável que defina o significado e o objetivo de umsistema operacional. Cada autor apresenta uma definição própria mas das quais pode-se abstrair, senão uma definição de consenso, pelo menos uma aproximação. Apresenta-se abaixo a tradução dealgumas definições de importantes autores da área:.�/�0�1�243�5 687924:'5<;4/*6<=<5<>?0�@<6979:6BA�:5<3�5B0CD/*3D79>*243�24=<1�5<E<6B0F1�5<=<1*6G243H0�6JIK1*L�5<:2NM<O<5<=<1*6G243PI?/�:3�LQ5<:28CRM<O<21*6<:=<5<3S6B0UT<5<:E<L�5<:2POB0�V<W424>�X�YZX[X[X \U]^.�X[]_X%1*6<:'=<5`6_796<Ea24:b;46<3D79O<1*5<;B/*6<=<5<>�E<6`T<5<:E<LQ5<:'2UE</c0�796<=<d*WB24>;46<=<W424=</�24=<1e243�24=<1�2N795<:5f6fOB0�O<V<:/�6f2 Ag24:24=<;B/*5f6fT<5<:E<L�5<:2h;4O</�E<5<E<6B0�5<3_2B=<1*2i5jIK/*3kE<2h6<l<1*24:Pl<6<57924: IK6<:3_5<=<;B24X

[DEI 90]

monqp�rcp�s*t4n�ufv8w9t4xu<yBr*v<z<u<{}|"~<n�w9xvB��x'u<n_uf�<~atiuB��thy4v<n�vf~<n�r�z<s*t4x'nFt4�<r��<xr*v�t4z<s�xthv�~Bp�~<�<xr*v��<vy4v<nDw9~<s*u<�<v<xFt vi�<u<x�<��u<xt4�R��w9xv8w9�Bp�r�s*vh�<t�~<n����[�_�%|ow9x'v<�4t4x�~<n�uan_�<r�t4z<s*t�z<vh�<~<u<{�~<nS~Bp�~<�<xr*vw9vBpp�ubt��<t4y4~<s*u<x<w9xvB��xu<n�uBpN�at��?v<xn�uby4v<z<��t4z<r�t4z<s*t}t�t[�?r�y4r*t4z<s�t4�

[SIL 99]

Page 2: Sistemas operativos distribuidos e de redes

Usuário 1 Usuário 2 Usuário 3 ����� Usuário n

Compilador Assembler Editor de texto Sistema de BD

Sistema Operacional

Hardware doComputador

Figura 1.1 – Visão de um Sistema Operacional em ambiente centralizado.

�o���� c��¡*¢B�_£�¤8¥9¢B¦£<§4 *¤<¨<£<©�ªF«<�¬§4¤<¨J­K«<¨<¡*¤�®<¢_�_¯<®<«<©�¤B�°®<¢Q��¤J±K¡*²�£<¦¢�³<«<¢�§4¤<©*¢4¡* �´4£<�_¢B¨<¡*¢Q�µ¢4¦'´4¢��¶§B¤<�_¤«<�_£· *¨<¡�¢4¦ ±K£<§4¢�¢4¨<¡*¦¢ ¥9¦¤B¸�¦'£<�_£B�H£8¥9©* �§4£<¡* �´4¤B�H¢�¤��� c��¡*¢B�_£·®a¢º¹<£<¦'®<²Q£<¦¢8»�§4¤<�¼¤½¤<¾J­�¢4¡� *´4¤���¢4¨<®<¤£<©*§4£<¨<¿B£<¦�«<���� ���¡�¢4�_£b§B¤<�À¥9«<¡�£Á§B *¤<¨<£<©Â¢Ã±? *§B *¢4¨<¡�¢�»<��¢�¸�«<¦¤b¢?±?Äa§4 *©Å®<¢�«B��£<¦Æ

[CHO 97]

ÇoÈÊÉ�Ë�É�Ì*Í4È�ÎÐÏ8Ñ9Í4ÒÎ<Ó4Ë�Ï<Ô<Î<ÕNÑ9Ï<Ö<Í�É�Í4Ò×ÖaÍ�ØKË*Ô<Ë*Ö<ÏÐÓ4Ï<È�ÏÐÎHÑ9Î<ÒÌ*Í^Ö<Ï�Ó4ÏaÈÀÑ9Ù<Ì�Î<Ö<Ï<Ò·Ú<Ù<Í^Ì�ÒÎ<ÔBÉ�Ø?Ï<Ò'È_ÎÛ Î<ÒÖ<Ü�Î<ÒÍ�É�Í4È·Ý4Ë�Ö<ÎbÍ4ÈÞÙ<È�É�Ë�É�Ì*Í4È�ÎßÑ9Ï<Ö<Í4ÒÏBÉ�ÏbÍ}ÙBÉ�à<Ý�Í4Õ*á

[GOS 91]

O S.O. provê meios para o uso apropriado dos recursos de hardware, software e dados durante aoperação do sistema computacional. O S.O. não realiza por si só nenhuma função útil. Elesimplesmente provê um âÁãUä�å*æ4ç�è�æ no qual cada um dos outros programas pode realizar trabalhoútil. Mas o que se caracteriza por um trabalho útil? Note que essa definição está relacionada com avisão de usuário. Talvez um forma melhor de expressar essa idéia seja dizer que o S.O. realizafunções básicas a partir das quais outros programas podem realizar tarefas mais complexas.

é�ê�ë ì�í�î�ï%ð�ñ�òôó�õ�ò%îö%í�÷�ð�øßòôó�ùRí�ú�òûìQêýü$ê

Um S.O provê um ambiente para a execução de programas. Um S.O provê certos serviços paraprogramas e para os usuários desses programas. Os serviços específicos providos irão, logicamente,variar de um S.O para outro, mas existem algumas classes comuns de serviços que podem seridentificas [SIL 99]:

• þ�ÿ�������������� ������������� ��� : o sistema deve ser capaz de carregar um programa na memória eexecutá-lo. O programa deve ser capaz de terminar, tanto normalmente quanto em uma situaçãonão normal (erro).

• ��������������������� �"!$#&%'��(�)*�������+� �,��-.���0/�132*!4�65 : uma operação de E/S pode envolver um arquivoou um dispositivo de E/S. Para dispositivos específicos, funções especiais são requeridas. Poreficiência e proteção, usualmente os usuários não podem realizar operações de E/S diretamente.

• 798�:�;=<�>�?=8�@�A�BDC�BDEF;GEFH*I�J 8KC�I�8�L�M�>�;ON�B�E : esse serviço permite que programas leiam e escrevamem arquivos e arquivos sejam criados e removidos.

• P6Q�R S�T�U.VXW�Y�Z�Q : serviço implementado para permitir que um processo troque informações comoutro(s) processo(s). A interação pode ocorrer entre processos da mesma máquina ou entreprocessos em máquinas distintas ligadas em rede. Essa comunicação pode ser implementadaatravés de memória compartilhada (quando na mesma máquina ou em processadores distintoscom memória compartilhada) ou através de troca de mensagens.

Page 3: Sistemas operativos distribuidos e de redes

• [6\�]*\_^�`�a�bdc�\e\_f�fXb�g : possíveis erros na CPU, dispositivos de E/S, etc, devem ser de algumaforma tratados pelo S.O para garantir uma computação correta e consistente. Note que o sistemanão precisa necessariamente garantir tolerância a falhas, mas no mínimo detecção.

• hji.k�lXm�n�o�k p�qsrtq_lXu�vXwFk�w : necessário quando há múltiplos usuários ou múltiplos processos.

• x6y�z�{=|F}'~����*�����X�������=�.����� : manutenção do controle de quais usuários usam quanto e quais recursoscomputacionais. Tais informações podem ser utilizadas para cobrar os serviços do usuário (p.ex.um provedor de acesso a Internet) e/ou para acumular estatísticas de uso (p.ex. paraplanejamento de compra de novos equipamentos).

• �"�X���*�_����� : envolve a garantia de que todos os acessos aos recursos do sistema sejam controladospelo S.O.

Os primeiros serviços estão diretamente ligados ao usuário enquanto as três últimas classes deserviços garantem a execução eficiente do S.O.

���=� �=�����.���������' ¢¡�£�¤Os S.O modernos normalmente são baseados em uma arquitetura formada por um kernel (núcleo).epor serviços. Assim, as funções providas pelo S.O são então estruturadas em duas categorias[CHO 97]:

• serviços do sistema: funções de alto nível tal como são vistas pelas aplicações (visão para ousuário de uma máquina estendida);

• kernel (núcleo): funções essenciais que são dependentes da arquitetura sob a qual o S.O vaiexecutar (visão do administrador do sistema de um gerenciador de recursos)

Em outras palavras, os serviços é o objetivo principal a ser atingido enquanto o kernel é a forma deatingir tal objetivo.

multiplexação de CPU, tratamento deinterupções, ¥�¦�§�¨=©�¦s¥�ª,¨=§�¦�ª¬« , primitivas desincronização, comunicação entre processos

kernel

serviçosdo sistema

Sistema dearquivos

gerência dememória

Escalona-mento

Figura 1.2 – Arquitetura de um SO organizado com kernel e serviços.

Um S.O. normalmente tem dois objetivos que são contraditórios: conveniência para o usuário eeficiência. No passado, a eficiência era o aspecto mias importante devido aos altos custos dehardware. Devido a isso, boa parte das teorias de S.O. concentram-se no uso ótimo dos recursoscomputacionais. É importante porém notar a tendência atual em priorizar a facilidade de uso e atransparência.

­ ®D¯G°²±F³6´¶µ·°¹¸ ¯G°²±»º_¯*¼6½¿¾ÁÀ6¿°

Definição [TAN 95][TAN 92]:ÃÅÄÇÆ»ÈOÆ»É.Ê�Ä6ËÍÌ�ÈÎÆ_É.ÏFÈ=Ð�Ñ�Ò.Ì�ÓÍÔÕÑ�Ä6ËÍÖ�Ó�×.ÊXØ�Ù�ÓÍÌ�Ê Ö�Ó�ÄÛÚÜÑ�É.Ë�Ì�Ó�ÏFÊÝÆ È.Þ�Ì�ʬڷÊ�Þ�Ì�Ê�Þ�É=ÊÝÆàß�Ñ�Ê�ÚÜË�ÏFÊXÖ_Ê�ÄáË�ÓÍÑXÆ_Ñ�â�ÏFÈ.ÓÖ�Ó�Ä6Ó Ñ�Ääã�Þ�È=Ö�Ó Ö�Ó�ÄåÚÜÑ�É=Ë�Ì�Ó�Ï

Page 4: Sistemas operativos distribuidos e de redes

Essa definição implica hardware formado por máquinas autônomas e software fornecendo aabstração de uma máquina única.

Vantagens:

• Econômicas: aproveitar máquinas potencialmente ociosas; mais barato vários processadoresinterconectados do que um supercomputador.

• Distribuição inerente: algumas aplicações são distribuídas por natureza.

• Tolerância a falhas: em caso de falha de uma máquina, o sistema como um todo podesobreviver, apresentando apenas uma degradação de desempenho.

• Crescimento incremental: o poder computacional pode ser aumentado através da inclusão denovos equipamentos.

• Flexibilidade: sistemas distribuídos são mais flexíveis do que máquinas isoladas, por isso muitasvezes são utilizados até mesmo que não se esteja buscando desempenho. É essa flexibilidadeque permite que vários usuários compartilhem dados e periféricos.

Desvantagens:

• Pouco software de alto nível disponível para sistemas distribuídos.

• Dificuldades para evitar acesso indevido (segurança).

• A rede de interconexão pode causar problemas ou não dar vazão a demanda.

æ�ç=è é�ê�ë�ìîí*ïðë�ìòñ"ëKóðô,õ¢ö'ë�í'õ÷ùø�ú�û�üFý�ú�ø�þ�û�ÿ��=ú• de Localização: os usuários não sabem onde os recursos estão localizados.

• de Migração: os recursos podem se mover sem alterar seus nomes.

• de Replicação: os usuários não sabem quantas cópias de um recurso existem.

• de Concorrência: múltiplos usuários podem compartilhar um recurso automaticamente.

• de Paralelismo: atividades podem ocorrer em paralelo sem que o usuário saiba (falta muitoainda para ser atingido).���������������� �� ��

Para obter isso, hoje a tendência é construir S.O. baseados em um micro kernel (ao invés de umsistema monolítico com mais performance mas menos flexibilidade). Um microkernel implementapoucas funções, fornecendo em princípio quatro serviços básicos:

• Mecanismo de comunicação entre processos

• Algum tipo de gerência de memória

• Uma pequena parte do escalonamento e gerência de baixo nível de processos

• Estrada e saída de baixo nível

Outros serviços (������������������ , ������ �"!$#%'&)($(+*-,.,'/0&'*-&�.1 , etc) providos por serviços em nível deusuário.2435�687�9:;7�<�7�=09>=0?Na teoria, a idéia é que se alguma máquina parar de funcionar, alguma outra máquina pode pegar otrabalho dela. Na prática, existem alguns servidores em diferentes máquinas que precisam estar noar para que o sistema como um todo funcione.

Page 5: Sistemas operativos distribuidos e de redes

Existem vários aspectos relacionados a confiabilidade:

• Disponibilidade ( @A�@B�C�@DB�C�B�E F ): se refere a fração de tempo que o sistema estáfuncionando/usável. Pode-se melhorar a disponibilidade através de um projeto que não exija ofuncionamento simultâneo de um número substancial de componentes críticos; ou, ainda,através de redundância, isto é, componentes chaves de hardware e software devem serreplicados, de modo que se um deles falhar, os outros estarão aptos a tomar conta da tarefa.

• Tolerância a falhas: o que fazer em caso de falha de um servidor? Em geral, sistemasdistribuídos podem ser projetados para mascarar falhas, isto é, escondê-las do usuário. Porexemplo, um serviço de arquivos (ou outros serviços quaisquer) pode ser construído com umgrupo de servidores cooperantes de tal modo que o usuário não perceba a perda de um ou maisservidores (a não ser, talvez, por perda de desempenho).G4H�I$H�JLK�H�M�N�O

Todos os itens anteriores não devem ser atingidos sacrificando o desempenho. Quando rodar umadeterminada aplicação em um sistema distribuído, ele não pode ser pior do que rodar a mesmaaplicação em um único processador.

Métricas para medir desempenho:

• Tempo de resposta

• P�QR$ST'U0QWV"TX (número de tarefas / tempo)

• Utilização do sistema

• Quantidade consumida da capacidade da rede

Principal problema é o Custo de Comunicação. Para otimizar o desempenho, otimiza-se o númerode mensagens. Porém, a melhor forma de obter desempenho é ter várias atividades rodando emparalelo em diferentes processadores, o que implica em enviar muitas mensagens.

Para minimizar o problema: considerar a granulosidade:

• Tamanho do grão (Y0Z$[\�]_^�\a`�b ): tempo execução de uma tarefa (grão fino – c>d�ef�gih0jlkd�e – e grãogrosso – m�noprq�sut0p$ov�w ).

• Executar tarefas pequenas remotamente não é válido porque o custo adicional ( xy�z�{l|z�}~ ) decomunicação não compensa o ganho de CPU.

• Executar tarefas que envolvam grandes computações ( �������������0�$���������"��$����������a��� ), baixas taxasde interações e poucos dados pode ser mais apropriado.���$�������������i����������u������ ¡���¡�¢ £¥¤

Os sistemas distribuídos precisariam se adaptar a possibilidade de termos ambientes com centenasou milhares de processadores. Para isso, deve-se evitar:

• Componentes centralizados. Por exemplo, um único servidor de email para todos os usuários.

• Tabelas centralizadas. Por exemplo, uma única relação on-line de telefones.

• Algoritmos centralizados. Por exemplo, roteamento de mensagens baseado em informaçõescompletas.

Deve-se usar algoritmos descentralizados, que possuem as seguintes características:

• Nenhuma máquina possui informações completas sobre o estado do sistema.

• Máquinas tomam decisões baseadas apenas nas informações disponíveis localmente.

• Falha de uma das máquinas não impede o funcionamento do algoritmo.

Page 6: Sistemas operativos distribuidos e de redes

• Não há suposições implícitas de que existe um relógio global.

¦�§�¦ ¨ª©¬«­u®�¯ «°­²±�«´³-µ�¶$±¸·¹µ;¶l«Sistemas distribuídos consistem de várias CPUs interconectadas. No entanto, há várias formasdiferentes no qual esse hardware pode estar organizado.

Dentre as várias classificações existentes, Flynn propõe uma taxonomia considerando o número defluxo de instruções e o número de fluxo de dados.

• SISD – º0»�¼'½0¾�¿�ÀÁ¼'Â�Ã�Ä$ÅÆ�Ã�»�ǼȺ0»�¼'½0¾�¿ÊÉÌËÃ�Ë – fluxo de instruções e dados único é a característica dosuniprocessadores tradicionais;

• MIMD – ÍÏÎÐ�Ñ�Ò Ó"Ð�ÔÖÕÁ×'Ø�Ñ�Ù$ÎÚ�Ñ�Ò�Û×'ØÜÍÏÎÐ�Ñ�Ò Ó"Ð�ÔÖÝßÞÑ�Þ – caracteriza-se por vários processadoresinterconectados. Tanembaum [TAN 92] apresenta a seguinte subclassificação, onde os doisprimeiros são definidos em relação a organização da memória e os dois últimos em relação aforma de interconexão:

• Multiprocessador – máquinas MIMD com memória compartilhada (um único espaço deendereçamento virtual compartilhado por todas as CPU’s).

• Multicomputador – máquinas que não possuem memória compartilhada, isto é, cadaprocessador possui sua memória privada.

• Barramento – um único cabo, rede, barramento ou outro meio que conecte todas asmáquinas. Analogia: TV a cabo.

• Switch: existem cabos individuais conectando máquina a máquina, com vários padrõespossíveis.

Outra classificação:

• Fortemente acoplado – à�áãâ0äå�æ çéèëêìWí"æ�î�ï – comunicação rápida entre os processadores (grandenúmero de bits por segundo).

• Fracamente acoplado – ðuññ'ò�ó�ô õ÷öëñøWù"ô�ó�ú – atraso para troca de msg entre máquinas é alto.

û�ü�ý þªÿ�������������� ���������������

Com a criação de novas arquiteturas de computadores, surgiram novas demandas de software e, emespecial, novas funções exigidas ao S.O. Pode-se considerar como uma boa classificação daevolução dos Sistemas Operacionais a tabela abaixo apresentada em [CHO 97]. Essa tabelaapresenta uma comparação entre as características dos S.O modernos:

Page 7: Sistemas operativos distribuidos e de redes

Tabela 2.1 – Características dos SO modernos.

� ���������� !#"%$�&'�)(*� +,������-�&'����./$0&'"/-)��$ 132465)7'8:9#;�<1º S.O Centralizado Gerenciamento de processos

Gerenciamento de memóriaGerenciamento de E/SGerenciamento de arquivos

Gerenciamento derecursos

Máquina estendida=?>%@�A/B�C�D%>/E�C�E�F2º S.O de Rede

(network operating system)Acesso RemotoTroca de InformaçõesNavegação na Rede

Compartilhamento derecursosG�H�I/J�K�LNM�J)K�O�P�Q/R%Q/S�O�S�J

3º S.O Distribuído(distributed operating system)

Visão Global do Sistema dearquivos,

Espaço de NomesTempo, SegurançaPoder Computacional

Visão de ComputadorÚnico em Sistemade MúltiplosComputadoresT#U0V�W)X�Y�V�U�Z�W�[�\%V

4º Sistema CooperativoAutônomo

Aplicações DistribuídasAbertas e Cooperativas

Trabalho Cooperativo]_^�`%a�b�a�ced%f

Note que as classificações de sistemas operacionais apresentadas acima também são apresentadasem [TAN 95][TAN 92], com exceção do último tipo, que pode ou não ser considerado como umsistema operacional. Entre as diversas gerações dos S.O existe uma diferença com relação aoacoplamento. Por nível de acoplamento ( g�h�iNj�k/l%m)n ) considera-se a medida de quão centralizado oudescentralizado o sistema [CHO 97].

1

SO Centralizado

3

SO Distribuído

4

SistemaCooperativoAutônomo

2

SO de Rede

oqpsrutwvyxzt_{u|u}�~�v {w��tw�u��}xwt �q��t �?�

��

Figura 2.1 – Classificação dos SO modernos segundo [CHO 97].

Nas próximas seções cada um desses tipos de sistemas operacionais será analisado com um poucomais de detalhamento.

2.3.1 Sistema Operacional Centralizado

Nessa categoria enquadram-se os S.O tradicionais para arquiteturas monoprocessadas queevoluíram de um simples sistema de controle para um sistema multitarefa e multiusário. Algunsautores [CHO 97] incluem nessa classificação também o suporte para arquitetura multiprocessadaenquanto outros [TAN 95] consideram esse tipo de suporte como um tipo especial de sistemaoperacional (sistema operacional multiprocessado ou �,���/�%� ���������N���u�����N�����0���/�/�)�������u�/�)��� ou � �3¡ ).O MOS é definido como um sistema com compartilhamento de tempo em multiprocessador.

Nessa classe de sistemas operacionais, a comunicação e compartilhamento de recursos é feita viamemória compartilhada ou interrupções. Como características principais destaca-se:

• Sistema altamente acoplado, com todos os recursos compartilhados internamente;

• Comunicação entre processos via memória compartilhada.

As principais funções exigidas nesse tipo de sistema estão sumarizadas na tabela abaixo.

Page 8: Sistemas operativos distribuidos e de redes

Tabela 2.2 – Funções de Gerenciamento em S.O centralizados.

¢¤£�¥/¦�§�¨�©�¥%ª�«­¬�®°¯#¥%«�±'²)³*ª ´�µ#¨�¶�·�²)«­¬�²¹¸º²�»�²)¨#©)¥/ª�³*²)¨#±�®

único usuário interface de usuário, controle de E/S, interrupções, ¼�½�¾�¿%À�½¼�Á0¿/¾�½�Á�Â

E/S eficiente E/S virtual, Ã�Ä�Å�Å�Æ%Ç/È)Éprogramas grandes paginação e segmentação, memória virtual

Multiusuários Multiprogramação e tempo compartilhado ( Ê%Ë/Ì,ÍÏÎuÐ�Ñ�Ò�Ë/Ó)Ô ),escalonamento de processos, proteção e controle deacesso, compartilhamento de arquivos e controle deconcorrência

Multitarefa processamento concorrente, sincronização de processos,tratamento de Õ�Ö�×�Õ�Ø%Ù�Ú�Û , comunicação entre processos

Dentre os possíveis aprimoramentos na arquitetura cita-se duas abordagens:

• Gerenciamento dos módulos: uso de orientação a objetos para facilitar extensões eportabilidade;

• Separação dos códigos dependentes de hardware do restante do sistema: uso de kernel mínimo(microkernel), reduzindo a complexidade do porte de uma arquitetura de máquina para outro.Normalmente o código do kernel é monolítico por ser centrado na eficiência.

2.3.2 Sistema operacional de rede ( Ü,Ý�Þàß�á�â'ã�ä�å�Ý�â'æçÞ/è:é�êìë�í�î�Þ/Ý�ï ou NOS)

Sistema operacional de rede é uma coleção de S.O de computadores conectados a uma redeincorporando módulos para prover acesso a recursos remotos. Com isso tem-se uma implementaçãobarata, porém, exige que o usuário conheça a localização dos recursos requisitados. Um exemplotípico é um conjunto de estações de trabalho interconectados por uma LAN usando UNIX. Pode-seconsiderar como uma extensão do S.O centralizado para facilitar o compartilhamento de recursos ea troca de informações apresentando as seguintes características:

• cada computador possui seu S.O privado;

• usuários normalmente estão a par da localização dos seus arquivos e movem eles através detransferências explícitas;

• sistema possui pouco ou nenhum recurso de tolerância a falhas.

Para facilitar a comunicação e uso dos recursos, pode-se prover um sistema de arquivosglobalmente compartilhado acessível a todas as máquinas. O sistema é suportado por uma ou maismáquinas denominadas servidores de arquivos. Assim um N.O.S. típico é uma coleção de S.O.centralizados locais juntamente com servidores de arquivos e impressão comuns. Os recursos sãovistos como pertencentes localmente a computadores específicos.

A maior parte dos N.O.S apresentam uma API de alto nível como RPC ou socket no serviço detransporte para suportar a comunicação entre os S.O nos diferentes domínios da rede. Com ainclusão dessa camada de transporte, diversas aplicações de rede são suportadas. Os principais tipossão: login remoto, transferência de arquivos, mensagens, navegação na rede e execução remota.

Page 9: Sistemas operativos distribuidos e de redes

2.3.3 Sistema Operacional Distribuído (ð,ñóò�ô%õ'ñ:ö�÷#ô%øçù�ú�û�ø�õ�ü#ô%ñóýçþìÿ���òô%ø��*ò ou DOS)

A implementação de um sistema verdadeiramente distribuído tem como objetivo a obtenção de umconjunto de máquinas ligadas em rede que funcionem como um uniprocessador virtual. Um SODistribuído parece ao usuário como um sistema centralizado comum, mas executa em múltiplasunidades de processamento independentes onde: (1) o uso de múltiplos processadores deve serinvisível (transparente) para o usuário; (2) o usuário vê o sistema como um uniprocessador virtual,não como uma coleção de máquinas distintas conectadas por um subsistema de comunicação.

Como principais características tem-se um mecanismo de comunicação global único entreprocessos, proteção global e gerenciamento homogêneo de processos. O objetivo é fornecertransparência no acesso aos recursos, mas, de fato, não existe um sistema 100% transparente.

Assim, o SO Distribuído deve:

(1) controlar a alocação de recursos da rede para permitir seu uso no modo mais eficiente;

(2) prover ao usuário com um computador virtual conveniente que serve como um ambiente deprogramação de alto nível;

(3) esconder a distribuição dos recursos;

(4) prover mecanismos para proteção dos recursos do sistema contra acesso por usuários nãoautorizados;

(5) prover comunicação segura

Processos do Usuário

SO Local

��������� ���

Módulo de Comunicação

Rede de Computadores Rede de Computadores

Processos do Usuário

������� � �����������! �"

Figura 2.2 – Diferenciação na arquitetura entre S.O de Rede e S.O Distribuído.

A figura acima [GOS 91] mostra de forma esquemática uma comparação da arquitetura NOS eDOS, enquanto a tabela abaixo diferencia os três tipos de SO segundo as principais características.Note que por MOS entende-se um sistema centralizado para ambiente multiprocessado.

Tabela 2.3 – Diferenciação entre SO de Rede, SO Distribuído e SO centralizado para ambientemultiprocessado (resumido do quadro de [TAN 92]).

#%$'&)( *,+.- /,+.- (0+1-

Se parece com um processador virtual? N S S

Todas as máquinas devem rodar omesmo sistema operacional?

N S S

Quantas cópias do sistema operacional N N 1

Page 10: Sistemas operativos distribuidos e de redes

existem?

Como a comunicação é feita? ArquivosCompartilhados

Mensagens MemóriaCompartilhada

Há uma única fila de execução? N N S

2.3.4 Sistema Autônomo Cooperativo

Um sistema autônomo cooperativo é um sistema de software orientado a serviço de alto nível querequer o suporte de mecanismos de comunicação no qual protocolos de comunicação de alto nívelsão construídos. Chow [CHO 97] classifica como um tipo de S.O mas isso não é um conceitosedimentado na literatura. Por ser um tipo de sistema com crescente aumento em importância eleserá estudado independente de ser ou não um S.O de fato.

2�35463,768,95:,;=<5>@?A;CBEDC;=FHG.76IJ4�;K:5<5>

[CHO 97] CHOW, R.; JOHNSON, T. LNMPO6QCRSMPT�UVQXWSY[Z.\�WSR^]�QCM`_�acbedVO6QXWSfgOihkjmlPa�n�R^M`QCoVfgO6pAddison-Wesley, 1997.

[DEI 90] DEITEL, H. M. q.r[s6r�tCuSv�w�x�yStXz`v�r[{)vc|.}�~SuS��tXz`r��c�e�V�6tX~���� . Addison-Wesley,1990.

[GOS 91] GOSCINSKI, A. �,�`�6�X�S�`�����C�S���1�V�^�S���C�P�V���e�V�6�X����� : The Logical Design.Addison-Wesley, 1991. 913 p.

[SIL 99] SILBERSCHATZ et al. �.���S�S���X�` �¡£¢e¤V¥6�C��¦¨§N©� �ª��S���X¥6« John Willey, 1999.

[TAN 92] TANENBAUM, A. S. ¬0­�®�¯�°S±³².´�¯S°Sµ�¶X·`±�¸£¹eºV»6¶C¯^¼A»6½ Prentice Hall, 1992.

[TAN 95] TANENBAUM, A. S. ¾N¿PÀ6ÁCÂ^¿`Ã�Ä�ÁCÅSƳÇ.È�ÅSÂ^É�ÁC¿`Ê�Ë£ÌeÍVÀ6ÁXÅ�Î�À6Ï Prentice Hall, 1995.