SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
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ê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.
 
            E77B976420£'%#!
            D 1 C A  @ 1 8 ( 5 3 1 ) (  $


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:
        ``‚V©`©X c€RqB````x©`#But§rRqB``S pf``S `RRBWhBh©f`©0f©WW`§c```BR`9RWVRP §%0F
       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
        RfB``W£™`…9``©``–````Bf`B`Wh`R˜R—`W•–`9`B7•‘0”…’ ‘‘'ˆ RR`§f€©`#`©``…fƒ``©`BI
       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 “ ˆˆˆ ‰ b P ‡ † H y P X S v i X S „ H T Q S a X T
        ``€RB``h`kBujiB`f•`§f```i `Rh©`#`©``ffBf`R©RgfT ©``§fff©`WxP `RRe`RP `RR``RY
       S T l X P I l T P i 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
        Rf``•©`us RWU
       ˆ P Y a S Q X T X P
                             [DEI 90]

        `…B©``§f…h©x `R…B©`„ `Rp9RB`z ‚`f`Rh0fi—`f•`90f©W`4}```Bf`©RWVfRB§™§qom
       v ƒ v r x „ ~ p ~ v t s z t v r x r ƒ t n x t s r 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
        B©``“fƒ`'```h`ŒB`Rt `•—‘`RR`9Wo7•‘0Ž`Œ`hBs §fWV©WŠ‚R©`#`©``ip```B`Wh`Ry
       v r x „ ~ p ~ 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
        Rt `RBRy c‘˜}B`Rt `R“``R˜©`c——xf`©0f©W``B`RR`•˜§©fWw
       ˆ 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
                                                                                                      [SIL 99]
Usuário 1                 Usuário 2                Usuário 3               ›š™
                                                                                                         ™™          Usuário n




                            Compilador                Assembler               Editor de texto                  Sistema de BD


                                                              Sistema Operacional

                                                                      Hardware do
                                                                      Computador


                       Figura 1.1 – Visão de um Sistema Operacional em ambiente centralizado.
        •`f¶“R9RµB`f•`R´ BRB`R``©`#But§`°f¤ ```••`ŒB``ut`R¬`p0```BR`©fWVŒ•fB§™§Ÿoœ
       ¤  ¤ §  ¢ ´ ¦ ¢ ž ¢ ¡ ¨ ¢  £   ¡ ¢ © ¤ § ¢ « ³ ¢ ¦ £ ² ¡ ± ¤ ž ¢ ® ž © « ® ¯  ¢ ® ¤ ¡ ¨ « ­ ¨ ¤ §  « ª © £ ¨ ¤   § £ ¦ ¢ ¥ ¤ £  ¢ ¡ ž  ž 
        ``R§…RB  R—t`½¼`RŒV©``9``º—·•fB§™§……rfR´ B`R§ BWVrf•`90f©W©B`R…R`u± R¢ `B·•`«
       ¤ ® ¨ ¢ ž ¤ ´ ¡ ¢ ­ ¾ ¤ ¤  ¤ § » ¢ ¦ £ ² ® ¦ £ ¹ ¢ ® £  ¢ ¡ ž  ž ¤ ¢ ž ¤   ¡ £   © ¥ £ ž £  £ ¦ ¸ ¤ ¦ ¥ ¢ ¦ ¡ ¨ ¢ ¢ § £ ¦ ¡ ¨   £ 
        ©`§f˜`ÅBR—cc˜©`0•§`•¢ `RBfBcÃÂ```BfÁ£ `WÀ`f˜•R¢ §%“…`¥`f``RB`£
       Æ ¦ £ ž « ¢ ® ©   § Ä ± ¢ ¤ ¦ « ¸ ¢ ž » ¡ ¨ ¢   §   ±¢ © £ ¨ ¤   § ¡ « ¥  ¤ § £  ¡ ž  ž  « ¦ £ ¿ ¨ £ § ©
                                                                                                                     [CHO 97]

        •9`cšf`©Ò ”``·```Î `WÀ—R‘`”B©`WrÐ`RÐ`B`Bu›—×R§Š``Wx```Ï R`©RWVÐRB“%§ÊoÇ
       Î È Ò Ï ØÉ Ô Î Ì Í Ù Ú Ò Ï Ö Ì Ù Ñ È Ï Ó Ï Ö Í Ì Ò Î Ñ Î Ï È Ï Ó Ï Ö Ë Ô Ë ØÍ Ö Ò Í É Í Ö Ï Ñ Õ Î Ô Ë Ó Î Ò Í Ñ Ï Î È Í Ì ÉË É È
        BR“`§f}˜§f©R``WßRB“%§…`ÞR˜`Ö R·R§'©`#`©`Î Û
       á Õ Í Ý à É Ù Í Ï É Ï Ò Í Ö Ï Ñ Î È Í Ì ÉË É È Ù È Í Î Ë Ý È Í É Í Ò Î Ü Ö Ò
                                                                                            [GOS 91]


O S.O. provê meios para o uso apropriado dos recursos de hardware, software e dados durante a
operação do sistema computacional. O S.O. não realiza por si só nenhuma função útil. Ele
simplesmente provê um                no qual cada um dos outros programas pode realizar trabalho
                                           £RB…Áâ
                                          æ è ç æ å ä ã
útil. Mas o que se caracteriza por um trabalho útil? Note que essa definição está relacionada com a
visão de usuário. Talvez um forma melhor de expressar essa idéia seja dizer que o S.O. realiza
funções básicas a partir das quais outros programas podem realizar tarefas mais complexas.
ë é
  ê         6ýûò ‚…ôßø 07©7£…ô0ñ 7£#ì
           ê ü ê ì ú í ù ó ò ð ÷ í ö î ò õ ó ò ð ï î í


Um S.O provê um ambiente para a execução de programas. Um S.O provê certos serviços para
programas 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 ser
identificas [SIL 99]:
•        ¡£¡¡£¦¡£¦££¡#þ     : o sistema deve ser capaz de carregar um programa na memória e
              ¨     © ¨ § ¥ ¤ ¢   ÿ
        executá-lo. O programa deve ser capaz de terminar, tanto normalmente quanto em uma situação
        não normal (erro).
