1. Sistemas Operacionais Distribuídos
Até aqui foram abordados vários aspectos que procuram caracterizar, de maneira bastante clara, o que
vem a ser um sistema distribuído. Contudo, para que um sistema seja realmente distribuído, no mais
completo significado do termo, ele deverá apresentar-se aos seus usuários como uma entidade única. A
entidade que confere essa característica a um sistema distribuído é o seu sistema operacional, denominado
sistema operacional distribuído.
Um sistema operacional distribuído é aquele que torna invisível aos usuários a existência dos vários
elementos processadores que estão a sua disposição. Desse modo, o conceito chave é a "transparência".
Uma outra forma de se definir um sistema operacional distribuído é como sendo uma máquina virtual
organizada em níveis hierárquicos, cada qual funcionando como uma máquina abstraia, e possuidora das
seguintes características:
- Homogeneidade;
- Descentralizarão de controle;
- Compartilhamento dos recursos de comunicação;
- Compartilhamento implícito dos recursos de computação;
- Tolerância a faltas(falhas).
Dentro da filosofia de estruturação de sistemas operacionais distribuídos como máquinas abstraias
estruturadas hierarquicamente, o núcleo é uma máquina virtual que situa-se imediatamente sobre o
hardware do sistema. Em sistemas operacionais distribuídos, o núcleo do sistema operacional deverá estar
distribuído, ou seja, deverá ser formado pelos vários núcleos individuais que fazem de cada elemento
processador pertencente ao sistema distribuído. Esses núcleos individuais poderão ser iguais ou diferentes.
Essa escolha é uma questão de projeto e depende do paradigma do sistema para o qual se destina o
sistema operacional distribuído em questão. Núcleos iguais são mais adequados aos paradigmas "conjunto
de processadores" e "orientado ao fluxo de dados", enquanto que núcleos diferentes são mais adequados
aos paradigmas "hierárquico", "cache de cpu" e "cliente-servidor".
Sistemas Operacionais de Rede versus Sistemas Operacionais Distribuídos.
Os Sistemas Operacionais de Rede diferem dos Sistemas Operacionais Distribuídos nas seguintes
características: cada elemento processador tem seu próprio sistema operacional; cada usuário trabalha no
seu próprio elemento processador, necessitando quando necessário conexão remota para outro elemento
processador, não existindo alocação dinâmica de processos; os usuários tem conhecimento da localização
de seus arquivos, não sendo o sistema operacional que gerencia a localização aos mesmos; e os Sistemas
Operacionais de Rede tem pouco ou nenhum recurso para tolerância a faltas (falhas).
O grau de transparência pode ser analisado com relação a três aspectos: Gerenciamento de arquivos,
mecanismos de proteção e gerenciamento deprocessos.
O gerenciamento de arquivos pode ser feito de três maneiras. Na primeira, cada elemento processador
tem seu gerente de arquivos independente, não possibilitando que um usuário tenha acesso a um arquivo
que não esteja sob os auspícios do gerente de arquivos do seu elemento processador. Na segunda maneira,
isso já é possível, contudo, o usuário terá que explicitar em que o elemento processador se encontra o
arquivo desejado. A terceira abordagem é a utilizada em sistemas operacionais distribuído, e consiste em ter-
se um gerente de arquivos único e global, visível para todos os elementos processadores. Nessa abordagem
o balanceamento no tocante a utilização dos discos é feita pelo próprio sistema operacional.
Os mecanismos de proteção definem para o sistema, entre outras coisas, a forma de identificação do
usuário. Em sistemas operacionais de rede o usuário possui uma identificação para cada um dos elementos
processadores remotos que ele tem acesso. Nesse caso o usuário deve informar o identificador para se
2. conectar a um elemento processador remoto, ou então, o próprio sistema operacional pode fazer a
conversão do identificador local para o remoto, utilizando-se de tabelas de mapeamento. Já os sistemas
operacionais distribuídos associam apenas um identificador a cada usuário, válido para todos os elementos
processadores que façam parte do sistema distribuído.
No tocante ao gerenciamento de processos, um sistema operacional distribuído, quando da necessidade
de criar um processo, analisa a carga global do sistema e os recursos a serem usados pelo processo, de
modo a deixar o sistema balanceado. Essa preocupação não existe em um sistema operacional de rede, o
processo é criado no elemento processador que se encontra a entidade que está solicitando a criação ou
então em um elemento processador informado explicitamente por essa entidade.
Um aspecto importante, e que deve ser enfatizado, no tocante a diferença entre esses dois tipos de
sistemas operacionais, é a sua forma de implementação. Um sistema operacional de rede é implementado
de forma a manter os sistemas operacionais locais dos vários elementos processadores que compõem o
sistema, funcionando como uma camada de software entre o sistema operacional local e o seu núcleo. Já
um sistema operacional distribuído é implementado como uma entidade única e que abrange todos os
elementos processadores do sistema, possuindo o seu próprio núcleo distribuído.
Pelo acima exposto, fica claro que, atualmente, o que existe disponível a nível de mercado são produtos
conformantes com o conceito de sistemas operacionais de rede, tais como, Netware da Novell, Lan Manager
da Microsoft, Lan Server da IBM e SNA a IBM.
Atividade
Elaborar uma resenha apontando os pontos principais do artigo tais como diferenças, vantagens,
desvantagens e o que vocês acharem interessante para o debate.