• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
456
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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ê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.   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 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: ``‚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 aoperação do sistema computacional. O S.O. não realiza por si só nenhuma função útil. Elesimplesmente 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 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.ë é ê 6ýûò ‚…ôßø 07©7£…ô0ñ 7£#ì ê ü ê ì ú í ù ó ò ð ÷ í ö î ò õ ó ò ð ï î í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 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 aabstraçã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 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ívelOutros 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 deusuário. HbH¦¦Y©V©RPc a W aU`U X WUT S QNa 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.
  • 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). ¡v6¡Rqy x w r u t r s rTodos 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• ©4‡H9©6©€ ˆ „ †  … „ ƒ ‚  (número de tarefas / tempo)• Utilização do sistema• Quantidade consumida da capacidade da redePrincipal 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 ( %—%•¦©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 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çõ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 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 – ©ÌÊH9HÈ©¦¡©69Á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, 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:
  • 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 CooperativasNote 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 ( ) considera-se a medida de quão centralizado ou A7Gx£g n mlk j i hdescentralizado 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 poucomais de detalhamento.2.3.1 Sistema Operacional CentralizadoNessa 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 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 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.
  • 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 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 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 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.
  • 9. 2.3.3 Sistema Operacional Distribuído ( B£7©£¡ìçóý75§"ç75"Xö97£óòDð ò ¢ øô ò   ÿ þ ñô üõ ø û ú ù øô ÷ ñõô ñ 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 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 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 ambiente multiprocessado (resumido do quadro de [TAN 92]). A975@ 8 6 FDB E C FDG E C IH@ E CSe parece com um processador virtual? N S STodas as máquinas devem rodar o N S Smesmo sistema operacional?Quantas cópias do sistema operacional N N 1
  • 10. existem?Como a comunicação é feita? Arquivos Mensagens Memória Compartilhados CompartilhadaHá uma única fila de execução? N N S2.3.4 Sistema Autônomo CooperativoUm 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. SSu1tTFragigedSaDSDTDTSPb ` 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.