•        TRBQ¡H¦F¡D2C¦¡£B¦£98642¦0£¡£¡££¦            : uma operação de E/S pode envolver um arquivo
        S 3P I G % )E % ( # % ) % $A @ #7 53 1 # ) ( # '  % $ # !
        ou um dispositivo de E/S. Para dispositivos específicos, funções especiais são requeridas. Por
        eficiência e proteção, usualmente os usuários não podem realizar operações de E/S diretamente.
•        ¡y¦£u£Bpqph¦h¡£¡a¦a¡WU        : esse serviço permite que programas leiam e escrevam
        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
        em arquivos e arquivos sejam criados e removidos.
•        ¡£¡ˆF¦¦T€  : serviço implementado para permitir que um processo troque informações com
          ‰ ‡ †… „ ƒ ‚ 
        outro(s) processo(s). A interação pode ocorrer entre processos da mesma máquina ou entre
        processos em máquinas distintas ligadas em rede. Essa comunicação pode ser implementada
        através de memória compartilhada (quando na mesma máquina ou em processadores distintos
        com memória compartilhada) ou através de troca de mensagens.
•       ¡ˆ£•ed¡££•B£T‘   : possíveis erros na CPU, dispositivos de E/S, etc, devem ser de alguma
           g ˜ f f ’ ’ ™ ˜ — – ” ’“ ’
           forma tratados pelo S.O para garantir uma computação correta e consistente. Note que o sistema
           não precisa necessariamente garantir tolerância a falhas, mas no mínimo detecção.
    •       ¡pˆˆ•ts¦2¡£¡ˆ¡Fjh
           w k w v u l q r q p k o n m l ki    : necessário quando há múltiplos usuários ou múltiplos processos.
    •       ŠFa¦¡ˆ£B£9pa¡£Tx : manutenção do controle de quais usuários usam quanto e quais recursos
           ‹ ‰ †ˆ‡ † … „ ƒ ƒ ‚€  ~} |{ z y
           computacionais. 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. para
           planejamento de compra de novos equipamentos).
    •       ¡£•Bˆ4Œ
           Ž “ ’ ‘ Ž    : envolve a garantia de que todos os acessos aos recursos do sistema sejam controlados
           pelo S.O.
    Os primeiros serviços estão diretamente ligados ao usuário enquanto as três últimas classes de
    serviços garantem a execução eficiente do S.O.
    a¦”
    –•         ¦¦¢9œ¦š¦Fœša—
              ¤ £ ¡  Ÿ ž  ˜ › ™ ˜

    Os S.O modernos normalmente são baseados em uma arquitetura formada por um kernel (núcleo).e
    por 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 o
           usuário de uma máquina estendida);
    •      kernel (núcleo): funções essenciais que são dependentes da arquitetura sob a qual o S.O vai
           executar (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 de
    atingir tal objetivo.


                                 serviços                Sistema de                 gerência de                  Escalona-
                               do sistema                 arquivos                   memória                      mento

                                                       multiplexação de CPU, tratamento de
                                       kernel          interupções,             , primitivas de
                                                                           ¬££aD¡s£a££¡¥
                                                                           «ª ¦ §¨ ª ¥ ¦ ©¨ § ¦
                                                       sincronização, comunicação entre processos

                             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 e
    eficiência. No passado, a eficiência 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 porém notar a tendência atual em priorizar a facilidade de uso e a
    transparência.
­            ¿TÁ¿TB•»²q¹·¶Tp²qh®
            °  À¾ ½ ¼¯ º ± °¯ ¸ ° µ ´ ³ ± °¯


    Definição [TAN 95][TAN 92]:
           Fp¡¡•ˆÍ¡á£•ˆp¡Üœ¡àÝa¡£¡¡£·¬¡¡F2Ýp¡¡¡F¡ÜÛ¡£2¡Í¡£ˆF¡£ÍT¡ÕÍ¡F¡¡apF•Î¡ÍT£F»y»ÇÅÃ
          Ó È Ï â Ñ Æ Ñ Ó Ë Ä Ê Ö Ê Ï Ë Ú Ê Ñ ß Æ Ê É Þ Ê Ì Þ Ê Ú Ê Ì Þ È Æ Ê Ï Ó Ì Ë É Ñ Ú Ä Ó Ö Ê Ì Ó Ù Ø Ê × Ó Ö Ë Ä Ñ Ô Ó Ì Ò Ñ Ð È Ï É ÆÈ Ì Ë Ä Ê É ÆÈ Æ Ä
                                                                                                                        ¡¡¡a¡Üå£2£a¡¡ä¡2T¡£Ö
                                                                                                                       Ï Ó Ì ËÉ Ñ Ú Ä Ó Ö Ó ÖÈ Þ ã Ä Ñ Ó Ä Ó
Essa definição implica hardware formado por máquinas autônomas e software fornecendo a
abstração de uma máquina única.
Vantagens:
•     Econômicas: aproveitar máquinas potencialmente ociosas; mais barato vários processadores
      interconectados 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 pode
      sobreviver, apresentando apenas uma degradação de desempenho.
•     Crescimento incremental: o poder computacional pode ser aumentado através da inclusão de
      novos equipamentos.
•     Flexibilidade: sistemas distribuídos são mais flexíveis do que máquinas isoladas, por isso muitas
      vezes são utilizados até mesmo que não se esteja buscando desempenho. É essa flexibilidade
      que 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.
a¦æ
èç       9¦9¢Dðu4òŠðBî¡œé
         õí ëö õô ó ë ñ ì ë ïí ì ë ê
a¡¦££¡¦p¦¡£ù÷
ú  ÿ û þ ø ú ý ü û ú ø

•     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 muito
      ainda para ser atingido).
 ©¦©¡¦¤¢
¥   ¨£¨ ¨ § ¥£

Para obter isso, hoje a tendência é construir S.O. baseados em um micro kernel (ao invés de um
sistema monolítico com mais performance mas menos flexibilidade). Um microkernel implementa
poucas 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 (         '%©#!
                          $      ,    ©'E9H9©©EC6A9©642©(
                                           I F 8 B 8 G D F D B @ @ 8 7 5 3 1 00 )   , etc) providos por serviços em nível de
usuário.
 HbH¦¦Y©V©RP
