INTRODUÇÃO AOS SISTEMAS OPERACIONAIS agosto/2013

Propaganda
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS
agosto/2013
SEMANA 05
Sistemas multiprocessados
1 - Introdução
Os sistemas multiprocessados são sistemas com múltiplos processadores e caracterizados
pela execução simultânea de duas ou mais instruções pelo uso de mais de um processador. Nesse
caso, os conceitos de multiprogramação são aplicados a vários processadores ao mesmo tempo.
Os sistemas multiprocessados permitem que vários programas sejam executados em
paralelo, ou que um programa tenha duas ou mais de suas instruções executadas em paralelo.
O multiprocessamento pode ocorrer em múltiplos processadores que compartilham uma
mesma memória primária (fortemente acoplados) ou em múltiplos computadores independentes,
com o uso de sistemas operacionais de rede ou sistemas operacionais distribuídos (fracamente
acoplados). No caso de computadores independentes, cada um tem seus próprios recursos.
Os sistemas multiprocessados podem ser classificados como fortemente acoplados e
fracamente acoplados, que está relacionado à forma de comunicação entre esses múltiplos
processadores.
Os sistemas fortemente acoplados são classificados em simétricos e assimétricos.
Nos sistemas fracamente acoplados, os processadores estão em diferentes máquinas e são
classificados como sistemas
operacionais de rede e sistemas
Sistemas multiprocessados
operacionais distribuídos.
No entanto, não existe
muito consenso em torno das
definições de sistemas
operacionais distribuídos. Alguns
autores consideram esse sistema
fortemente acoplado quando provê
um nível de integração e
compartilhamento de recursos
mais intenso e transparente ao
usuário. O fato é que, nesse caso,
fortemente ou fracamente
Sistemas
fortemente
acoplados
Sistemas
simétricos
Introdução aos Sistemas Operacionais - www.jairo.pro.br
Sistemas
assimétricos
Sistemas
fracamente
acoplados
Sistemas
Sistemas
operacionais operacionais
de redes
distribuídos
Fig 1 – Sistemas multiprocessados
1/8
acoplado depende da solução de software adotada.
2 - Sistemas fortemente acoplados
Pela necessidade de formas mais rápidas de processamento, as tecnologias têm caminhado
para a utilização de técnicas de paralelismo. Paralelismo consiste em dividir o processo em
fragmentos e executar simultaneamante em diferentes processadores, isso para aumentar a
velocidade de execução de um programa.
Sistemas fortemente acoplados são os que têm mais de um processador ligado no mesmo
barramento. Nesse caso, existe processamento paralelo, aumento da capacidade de processamento,
compartilhamento da memória e de periféricos e também tolerância a falhas [se um processador
parar, o outro continua funcionando].
2.1 - Sistemas simétricos
Uma forma de paralelismo é SMP [Symmetric Multi-Processor, ou multi processadores
simétricos], onde um grupo de processadores trabalha em conjunto compartilhando uma
única memória através de um único barramento. Isso torna possível qualquer processador executar
uma parte do processo.
O Multiprocessamento simétrico trata todos os processadores igualmente. Qualquer
processador pode fazer o trabalho de outro processador, e os processos são divididas em correntes
que podem rodar concorrentemente em qualquer processador disponível. O SMP melhora tanto o
desempenho da própria aplicação quanto o processamento total do sistema. Os sistemas SMP
requerem alguma forma de memória compartilhada e suporte do sistema operacional, além de
aplicações que saibam tirar proveito do paralelismo.
Os sistemas modernos como Linux, Windows, Mac OS e membros da família Unix
suportam SMP.
Num sistema SMP, em cada um dos processadores roda uma cópia idêntica do sistema
operacional, existe comunicação entre esses processadores e as tarefas [processos] são distribuídas
[escalonadas] entre os processadores.
Atualmente multiprocessamento SMP é muito usado em máquinas com mais de um
processador. Essa máquina usa arquitetura de processadores paralelos MIMD [Multiple Instruction
Multiple Data]. No entanto, se houver mais de 8 processadores em paralelo a solução é NUMA
[Non-Uniform Memory Access, ou acesso não uniforme à memória].
2.2 - Sistemas assimétricos
Introdução aos Sistemas Operacionais - www.jairo.pro.br
2/8
Nos sistemas de multiprocessamento assimétrico, os processadores não são tratados
igualmente e existe um processador que é o mestre e controla o sistema, que fica distribuindo
tarefas para cada processador escravo.
Essa solução é antiga e permitia adicionar mais um processador a um sistema desenvolvido
para trabalhar com um único processador. Essa solução foi usada nos anos 1960 e 1970, como
exemplo existe o modelo IBM System/370 onde era possível adicionar mais um processador.
Mais recentemente, a diferença entre multiprocessamento simétrico e assimétrico pode ser o
resultado da combinação de software e hardware. Por exemplo, num mesmo hardware o sistema
SunOS 41 provia processamento assimétrico, já a versão 5 trabalhava com processamento simétrico.
3 - Sistemas fracamente acoplados
O sistema é fracamente acoplado quando depende da rede para distribuir a tarefa de
processamento. Ou seja, as CPUs estão em computadores diferentes. E cada computador tem seu
próprio sistema operacional e independentemente gerencia os seus próprios recursos.
3.1 - Sistemas operacionais de redes
Os sistemas são independentes, cada um roda numa máquina e estão em rede.
Um sistema operacional de rede propicia o protocolo para comunicação e transferência de
dados entre os usuários e servidores nessa rede. Cada nó na rede é independente e capaz de executar
suas próprias aplicações.
Network Operating System [NOS], ou Sistema Operacional de Rede é usado para gerenciar
a preparação, transmissão e recepção de dados entre computadores em rede. Com o NOS, o acesso a
recursos em rede se passa de forma transparente para o usuário, que tem a sensação de que os
recursos são locais. Localmente o usuário continua com o seu sistema operacional, e o NOS pode
ser visto como uma camada adicional que facilita o acesso a recursos em rede.
Num exemplo bem simples, no Windows um drive lógico rotulado como "N" leva para um
recurso em outra máquina, mas o usuário vê o recurso como local, no seu sistema. Nesse caso, o
acesso ao recurso em rede é transparente para esse usuário.
Dessa definição conclui-se que o sistema operacional de rede é independente do sistema
operacional nativo naquele computador, ou seja, trata-se de uma "casca" adicional que fornece
acesso em rede baseado num protocolo específico.
Outro exemplo é o NetWare da Novell, usado para compartilhar servidores de arquivos e
impressoras em rede. No início dos anos 1990 liderava esse mercado, mas depois perdeu espaço
1 Sun OS 4: é um sistema operacional Unix criado pela Sun Microsystems. A versão 4 foi lançada em 1988. As
versões atuais são chamadas de Solaris.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
3/8
para o Linux e para Windows.
O NetWare é baseado no paradigma cliente/servidor com programas clientes em
Windows9x, Windows NT/2000/XP e Mac OS e OS/2 e com servidores centrais dedicados, que
autenticam os clientes e distribuem recursos a eles.
Ainda como exemplo, o LANtastic criado pela Artisoft inclui software especializado em um
chip no ROM2 da placa de rede, que executa funções de gerenciamento da ligação física. Com isso,
o NOS transfere para esse software a tarefa de busca e acesso aos recursos em rede, resultando em
transmissão mais rápida de dados através da rede. Mas assim como o NetWare, perdeu muito
espaço no mercado após o lançamento do Windows 95. Em 2006 LANtastic suportava inclusive
Windows XP.
O Mac OS da Apple também trabalha como sistema operacional de rede.
3.2 - Sistemas operacionais distribuídos
Conceitualmente, um sistema operacional distribuído é para integrar cooperativamente a
tarefa de processamento nos computadores que compõem essa rede. E isso de forma transparente
para os usuários, que têm a sensação de que o sistema se comporta como uma arquitetura
multiprocessada.
Sistema distribuído é composto por uma coleção independente de computadores em rede,
mas que para o usuário aparenta ser um só: o hardware é composto de máquinas autônomas, e o
software fornece ao usuário a abstração de ser uma única máquina. O sistema operacional que roda
nas máquinas dessa rede é que distribui a tarefa de processamento entre os computadores, com
ausência de memória compartilhada entre essas máquinas.
Nesse sistema, os recursos são disponibilizados na rede de forma transparente ao usuário.
Teoricamente, implica em dizer que os usuários nem percebem que esses recursos estão disponíveis
na rede e não na máquina local.
Aliás, é essa a diferença entre sistema distribuído e rede de computadores: no primeiro caso
o usuário vê um único sistema e acha que todos os recursos são locais, no segundo caso o usuário
precisa explicitamente solicitar pelo recurso na rede.
Numa definição resumida, um sistema distribuído representa um caso especial de rede, e a
principal distinção entre eles está no software de comunicação e não no hardware. Este software é
usualmente denominado de sistema operacional de rede.
A vantagem desse sistema é justamente a simplicidade e facilidade de instalação,
administração e uso. Contudo, o sistema distribuído é menos confiável que o sistema clienteservidor, e em geral requer estações de trabalho mais poderosas para algumas atividades, como é o
caso de compartilhar uma base de dados ao invés de disponibilizá-la num servidor de banco de
dados. Nesse exemplo específico, não apenas as estações envolvidas no compartilhamento sofrem,
como também a rede fica sobrecarregada pelo tráfego de dados excessivos e desnecessários.
2 ROM: Read Only Memory, ou memória somente de leitura.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
4/8
Parece claro que o aspecto dimensão da rede afeta a melhor escolha do sistema a ser
implantado, de um modo geral se a rede for pequena [poucas estações de trabalho] o sistema
distribuído é ideal, já se a rede for grande deve-se partir para o sistema cliente-servidor. No sistema
distribuído existe uma forte dependência da rede, pois parte significativa dos recursos são acessados
desse modo.
Ainda assim, o sistema distribuído é mais confiável que, por exemplo, um sistema
centralizado onde todos os recursos estão na mesma máquina [pois a máquina central poderia parar
e com isso toda a atividade em rede pararia]. No sistema operacional distribuído, em caso de falha
de uma máquina o sistema como um todo pode sobreviver, apesar da degradação no desempenho.
Além de ser mais confiável, existe o crescimento incremental: mais e mais máquinas podem
ser adicionadas ao sistema distribuído, que pode até melhorar o desempenho de processamento. Isso
contrasta com o sistema centralizado.
As vantagens do sistema distribuído estão no compartilhamento de dados, dispositivos,
periféricos e comunicação em rede. Esse sistema é mais flexível do que máquinas simplesmente
isoladas.
Outra vantagem é a econômica, pois aproveita e usa máquinas ociosas nessa rede.
Como desvantagem temos a segurança inadequada, pois os recursos computacionais são
compartilhados entre todos os usuários. Outra desvantagem é que a rede precisa ser bem
dimensionada para poder dar vazão à demanda de diferentes computadores que se comunicam para
dividir a tarefa de processamento.
Mas a principal desvantagem é a necessidade de sistemas operacionais específicos e a quase
ausência de software de alto nível disponível para sistemas distribuídos.
Atualmente, sistemas operacionais distribuídos ainda não estão comercialmente disponíveis.
Embora teoricamente vantajoso, comercialmente tem sido um fracasso a implantação desses
sistemas.
Alguns exemplos de sistemas operacionais distribuídos são:
•
•
•
•
•
•
Amoeba
Athena
Mach
Plan 9
V System
Sprite
http://amoebaos.org/, http://www.cs.vu.nl/pub/amoeba/
http://ist.mit.edu/services/athena
http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html
http://plan9.bell-labs.com/plan9/
http://en.wikipedia.org/wiki/V_(operating_system)
http://www.eecs.berkeley.edu/Research/Projects/CS/sprite/sprite.html
4 - Outras classificações para sistemas operacionais
4.1 - Sistema descentralizado
Introdução aos Sistemas Operacionais - www.jairo.pro.br
5/8
Em um ambiente descentralizado, cada usuário cuida do seu sistema, dos seus aplicativos e
dos seus dados (arquivos). Contudo, essa independência pode levar a duplicação de dados e
inconsistências, além de redundâncias desnecessárias. Além dos problemas já citados, essa
implementação também implica em maiores custos de hardware, manutenção, suporte e operação.
O sistema descentralizado somente está sendo citado aqui para efeito de comparação com o
próximo item, que é o sistema centralizado. Afinal, sistema descentralizado está relacionado ao
ambiente de trabalho adotado em determinada organização, e não especificamente a um tipo de
sistema operacional.
4.2 - Sistema centralizado
No sistema centralizado, um único computador acomoda os dados e recursos
computacionais da organização. Neste caso, o acesso ao computador central se dá a partir de
terminais remotos que formam um conjunto chamado de rede de terminais. Porém, tecnicamente em
alguns casos essa construção não pode ser classificada como rede de computadores.
A sua principal vantagem reside na economia obtida pela aquisição de um único sistema
centralizado ao invés de vários computadores descentralizados, além de facilitar as operações de
gerenciamento, suporte e comunicação entre os usuários.
No passado esse sistema era chamdo de "terminal burro da IBM", mas hoje em dia - apesar
de quase extinto - esse conceito está renascendo justamente pela redução de custos que proporciona
quando comparado com o sistema descentralizado. E o recente barateamento nas técnicas de
virtualização3 tem proporcionado um novo impulso à centralização, mas não implica que a
centralização dependa de virtualização.
Convém citar que esse "renascimento" ocorre agora dentro de um conceito de ambiente em
rede, através de um protocolo padronizado de comunicação.
Aqui, redução de custos na aquisição de um único sistema centralizado não significa apenas
economia de hardware e software, mas também está sendo levado em conta o fato de que muitas
máquinas completas (inclusive com um sistema operacional e aplicativos instalados no sistema de
arquivo) estão mais suscetíveis a problemas que acarretam custos de help desk e suporte técnico.
A desvantagem reside no próprio sistema centralizado, que é um ponto único de falha: se ele
parar, toda a organização irá parar também.
4.3 - Sistema cliente-servidor
Atualmente, a maioria das aplicações em rede ocorre num paradigma cliente-servidor. Como
o próprio nome diz, nessa transação existem duas partes envolvidas: a do cliente, na forma de um
processo cliente gerado por algum aplicativo (por exemplo, navegador da internet), e a parte do
3 A virtualização foi desenvolvida no anos 1960 para melhor utilização do hardware dos mainframes.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
6/8
servidor, também na forma de um processo (por exemplo, serviço ou servidor web).
No caso do processo cliente, ele é gerado para conectar e transferir os dados para o processo
servidor, que precisa estar o tempo todo "escutando" por alguma requisição do cliente.
Um exemplo clássico é a impressora de rede: o cliente usa determinado aplicativo que, ao
solicitar que imprima, gera um processo cliente que conecta no processo servidor, esse último já na
impressora. Aqui, a rede é um veículo que transporta os dados da estação de trabalho do cliente para
o servidor de impressão através de um protocolo de comunicação comum às duas partes envolvidas
nessa transação.
Convém notar que esse acesso é diferente do sistema distribuído, pois agora o usuário
precisa manifestar a intenção em imprimir em determinada impressora, nitidamente fora do seu
computador desktop.
Outro aspecto do modelo cliente-servidor é o protocolo de comunicação (normalmente
TCP/IP) padronizado tanto para o cliente quanto servidor, além da porta de acesso (porta TCP) no
servidor, que também deve se padronizada e por isso mesmo conhecida do aplicativo cliente.
Com isso, tanto cliente quanto servidor têm a liberade de usar o sistema operacional que for mais
eficiente para a tarefa em questão, pois toda a comunicação está baseada num protocolo de
comunicação em rede que é comum às duas partes envolvidas.
É por essas características de uso intensivo da rede, além do desejo de otimizar recursos de
hardware, que são construídos sistemas operacionais voltados para tarefas específicas em rede. É
daí que vem o conceito de sistema operacional desktop (estação de trabalho) e servidor. Por
exemplo, o Windows 7 é um sistema tipicamente desktop, já os sistemas operacionais da famíla
Unix (Solaris, AIX, HP-UX, etc.) de um modo geral estão tipicamente voltados para a tarefa de
servidores.
4.4 - Sistema baseado na WWW
O conceito de aparelho de rede, aparelho de informação ou aparelho de internet engloba
uma grande quantidade de equipamentos que normalmente difere dos computadores pessoais por
suportar geralmente uma aplicação única como navegador web ou correio eletrônico e, em muitos
casos, nem ao menos possuirem teclado, mouse ou monitor.
Esses equipamentos portáteis são muito úteis para aqueles usuários que querem ter acesso
móvel à internet sem ter de arcar com os problemas e custos de um computador normal. Como
exemplos temos computadores de mão como o PalmPilot, smartphone, alguns game players e
tablet. Atualmente até aparelhos de televisão (smart TV) permitem navegar na internet.
Existe também o conceito de computadores de rede, similares a estações de trabalho Unix
sem disco (X-terminal diskless), que são sistemas reduzidos e usam a rede para acessar as
aplicações e guardar arquivos e pastas de trabalho. Por serem bem simples, os computadores de
rede exigem muito pouca manutenção, suporte e help desk, daí o crescente interesse neles
atualmente.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
7/8
Por exemplo, pode-se imaginar determinada empresa que, para economizar custos de
hardware, software e help desk, adota computadores de rede e contrata os serviços de um provedor
de serviço de aplicação (ASP - Application Service Provider) para fornecer tanto o acesso à internet
quanto a disponibilização de aplicativos como editores de texto e espaço para armazenamento de
dados para que seus funcionários possam trabalhar e salvar seus arquivos. Os funcionários podem
então rodar todos os aplicativos disponibilizados pelo ASP, além de disporem de algum espaço em
disco para salvar seu trabalho.
Como exemplos tem o thin client [cliente magro] e LTSP4.
Paradoxalmente, o sistema baseado na WWW nos remete de volta ao quadro antigo do
sistema centralizado, só que agora com uma cara nova quando comparado com o teminal burro.
4 LTSP: Linux Terminal Service Project [http://www.ltsp.org/].
Introdução aos Sistemas Operacionais - www.jairo.pro.br
8/8
Download