c a W aU`U X WUT S Q

Na teoria, a idéia é que se alguma máquina parar de funcionar, alguma outra máquina pode pegar o
trabalho dela. Na prática, existem alguns servidores em diferentes máquinas que precisam estar no
ar para que o sistema como um todo funcione.
Existem vários aspectos relacionados a confiabilidade:
•    Disponibilidade (            ): se refere a fração de tempo que o sistema está
                                    p ¦©©¦©¡©d
                                      ifgf h dgf d e
     funcionando/usável. Pode-se melhorar a disponibilidade através de um projeto que não exija o
     funcionamento 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 ser
     replicados, 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, sistemas
     distribuídos podem ser projetados para mascarar falhas, isto é, escondê-las do usuário. Por
     exemplo, um serviço de arquivos (ou outros serviços quaisquer) pode ser construído com um
     grupo de servidores cooperantes de tal modo que o usuário não perceba a perda de um ou mais
     servidores (a não ser, talvez, por perda de desempenho).
 ¡v'6¡Rq
y x w r u t r s r

Todos os itens anteriores não devem ser atingidos sacrificando o desempenho. Quando rodar uma
determinada aplicação em um sistema distribuído, ele não pode ser pior do que rodar a mesma
aplicação em um único processador.
Métricas para medir desempenho:
•    Tempo de resposta
•     ©4‡H9©6©€
     ˆ „ †  … „ ƒ ‚    (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úmero
de mensagens. Porém, a melhor forma de obter desempenho é ter várias atividades rodando em
paralelo em diferentes processadores, o que implica em enviar muitas mensagens.
Para minimizar o problema: considerar a granulosidade:
•    Tamanho do grão (
                     %—%•¦©6H‰
                    ˜ –’ ” “ ’ ‘                      ): tempo execução de uma tarefa (grão fino –                 ©lHi¡©¦b™
                                                                                                                    ed k j hg f ed    – e grão
     grosso –          ).          ¦©6Hu%r©©¡m
                                   wv o p t s qp o n
•    Executar tarefas pequenas remotamente não é válido porque o custo adicional (                                             ©¡©l'¡©x
                                                                                                                              ~ } z | { z y   ) de
     comunicação não compensa o ganho de CPU.
•    Executar tarefas que envolvam grandes computações (                       %—¡¦©6©4¡©©6Hˆ¡…#©©¡
                                                                               ƒ‰ Ž „ Ž Ž  ‚  Œ ‹ „ Š ‰  ‚ ‡† „ ƒ ‚  €   ), baixas taxas
     de interações e poucos dados pode ser mais apropriado.
 ¥£ ¦©©¦©¡uˆ›©i©¦©¡6’
¤ ¢¡Ÿ¡   žŸ ž  œš ™ ˜ ” ˜—•— – ”• ” “ ‘

Os sistemas distribuídos 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 usuários.
•    Tabelas centralizadas. Por exemplo, uma única relação on-line de telefones.
•    Algoritmos centralizados. Por exemplo, roteamento de mensagens baseado em informações
     completas.
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.
•     Não há suposições implícitas de que existe um relógio global.
¦¦
¦§         lY¹¸6E´¤²°2#u©¬ª¨
          « ¶ µ · ± ¶ µ ³ « ± ­ « ¯® ­ « ©

Sistemas distribuídos consistem de várias CPUs interconectadas. No entanto, há várias formas
diferentes no qual esse hardware pode estar organizado.
Dentre as várias classificações existentes, Flynn propõe uma taxonomia considerando o número de
fluxo de instruções e o número de fluxo de dados.
•     SISD –    ©ÌÊH9HÈ©¦¡©6'9ÁH9¦Hº
                ËÃ Ë É ¿¾ ½ ¼» º ¼ Ç»Ã Æ Å Äà  ¼ À ¿¾ ½ ¼»   – fluxo de instruções e dados único é a característica dos
      uniprocessadores tradicionais;
•     MIMD –         ¦©ßÖ4Ó ©ÏÜ9©¦¡©6¦%9ÁÖ4Ó ©ÏÍ– caracteriza-se por vários processadores
                     ÞÑ Þ Ý ÔÐ ÒÑÐ Î Í Ø × ÛÒÑ Ú Î ÙÑ Ø × Õ ÔÐ ÒÑÐ Î
      interconectados. Tanembaum [TAN 92] apresenta a seguinte subclassificação, onde os dois
      primeiros são definidos em relação a organização da memória e os dois últimos em relação a
      forma de interconexão:
      •    Multiprocessador – máquinas MIMD com memória compartilhada (um único espaço de
           endereçamento virtual compartilhado por todas as CPU’s).
      •    Multicomputador – máquinas que não possuem memória compartilhada, isto é, cada
           processador possui sua memória privada.
      •    Barramento – um único cabo, rede, barramento ou outro meio que conecte todas as
           máquinas. Analogia: TV a cabo.
      •    Switch: existem cabos individuais conectando máquina a máquina, com vários padrões
           possíveis.
Outra classificação:
•     Fortemente acoplado –              ¡¦4‡©ëéç ©Hãà
                                        ï îæ í ì ê è æ å ä âá   – comunicação rápida entre os processadores (grande
      número de bits por segundo).
•     Fracamente acoplado –             ¡¦4‡©ë÷õ ¡%9©uð
                                       ú óô ù ø ñ ö ô ó ò ñ ñ   – atraso para troca de msg entre máquinas é alto.
¦û
ýü         # §¡©¨§¥£¡ªþ
            ! ¤  ¢    ¢   ¦¤ ¢   ÿ

Com a criação de novas arquiteturas de computadores, surgiram novas demandas de software e, em
especial, novas funções exigidas ao S.O. Pode-se considerar como uma boa classificação da
evolução dos Sistemas Operacionais a tabela abaixo apresentada em [CHO 97]. Essa tabela
apresenta uma comparação entre as características dos S.O modernos:
Tabela 2.1 – Características dos SO modernos.
 £)£)'$
2 10 (%                    BA9#753
                           ( @ %8 64                       £AG9HG))9)£)£DC
                                                          6 ( E48 6F  %8 E (  (                         £5XW9AT©QI
                                                                                                         ` Y VUSR P
    1º               S.O Centralizado           Gerenciamento de processos                    Gerenciamento de
                                                Gerenciamento de memória                       recursos
                                                Gerenciamento de E/S                          Máquina estendida
                                                                                                         £££G7££G#7ca
                                                                                                        p i g ibh g fe db
                                                Gerenciamento de arquivos
    2º                   S.O de Rede            Acesso Remoto                                 Compartilhamento de
                  (network operating system) Troca de Informações                              recursos
                                                                                                  £££G7G££#Ax#)G£#q
                                                                                                 t ƒ y ƒ‚ € y u t w v u ts r
                                                Navegação na Rede
    3º                 S.O Distribuído          Visão Global do Sistema de                    Visão de Computador
                 (distributed operating system)   arquivos,                                     Único em Sistema
                                                Espaço de Nomes                                 de Múltiplos
                                                Tempo, Segurança                                Computadores
                                                                                                    7)£)#£§A£H5„
                                                                                                    †’ ‘ ‡  … † ‰ˆ ‡ † …
                                                Poder Computacional
    4º             Sistema Cooperativo Aplicações Distribuídas                                Trabalho Cooperativo
                                                                                                        7e£££7£•“
                                                                                                        fd ™ — ˜ —– ”
                          Autônomo                Abertas e Cooperativas


Note que as classificações de sistemas operacionais apresentadas acima também são apresentadas
em [TAN 95][TAN 92], com exceção do último tipo, que pode ou não ser considerado como um
sistema operacional. Entre as diversas gerações dos S.O existe uma diferença com relação ao
acoplamento. Por nível de acoplamento (         ) considera-se a medida de quão centralizado ou
                                                       A7Gx£'g
                                                      n mlk j i h
descentralizado o sistema [CHO 97].

                                                                                                  uww{ £uu•zywusrqo
                                                                                                  }ƒ ‚ t € v ~ } | { t x v t p
                                                                                                           c‡ †qwx
                                                                                                          … t … „ t
           ‰          1                        3                         4                          2         ˆ
               SO Centralizado           SO Distribuído               Sistema               SO de Rede
                                                                    Cooperativo
                                                                     Autônomo

                          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 pouco
mais de detalhamento.

2.3.1 Sistema Operacional Centralizado
Nessa categoria enquadram-se os S.O tradicionais para arquiteturas monoprocessadas que
evoluíram de um simples sistema de controle para um sistema multitarefa e multiusário. Alguns
autores [CHO 97] incluem nessa classificação também o suporte para arquitetura multiprocessada
enquanto outros [TAN 95] consideram esse tipo de suporte como um tipo especial de sistema
operacional (sistema operacional multiprocessado ou                                 ou       ).
                                                                           AGuœ›™AGG£H)x•£u#x)£# 7G£DŠ
                                                                          ” Š “ ” š” ˜ —Ž –  “  ‘  ‘ ” ” “ ’ ‘  ŽŒ ‹       Q ž
                                                                                                                                 ¡ Ÿ
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 via
memó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.
Tabela 2.2 – Funções de Gerenciamento em S.O centralizados.

       BA9#75°­£7))£G£¤¢
      ª ³ ²± «¥ ¯ ® ¬ « ª¥ © ¨ § ¦¥ £                      §5ABœGA5A)'º¹­A£)5´
                                                           ®± ¨ ² ³ ª¥ © ¨ ² » ² ¸ ² ¬ « ² · ¶ ¨ µ
    único usuário                       interface de usuário, controle de E/S, interrupções,                     '7)'£¼
                                                                                                                ½ À¿ ¾ ½
                                        ›))GH£¼
                                        ÂÁ ½ ¾¿ Á
    E/S eficiente                       E/S virtual,    AG7££§Ã
                                                       É ÈÇÆ Å Å Ä
    programas grandes                   paginação e segmentação, memória virtual
    Multiusuários                       Multiprogramação e tempo compartilhado (         ),           AG#££uÏDG7Ê
                                                                                                     Ô ÓË Ò Ñ Ð Î Í ÌË
                                        escalonamento de processos, proteção e controle de
                                        acesso, compartilhamento de arquivos e controle de
                                        concorrência
    Multitarefa                         processamento concorrente, sincronização de processos,
                                        tratamento de       , comunicação entre processos
                                                           )œ7££)£Õ
                                                          Û Ú ÙØ Õ × Ö

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 e
     portabilidade;
•    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 (                  G££ìXéGç9¥™9àDÜ
                                                    ï ÝÞ î í ë ê èÞ æâ Ý å ä ãâ á ßÞ Ý       ou NOS)
Sistema operacional de rede é uma coleção de S.O de computadores conectados a uma rede
incorporando módulos para prover acesso a recursos remotos. Com isso tem-se uma implementação
barata, porém, exige que o usuário conheça a localização dos recursos requisitados. Um exemplo
típico é um conjunto de estações de trabalho interconectados por uma LAN usando UNIX. Pode-se
considerar como uma extensão do S.O centralizado para facilitar o compartilhamento de recursos e
a 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 de
     transferê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 arquivos
globalmente compartilhado acessível a todas as máquinas. O sistema é suportado por uma ou mais
má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ão
vistos 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 de
transporte para suportar a comunicação entre os S.O nos diferentes domínios da rede. Com a
inclusão dessa camada de transporte, diversas aplicações de rede são suportadas. Os principais tipos
são: login remoto, transferência de arquivos, mensagens, navegação na rede e execução remota.
2.3.3 Sistema Operacional Distribuído (      B£7©£¡ìçóý75§ç75Xö97£óòDð
                                            ò ¢ øô ò   ÿ þ ñô üõ ø û ú ù øô ÷ ñõô ñ   ou DOS)
A implementação de um sistema verdadeiramente distribuído tem como objetivo a obtenção de um
conjunto de máquinas ligadas em rede que funcionem como um uniprocessador virtual. Um SO
Distribuído parece ao usuário como um sistema centralizado comum, mas executa em múltiplas
unidades de processamento independentes onde: (1) o uso de múltiplos processadores deve ser
invisí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 entre
processos, proteção global e gerenciamento homogêneo de processos. O objetivo é fornecer
transparê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 de
    programaçã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ão
    autorizados;
(5) prover comunicação segura


                     Processos do Usuário                    Processos do Usuário

                          SO Local
                          ©§£¤
                         ¨ ¦¨  ¨ ¦ ¥                            321)'%$ ! £
                                                                4 0 ( #  

                   Módulo de Comunicação




                     Rede de Computadores                    Rede de Computadores

          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 e
DOS, 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 ambiente
                       multiprocessado (resumido do quadro de [TAN 92]).

 A975
@ 8 6                                          FDB
                                              E C                   FDG
                                                                   E C                  IH@
                                                                                       E C
Se parece com um processador virtual?           N                     S                  S
Todas as máquinas devem rodar o                 N                     S                  S
mesmo sistema operacional?
Quantas cópias do sistema operacional           N                    N                   1
existem?
Como a comunicação é feita?                            Arquivos                   Mensagens             Memória
                                                     Compartilhados                                   Compartilhada
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 que
requer o suporte de mecanismos de comunicação no qual protocolos de comunicação de alto nível
são construídos. Chow [CHO 97] classifica como um tipo de S.O mas isso não é um conceito
sedimentado na literatura. Por ser um tipo de sistema com crescente aumento em importância ele
será estudado independente de ser ou não um S.O de fato.


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

[CHO 97] CHOW, R.; JOHNSON, T.                         Tg†g–”)€mkigƒˆT†e™£–g)”ƒ£F‘ƒˆ†£€ƒgT€xv
                                                      p y f ow ‚ n —l j h y f ‡ y d ˜ — •w “ ‚ ‡ ’  ‰ ‡ … „w ‚ yw
         Addison-Wesley, 1997.
[DEI 90]      DEITEL, H. M.          …1ˆT†e™£–ˆ)ƒƒ£F™A‘)–ˆƒ££)ƒg£T‘Fq
                                    ƒ „ ~t ƒ ‚  € rzt  u ~ } | v { r vzt y x w v ut r s r       . Addison-Wesley,
              1990.
[GOS 91]      GOSCINSKI, A.            …1ˆT†e–†€g)ƒ”†Iƒg££–ƒˆT–D†
                                      ˆ ˜ ‰ ˆ — • ” “‡‰ ’ Š  ‘  Ž ‰ Œ ‹‡ Š‰ ˆ‡        : The Logical Design.
              Addison-Wesley, 1991. 913 p.
[SIL 99]      SILBERSCHATZ et al.                Tˆ£ƒ1£)x¨1gT†e££–ˆ)ƒƒ£F™
                                                « ¥ž š › ª   © § ¦ ›ž ¥ ¤ ¢ ¡  Ÿž  œ › š  John Willey, 1999.
[TAN 92]      TANENBAUM, A. S.                       Te”gT†e££–ˆ)ƒƒ£F³ƒ1£)H¬            Prentice Hall, 1992.
                                                    ½ » ¼ ¯¶ » º ¹ ¸ ±·¶ µ ° ¯ ´ ² ± ° ¯ ® ­
[TAN 95]      TANENBAUM, A. S.               ÏTÀ…1ˆT†e££–g)”ƒ£F³ƒg££–”gT€x¾
                                                  Î ÅÁ À Í Ì Ë Ê¿Á É Â Å È Ç Æ ÅÁ Ä Ã¿ ÂÁ À¿   Prentice Hall, 1995.

Mais conteúdo relacionado

Mais procurados

Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Aula 01 meios de comunicação de dados
Aula 01 meios de comunicação de dadosAula 01 meios de comunicação de dados
Aula 01 meios de comunicação de dadosJorge Ávila Miranda
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open SourceDiogo Silva
 
Introdução à Virtualização
Introdução à VirtualizaçãoIntrodução à Virtualização
Introdução à VirtualizaçãoLucas Miranda
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Documentação da infraestrutura de rede
Documentação da infraestrutura de redeDocumentação da infraestrutura de rede
Documentação da infraestrutura de redeMarcos Monteiro
 
Segurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de RedeSegurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de RedeNatanael Simões
 
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Leinylson Fontinele
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem Cprofjr
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Aula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivosAula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivoscamila_seixas
 

Mais procurados (20)

Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Aula 01 meios de comunicação de dados
Aula 01 meios de comunicação de dadosAula 01 meios de comunicação de dados
Aula 01 meios de comunicação de dados
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 
Introdução à Virtualização
Introdução à VirtualizaçãoIntrodução à Virtualização
Introdução à Virtualização
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Aula básica de internet
Aula básica de internetAula básica de internet
Aula básica de internet
 
Documentação da infraestrutura de rede
Documentação da infraestrutura de redeDocumentação da infraestrutura de rede
Documentação da infraestrutura de rede
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Segurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de RedeSegurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de Rede
 
Aula 06 softwares
Aula 06   softwaresAula 06   softwares
Aula 06 softwares
 
Maquinas multinivel
Maquinas multinivelMaquinas multinivel
Maquinas multinivel
 
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivosAula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivos
 

Destaque

Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redesDaniel Brandão
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes IIDaniel Brandão
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisIsaac Vieira
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosValberto Carneiro
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Atributos de produtos de software
Atributos de produtos de softwareAtributos de produtos de software
Atributos de produtos de softwareTiago Pinhão
 
Portabilidade de uma aplicação
Portabilidade de uma aplicaçãoPortabilidade de uma aplicação
Portabilidade de uma aplicaçãoTiago Pinhão
 

Destaque (20)

Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redes
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Sistema operacional de tempo real rtos
Sistema operacional de tempo real   rtosSistema operacional de tempo real   rtos
Sistema operacional de tempo real rtos
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes II
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas Distribuidos
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Sistemas Operacionais para Servidores
Sistemas Operacionais para ServidoresSistemas Operacionais para Servidores
Sistemas Operacionais para Servidores
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Sistema operativo distribuido
Sistema operativo distribuidoSistema operativo distribuido
Sistema operativo distribuido
 
Aula capitulo9 diagrama_estados
Aula capitulo9 diagrama_estadosAula capitulo9 diagrama_estados
Aula capitulo9 diagrama_estados
 
Atributos de produtos de software
Atributos de produtos de softwareAtributos de produtos de software
Atributos de produtos de software
 
Portabilidade de uma aplicação
Portabilidade de uma aplicaçãoPortabilidade de uma aplicação
Portabilidade de uma aplicação
 
Modelo de falhas
Modelo de falhasModelo de falhas
Modelo de falhas
 

Semelhante a Sistemas Operacionais Distribuídos

Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppetDaniel Sobral
 
Ficha de trabalho 2 instalação server 2003
Ficha de trabalho  2 instalação server 2003Ficha de trabalho  2 instalação server 2003
Ficha de trabalho 2 instalação server 2003maria lopes
 
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Bruno Rossetto Machado
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Localcymbron
 
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Joao Galdino Mello de Souza
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslogPaulo Kutwak
 
AULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxAULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxADASVIEIRAArmazmPara
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppetElton Simões
 
aula sistemas operacionais.pptx
aula sistemas operacionais.pptxaula sistemas operacionais.pptx
aula sistemas operacionais.pptxfabio20718
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interaçãoHumberto Cepep
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital PreservationRoberto Beraldo Chaiben
 
Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Nelson Glauber Leal
 

Semelhante a Sistemas Operacionais Distribuídos (20)

Questinário 1 e 2
Questinário 1 e 2Questinário 1 e 2
Questinário 1 e 2
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppet
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Ficha de trabalho 2 instalação server 2003
Ficha de trabalho  2 instalação server 2003Ficha de trabalho  2 instalação server 2003
Ficha de trabalho 2 instalação server 2003
 
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
 
Apresentacao Aula02 So
Apresentacao Aula02 SoApresentacao Aula02 So
Apresentacao Aula02 So
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Local
 
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
 
Mainframe Performance Review
Mainframe Performance ReviewMainframe Performance Review
Mainframe Performance Review
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslog
 
AULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxAULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptx
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppet
 
aula sistemas operacionais.pptx
aula sistemas operacionais.pptxaula sistemas operacionais.pptx
aula sistemas operacionais.pptx
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 
Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 

Mais de Portal_do_Estudante_SD (10)

Sd capitulo01
Sd capitulo01Sd capitulo01
Sd capitulo01
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
 
Jdbc
JdbcJdbc
Jdbc
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
 
Conceitos basicos
Conceitos basicosConceitos basicos
Conceitos basicos
 
Computacao distribuida com rmi
Computacao distribuida com rmiComputacao distribuida com rmi
Computacao distribuida com rmi
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
Aula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosdsAula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosds
 
Atividade sd
Atividade sdAtividade sd
Atividade sd
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 

Sistemas Operacionais Distribuídos

  • 1. 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ê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. E77B976420£'%#! D 1 C A @ 1 8 ( 5 3 1 ) ( $ 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: ``‚V©`©X c€RqB````x©`#But§rRqB``S pf``S `RRBWhBh©f`©0f©WW`§c```BR`9RWVRP §%0F 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 RfB``W£™`…9``©``–````Bf`B`Wh`R˜R—`W•–`9`B7•‘0”…’ ‘‘'ˆ RR`§f€©`#`©``…fƒ``©`BI 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 “ ˆˆˆ ‰ b P ‡ † H y P X S v i X S „ H T Q S a X T ``€RB``h`kBujiB`f•`§f```i `Rh©`#`©``ffBf`R©RgfT ©``§fff©`WxP `RRe`RP `RR``RY S T l X P I l T P i 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 Rf``•©`us RWU ˆ P Y a S Q X T X P [DEI 90] `…B©``§f…h©x `R…B©`„ `Rp9RB`z ‚`f`Rh0fi—`f•`90f©W`4}```Bf`©RWVfRB§™§qom v ƒ v r x „ ~ p ~ v t s z t v r x r ƒ t n x t s r 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 B©``“fƒ`'```h`ŒB`Rt `•—‘`RR`9Wo7•‘0Ž`Œ`hBs §fWV©WŠ‚R©`#`©``ip```B`Wh`Ry v r x „ ~ p ~ 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 Rt `RBRy c‘˜}B`Rt `R“``R˜©`c——xf`©0f©W``B`RR`•˜§©fWw ˆ 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 [SIL 99]
  • 2. Usuário 1 Usuário 2 Usuário 3 ›š™ ™™ Usuário n Compilador Assembler Editor de texto Sistema de BD Sistema Operacional Hardware do Computador Figura 1.1 – Visão de um Sistema Operacional em ambiente centralizado. •`f¶“R9RµB`f•`R´ BRB`R``©`#But§`°f¤ ```••`ŒB``ut`R¬`p0```BR`©fWVŒ•fB§™§Ÿoœ ¤  ¤ §  ¢ ´ ¦ ¢ ž ¢ ¡ ¨ ¢  £   ¡ ¢ © ¤ § ¢ « ³ ¢ ¦ £ ² ¡ ± ¤ ž ¢ ® ž © « ® ¯  ¢ ® ¤ ¡ ¨ « ­ ¨ ¤ §  « ª © £ ¨ ¤   § £ ¦ ¢ ¥ ¤ £  ¢ ¡ ž  ž  ``R§…RB  R—t`½¼`RŒV©``9``º—·•fB§™§……rfR´ B`R§ BWVrf•`90f©W©B`R…R`u± R¢ `B·•`« ¤ ® ¨ ¢ ž ¤ ´ ¡ ¢ ­ ¾ ¤ ¤  ¤ § » ¢ ¦ £ ² ® ¦ £ ¹ ¢ ® £  ¢ ¡ ž  ž ¤ ¢ ž ¤   ¡ £   © ¥ £ ž £  £ ¦ ¸ ¤ ¦ ¥ ¢ ¦ ¡ ¨ ¢ ¢ § £ ¦ ¡ ¨   £  ©`§f˜`ÅBR—cc˜©`0•§`•¢ `RBfBcÃÂ```BfÁ£ `WÀ`f˜•R¢ §%“…`¥`f``RB`£ Æ ¦ £ ž « ¢ ® ©   § Ä ± ¢ ¤ ¦ « ¸ ¢ ž » ¡ ¨ ¢   §   ±¢ © £ ¨ ¤   § ¡ « ¥  ¤ § £  ¡ ž  ž  « ¦ £ ¿ ¨ £ § © [CHO 97] •9`cšf`©Ò ”``·```Î `WÀ—R‘`”B©`WrÐ`RÐ`B`Bu›—×R§Š``Wx```Ï R`©RWVÐRB“%§ÊoÇ Î È Ò Ï ØÉ Ô Î Ì Í Ù Ú Ò Ï Ö Ì Ù Ñ È Ï Ó Ï Ö Í Ì Ò Î Ñ Î Ï È Ï Ó Ï Ö Ë Ô Ë ØÍ Ö Ò Í É Í Ö Ï Ñ Õ Î Ô Ë Ó Î Ò Í Ñ Ï Î È Í Ì ÉË É È BR“`§f}˜§f©R``WßRB“%§…`ÞR˜`Ö R·R§'©`#`©`Î Û á Õ Í Ý à É Ù Í Ï É Ï Ò Í Ö Ï Ñ Î È Í Ì ÉË É È Ù È Í Î Ë Ý È Í É Í Ò Î Ü Ö Ò [GOS 91] O S.O. provê meios para o uso apropriado dos recursos de hardware, software e dados durante a operação do sistema computacional. O S.O. não realiza por si só nenhuma função útil. Ele simplesmente provê um no qual cada um dos outros programas pode realizar trabalho £RB…Áâ æ è ç æ å ä ã útil. Mas o que se caracteriza por um trabalho útil? Note que essa definição está relacionada com a visão de usuário. Talvez um forma melhor de expressar essa idéia seja dizer que o S.O. realiza funções básicas a partir das quais outros programas podem realizar tarefas mais complexas. ë é ê 6ýûò ‚…ôßø 07©7£…ô0ñ 7£#ì ê ü ê ì ú í ù ó ò ð ÷ í ö î ò õ ó ò ð ï î í Um S.O provê um ambiente para a execução de programas. Um S.O provê certos serviços para programas 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 ser identificas [SIL 99]: • ¡£¡¡£¦¡£¦££¡#þ : o sistema deve ser capaz de carregar um programa na memória e ¨   © ¨ § ¥ ¤ ¢   ÿ executá-lo. O programa deve ser capaz de terminar, tanto normalmente quanto em uma situação não normal (erro). • TRBQ¡H¦F¡D2C¦¡£B¦£98642¦0£¡£¡££¦ : uma operação de E/S pode envolver um arquivo S 3P I G % )E % ( # % ) % $A @ #7 53 1 # ) ( # ' % $ # ! ou um dispositivo de E/S. Para dispositivos específicos, funções especiais são requeridas. Por eficiência e proteção, usualmente os usuários não podem realizar operações de E/S diretamente. • ¡y¦£u£Bpqph¦h¡£¡a¦a¡WU : esse serviço permite que programas leiam e escrevam 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 em arquivos e arquivos sejam criados e removidos. • ¡£¡ˆF¦¦T€ : serviço implementado para permitir que um processo troque informações com   ‰ ‡ †… „ ƒ ‚  outro(s) processo(s). A interação pode ocorrer entre processos da mesma máquina ou entre processos em máquinas distintas ligadas em rede. Essa comunicação pode ser implementada através de memória compartilhada (quando na mesma máquina ou em processadores distintos com memória compartilhada) ou através de troca de mensagens.
  • 3. ¡ˆ£•ed¡££•B£T‘ : possíveis erros na CPU, dispositivos de E/S, etc, devem ser de alguma g ˜ f f ’ ’ ™ ˜ — – ” ’“ ’ forma tratados pelo S.O para garantir uma computação correta e consistente. Note que o sistema não precisa necessariamente garantir tolerância a falhas, mas no mínimo detecção. • ¡pˆˆ•ts¦2¡£¡ˆ¡Fjh w k w v u l q r q p k o n m l ki : necessário quando há múltiplos usuários ou múltiplos processos. • ŠFa¦¡ˆ£B£9pa¡£Tx : manutenção do controle de quais usuários usam quanto e quais recursos ‹ ‰ †ˆ‡ † … „ ƒ ƒ ‚€  ~} |{ z y computacionais. 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. para planejamento de compra de novos equipamentos). • ¡£•Bˆ4Œ Ž “ ’ ‘ Ž  : envolve a garantia de que todos os acessos aos recursos do sistema sejam controlados pelo S.O. Os primeiros serviços estão diretamente ligados ao usuário enquanto as três últimas classes de serviços garantem a execução eficiente do S.O. a¦” –• ¦¦¢9œ¦š¦Fœša— ¤ £ ¡  Ÿ ž  ˜ › ™ ˜ Os S.O modernos normalmente são baseados em uma arquitetura formada por um kernel (núcleo).e por 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 o usuário de uma máquina estendida); • kernel (núcleo): funções essenciais que são dependentes da arquitetura sob a qual o S.O vai executar (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 de atingir tal objetivo. serviços Sistema de gerência de Escalona- do sistema arquivos memória mento multiplexação de CPU, tratamento de kernel interupções, , primitivas de ¬££aD¡s£a££¡¥ «ª ¦ §¨ ª ¥ ¦ ©¨ § ¦ sincronização, comunicação entre processos 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 e eficiência. No passado, a eficiência 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 porém notar a tendência atual em priorizar a facilidade de uso e a transparência. ­ ¿TÁ¿TB•»²q¹·¶Tp²qh® °  À¾ ½ ¼¯ º ± °¯ ¸ ° µ ´ ³ ± °¯ Definição [TAN 95][TAN 92]: Fp¡¡•ˆÍ¡á£•ˆp¡Üœ¡àÝa¡£¡¡£·¬¡¡F2Ýp¡¡¡F¡ÜÛ¡£2¡Í¡£ˆF¡£ÍT¡ÕÍ¡F¡¡apF•Î¡ÍT£F»y»ÇÅÃ Ó È Ï â Ñ Æ Ñ Ó Ë Ä Ê Ö Ê Ï Ë Ú Ê Ñ ß Æ Ê É Þ Ê Ì Þ Ê Ú Ê Ì Þ È Æ Ê Ï Ó Ì Ë É Ñ Ú Ä Ó Ö Ê Ì Ó Ù Ø Ê × Ó Ö Ë Ä Ñ Ô Ó Ì Ò Ñ Ð È Ï É ÆÈ Ì Ë Ä Ê É ÆÈ Æ Ä ¡¡¡a¡Üå£2£a¡¡ä¡2T¡£Ö Ï Ó Ì ËÉ Ñ Ú Ä Ó Ö Ó ÖÈ Þ ã Ä Ñ Ó Ä Ó
  • 4. Essa definição implica hardware formado por máquinas autônomas e software fornecendo a abstração de uma máquina única. Vantagens: • Econômicas: aproveitar máquinas potencialmente ociosas; mais barato vários processadores interconectados 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 pode sobreviver, apresentando apenas uma degradação de desempenho. • Crescimento incremental: o poder computacional pode ser aumentado através da inclusão de novos equipamentos. • Flexibilidade: sistemas distribuídos são mais flexíveis do que máquinas isoladas, por isso muitas vezes são utilizados até mesmo que não se esteja buscando desempenho. É essa flexibilidade que 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. a¦æ èç 9¦9¢Dðu4òŠðBî¡œé õí ëö õô ó ë ñ ì ë ïí ì ë ê a¡¦££¡¦p¦¡£ù÷ ú  ÿ û þ ø ú ý ü û ú ø • 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 muito ainda para ser atingido). ©¦©¡¦¤¢ ¥ ¨£¨ ¨ § ¥£ Para obter isso, hoje a tendência é construir S.O. baseados em um micro kernel (ao invés de um sistema monolítico com mais performance mas menos flexibilidade). Um microkernel implementa poucas 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 ( '%©#! $ , ©'E9H9©©EC6A9©642©( I F 8 B 8 G D F D B @ @ 8 7 5 3 1 00 ) , etc) providos por serviços em nível de usuário. HbH¦¦Y©V©RP c a W aU`U X WUT S Q Na teoria, a idéia é que se alguma máquina parar de funcionar, alguma outra máquina pode pegar o trabalho dela. Na prática, existem alguns servidores em diferentes máquinas que precisam estar no ar para que o sistema como um todo funcione.
  • 5. Existem vários aspectos relacionados a confiabilidade: • Disponibilidade ( ): se refere a fração de tempo que o sistema está p ¦©©¦©¡©d ifgf h dgf d e funcionando/usável. Pode-se melhorar a disponibilidade através de um projeto que não exija o funcionamento 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 ser replicados, 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, sistemas distribuídos podem ser projetados para mascarar falhas, isto é, escondê-las do usuário. Por exemplo, um serviço de arquivos (ou outros serviços quaisquer) pode ser construído com um grupo de servidores cooperantes de tal modo que o usuário não perceba a perda de um ou mais servidores (a não ser, talvez, por perda de desempenho). ¡v'6¡Rq y x w r u t r s r Todos os itens anteriores não devem ser atingidos sacrificando o desempenho. Quando rodar uma determinada aplicação em um sistema distribuído, ele não pode ser pior do que rodar a mesma aplicação em um único processador. Métricas para medir desempenho: • Tempo de resposta • ©4‡H9©6©€ ˆ „ †  … „ ƒ ‚  (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úmero de mensagens. Porém, a melhor forma de obter desempenho é ter várias atividades rodando em paralelo em diferentes processadores, o que implica em enviar muitas mensagens. Para minimizar o problema: considerar a granulosidade: • Tamanho do grão ( %—%•¦©6H‰ ˜ –’ ” “ ’ ‘  ): tempo execução de uma tarefa (grão fino – ©lHi¡©¦b™ ed k j hg f ed – e grão grosso – ). ¦©6Hu%r©©¡m wv o p t s qp o n • Executar tarefas pequenas remotamente não é válido porque o custo adicional ( ©¡©l'¡©x ~ } z | { z y ) de comunicação não compensa o ganho de CPU. • Executar tarefas que envolvam grandes computações ( %—¡¦©6©4¡©©6Hˆ¡…#©©¡  ƒ‰ Ž „ Ž Ž  ‚  Œ ‹ „ Š ‰  ‚ ‡† „ ƒ ‚  € ), baixas taxas de interações e poucos dados pode ser mais apropriado. ¥£ ¦©©¦©¡uˆ›©i©¦©¡6’ ¤ ¢¡Ÿ¡   žŸ ž  œš ™ ˜ ” ˜—•— – ”• ” “ ‘ Os sistemas distribuídos 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 usuários. • Tabelas centralizadas. Por exemplo, uma única relação on-line de telefones. • Algoritmos centralizados. Por exemplo, roteamento de mensagens baseado em informações completas. 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.
  • 6. Não há suposições implícitas de que existe um relógio global. ¦¦ ¦§ lY¹¸6E´¤²°2#u©¬ª¨ « ¶ µ · ± ¶ µ ³ « ± ­ « ¯® ­ « © Sistemas distribuídos consistem de várias CPUs interconectadas. No entanto, há várias formas diferentes no qual esse hardware pode estar organizado. Dentre as várias classificações existentes, Flynn propõe uma taxonomia considerando o número de fluxo de instruções e o número de fluxo de dados. • SISD – ©ÌÊH9HÈ©¦¡©6'9ÁH9¦Hº ËÃ Ë É ¿¾ ½ ¼» º ¼ Ç»Ã Æ Å Äà  ¼ À ¿¾ ½ ¼» – fluxo de instruções e dados único é a característica dos uniprocessadores tradicionais; • MIMD – ¦©ßÖ4Ó ©ÏÜ9©¦¡©6¦%9ÁÖ4Ó ©ÏÍ– caracteriza-se por vários processadores ÞÑ Þ Ý ÔÐ ÒÑÐ Î Í Ø × ÛÒÑ Ú Î ÙÑ Ø × Õ ÔÐ ÒÑÐ Î interconectados. Tanembaum [TAN 92] apresenta a seguinte subclassificação, onde os dois primeiros são definidos em relação a organização da memória e os dois últimos em relação a forma de interconexão: • Multiprocessador – máquinas MIMD com memória compartilhada (um único espaço de endereçamento virtual compartilhado por todas as CPU’s). • Multicomputador – máquinas que não possuem memória compartilhada, isto é, cada processador possui sua memória privada. • Barramento – um único cabo, rede, barramento ou outro meio que conecte todas as máquinas. Analogia: TV a cabo. • Switch: existem cabos individuais conectando máquina a máquina, com vários padrões possíveis. Outra classificação: • Fortemente acoplado – ¡¦4‡©ëéç ©Hãà ï îæ í ì ê è æ å ä âá – comunicação rápida entre os processadores (grande número de bits por segundo). • Fracamente acoplado – ¡¦4‡©ë÷õ ¡%9©uð ú óô ù ø ñ ö ô ó ò ñ ñ – atraso para troca de msg entre máquinas é alto. ¦û ýü # §¡©¨§¥£¡ªþ   ! ¤ ¢   ¢   ¦¤ ¢   ÿ Com a criação de novas arquiteturas de computadores, surgiram novas demandas de software e, em especial, novas funções exigidas ao S.O. Pode-se considerar como uma boa classificação da evolução dos Sistemas Operacionais a tabela abaixo apresentada em [CHO 97]. Essa tabela apresenta uma comparação entre as características dos S.O modernos:
  • 7. Tabela 2.1 – Características dos SO modernos. £)£)'$ 2 10 (% BA9#753 ( @ %8 64 £AG9HG))9)£)£DC 6 ( E48 6F %8 E ( ( £5XW9AT©QI ` Y VUSR P 1º S.O Centralizado Gerenciamento de processos Gerenciamento de Gerenciamento de memória recursos Gerenciamento de E/S Máquina estendida £££G7££G#7ca p i g ibh g fe db Gerenciamento de arquivos 2º S.O de Rede Acesso Remoto Compartilhamento de (network operating system) Troca de Informações recursos £££G7G££#Ax#)G£#q t ƒ y ƒ‚ € y u t w v u ts r Navegação na Rede 3º S.O Distribuído Visão Global do Sistema de Visão de Computador (distributed operating system) arquivos, Único em Sistema Espaço de Nomes de Múltiplos Tempo, Segurança Computadores 7)£)#£§A£H5„ †’ ‘ ‡  … † ‰ˆ ‡ † … Poder Computacional 4º Sistema Cooperativo Aplicações Distribuídas Trabalho Cooperativo 7e£££7£•“ fd ™ — ˜ —– ” Autônomo Abertas e Cooperativas Note que as classificações de sistemas operacionais apresentadas acima também são apresentadas em [TAN 95][TAN 92], com exceção do último tipo, que pode ou não ser considerado como um sistema operacional. Entre as diversas gerações dos S.O existe uma diferença com relação ao acoplamento. Por nível de acoplamento ( ) considera-se a medida de quão centralizado ou A7Gx£'g n mlk j i h descentralizado o sistema [CHO 97]. uww{ £uu•zywusrqo }ƒ ‚ t € v ~ } | { t x v t p c‡ †qwx … t … „ t ‰ 1 3 4 2 ˆ SO Centralizado SO Distribuído Sistema SO de Rede Cooperativo Autônomo 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 pouco mais de detalhamento. 2.3.1 Sistema Operacional Centralizado Nessa categoria enquadram-se os S.O tradicionais para arquiteturas monoprocessadas que evoluíram de um simples sistema de controle para um sistema multitarefa e multiusário. Alguns autores [CHO 97] incluem nessa classificação também o suporte para arquitetura multiprocessada enquanto outros [TAN 95] consideram esse tipo de suporte como um tipo especial de sistema operacional (sistema operacional multiprocessado ou ou ). AGuœ›™AGG£H)x•£u#x)£# 7G£DŠ ” Š “ ” š” ˜ —Ž –  “  ‘  ‘ ” ” “ ’ ‘  ŽŒ ‹ Q ž ¡ Ÿ 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 via memó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.
  • 8. Tabela 2.2 – Funções de Gerenciamento em S.O centralizados. BA9#75°­£7))£G£¤¢ ª ³ ²± «¥ ¯ ® ¬ « ª¥ © ¨ § ¦¥ £ §5ABœGA5A)'º¹­A£)5´ ®± ¨ ² ³ ª¥ © ¨ ² » ² ¸ ² ¬ « ² · ¶ ¨ µ único usuário interface de usuário, controle de E/S, interrupções, '7)'£¼ ½ À¿ ¾ ½ ›))GH£¼ ÂÁ ½ ¾¿ Á E/S eficiente E/S virtual, AG7££§Ã É ÈÇÆ Å Å Ä programas grandes paginação e segmentação, memória virtual Multiusuários Multiprogramação e tempo compartilhado ( ), AG#££uÏDG7Ê Ô ÓË Ò Ñ Ð Î Í ÌË escalonamento de processos, proteção e controle de acesso, compartilhamento de arquivos e controle de concorrência Multitarefa processamento concorrente, sincronização de processos, tratamento de , comunicação entre processos )œ7££)£Õ Û Ú ÙØ Õ × Ö 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 e portabilidade; • 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 ( G££ìXéGç9¥™9àDÜ ï ÝÞ î í ë ê èÞ æâ Ý å ä ãâ á ßÞ Ý ou NOS) Sistema operacional de rede é uma coleção de S.O de computadores conectados a uma rede incorporando módulos para prover acesso a recursos remotos. Com isso tem-se uma implementação barata, porém, exige que o usuário conheça a localização dos recursos requisitados. Um exemplo típico é um conjunto de estações de trabalho interconectados por uma LAN usando UNIX. Pode-se considerar como uma extensão do S.O centralizado para facilitar o compartilhamento de recursos e a 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 de transferê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 arquivos globalmente compartilhado acessível a todas as máquinas. O sistema é suportado por uma ou mais má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ão vistos 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 de transporte para suportar a comunicação entre os S.O nos diferentes domínios da rede. Com a inclusão dessa camada de transporte, diversas aplicações de rede são suportadas. Os principais tipos são: login remoto, transferência de arquivos, mensagens, navegação na rede e execução remota.
  • 9. 2.3.3 Sistema Operacional Distribuído ( B£7©£¡ìçóý75§ç75Xö97£óòDð ò ¢ øô ò   ÿ þ ñô üõ ø û ú ù øô ÷ ñõô ñ ou DOS) A implementação de um sistema verdadeiramente distribuído tem como objetivo a obtenção de um conjunto de máquinas ligadas em rede que funcionem como um uniprocessador virtual. Um SO Distribuído parece ao usuário como um sistema centralizado comum, mas executa em múltiplas unidades de processamento independentes onde: (1) o uso de múltiplos processadores deve ser invisí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 entre processos, proteção global e gerenciamento homogêneo de processos. O objetivo é fornecer transparê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 de programaçã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ão autorizados; (5) prover comunicação segura Processos do Usuário Processos do Usuário SO Local ©§£¤ ¨ ¦¨ ¨ ¦ ¥ 321)'%$ ! £ 4 0 ( # Módulo de Comunicação Rede de Computadores Rede de Computadores 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 e DOS, 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 ambiente multiprocessado (resumido do quadro de [TAN 92]). A975 @ 8 6 FDB E C FDG E C IH@ E C Se parece com um processador virtual? N S S Todas as máquinas devem rodar o N S S mesmo sistema operacional? Quantas cópias do sistema operacional N N 1
  • 10. existem? Como a comunicação é feita? Arquivos Mensagens Memória Compartilhados Compartilhada 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 que requer o suporte de mecanismos de comunicação no qual protocolos de comunicação de alto nível são construídos. Chow [CHO 97] classifica como um tipo de S.O mas isso não é um conceito sedimentado na literatura. Por ser um tipo de sistema com crescente aumento em importância ele será estudado independente de ser ou não um S.O de fato. SSu1tTFragigedSaDSDTDTSP b ` XY R s U q pYh fY c b `Y X W V U Q R Q [CHO 97] CHOW, R.; JOHNSON, T. Tg†g–”)€mkigƒˆT†e™£–g)”ƒ£F‘ƒˆ†£€ƒgT€xv p y f ow ‚ n —l j h y f ‡ y d ˜ — •w “ ‚ ‡ ’  ‰ ‡ … „w ‚ yw Addison-Wesley, 1997. [DEI 90] DEITEL, H. M. …1ˆT†e™£–ˆ)ƒƒ£F™A‘)–ˆƒ££)ƒg£T‘Fq ƒ „ ~t ƒ ‚  € rzt  u ~ } | v { r vzt y x w v ut r s r . Addison-Wesley, 1990. [GOS 91] GOSCINSKI, A. …1ˆT†e–†€g)ƒ”†Iƒg££–ƒˆT–D† ˆ ˜ ‰ ˆ — • ” “‡‰ ’ Š  ‘  Ž ‰ Œ ‹‡ Š‰ ˆ‡ : The Logical Design. Addison-Wesley, 1991. 913 p. [SIL 99] SILBERSCHATZ et al. Tˆ£ƒ1£)x¨1gT†e££–ˆ)ƒƒ£F™ « ¥ž š › ª   © § ¦ ›ž ¥ ¤ ¢ ¡  Ÿž  œ › š John Willey, 1999. [TAN 92] TANENBAUM, A. S. Te”gT†e££–ˆ)ƒƒ£F³ƒ1£)H¬ Prentice Hall, 1992. ½ » ¼ ¯¶ » º ¹ ¸ ±·¶ µ ° ¯ ´ ² ± ° ¯ ® ­ [TAN 95] TANENBAUM, A. S. ÏTÀ…1ˆT†e££–g)”ƒ£F³ƒg££–”gT€x¾ Î ÅÁ À Í Ì Ë Ê¿Á É Â Å È Ç Æ ÅÁ Ä Ã¿ ÂÁ À¿ Prentice Hall, 1995.