sistemas_distribuidos_1

Propaganda
Introdução
Os Sistemas Distribuídos têm, por seu maior objetivo, melhorar a comunicação entre os
computadores, ou melhor, propiciar a integração destes num sentido amplo que pode
envolver facilidade de mudanças futuras, rapidez nas trocas de informações,
confiabilidade na execução dos processos.
Porém, no desenvolvimento de um sistema distribuído encontramos um pequeno
problema: software. Devido ao elevado tamanho e complexidade de sistemas distribuídos,
o seu desenvolvimento exige um conhecimento bastante profundo dessa área e a utilização
de técnicas adequadas de concepção e projeto de sistemas.
1. Sistemas Operacional
Todo computador tem, em seu nível mais básico de software uma camada de inteligência
que dá vida a máquina. Quando você liga o computador, instruções internas orientam-no
para encontrar e rodar o sistema operacional, que continua a operar durante todo o tempo
em que a máquina fica ligada. Esse programa especial supervisiona a operação dos
dispositivos de hardware do computador e coordena o fluxo de controle e de dados. Tais
instruções são conhecidas como chamadas de sistema (system calls), que criam, apagam e
usam diversos objetos gerenciados pelo sistema operacional. Sua principal função é
controlar o funcionamento do computador.
Sistema Operacional tem quatro tarefas básicas:
* Proporcionar uma interface de linha de comando ou uma interface gráfica para o usuário
se comunicar com o computador.
* Gerenciar os dispositivos de hardware do computador.
* Gerenciar e manter os sistemas de arquivos em discos.
* Dar suporte a outros programas.
2. Sistema Distribuído
O sistema distribuído é a existência de um relacionamento mais forte entre os seus
componentes, onde geralmente os sistemas operacionais são os mesmos.
Podem ser considerados também como a evolução para os sistemas fortemente
acoplados, onde uma aplicação pode ser executada por qualquer processador. Os sistemas
distribuídos permitem que uma aplicação seja dividida em diferentes partes, que se
comunicam através de linhas de comunicação, e cada parte podendo ser processada em
um sistema independente. O objetivo do sistema distribuído é criar na cabeça de seus
usuários a ilusão de que toda rede de computadores nada mais é do que um único sistema
de tempo compartilhado (time-sharing), em vez de um conjunto de máquinas distintas.
Portanto um “Sistema Distribuído é aquele que roda em um conjunto de máquinas sem
memória compartilhada, máquinas que mesmo assim aparecem como um único
computador para seus usuário”.
3. Características
De uma forma mais específica, existem algumas características que fazem com que os
sistemas distribuídos sejam indicados em muitos projetos de sistemas, como:
a) Crescimento incremental: um sistema distribuído apresenta facilidades de expansão, ao
contrário de outro sistema que não permitem expansão, a não ser por repetição. A
repetição apresenta o inconveniente de produzir dois ou mais sistemas distintos, em vez de
um sistema maior;
b) Confiabilidade: sistemas distribuídos podem ser potencialmente mais confiáveis devido
à multiplicidade e a um certo grau de autonomia de suas partes. É notório que a
distribuição física não é tão importante quanto a distribuição lógica. Esta última pode ser
implementada tanto a um único processador quanto a vários processadores localizados
num mesmo ambiente ou em ambiente distintos . A distribuição física está mais ligada a
questões de desempenho, tempo de resposta, organização do sistema e principalmente à
possibilidade de ter-se controle explicito sobre o processamento e informações locais;
c) Estrutura : sistemas distribuídos podem refletir a estrutura organizacional à qual eles
servem ;
d) Proteção: sistemas distribuídos podem oferecer mais segurança do que sistemas
centralizados. A segurança resulta muito mais da distribuição lógica do sistema do que da
sua distribuição física.
A estrutura de Sistemas Distribuídos pode ser visualizadas em camadas. A camada mais
interna , corresponde ao hardware, que é quem suporta todas as outras camadas de
software. Em seguida vem o núcleo, que é a primeira camada de software a envolver o
hardware, sobre esse núcleo (kernel), situa- se o sistema operacional propriamente dito,
que fornece o suporte necessário à execução de programas. E em seguida, tem-se a
camada mais externa, correspondente ao nível de aplicação.
4. Aspectos de tolerância a falhas
Pelo fato de sistemas distribuídos possuírem múltiplas partes de hardware e de software
funcionando conjuntamente, as chances de algumas dessas partes falhar é bem maior do
que ocorreria num sistema simples.
Um sistema distribuído pode apresentar falhas de vários tipos, dentre as quais aquelas
provenientes de defeitos nas linhas de comunicação que interligam os processadores e
aquelas referentes a colapsos nos processadores.
Em sistemas tolerantes a falhas, o efeito de defeitos e interferências indevidas pode ser
superado através de redundância temporal e/ou redundância física. A redundância
temporal corresponde à determinação de um resultado através de execuções repetidas da
mesma operação pelo mesmo elemento, usando eventualmente métodos diferentes. A
redundância física consiste em ter-se elementos repetidos capazes de executar a mesma
operação. Esses elementos referem-se tanto ao hardware quanto ao software do sistema.
Um sistema, quando não funciona bem, apresenta como conseqüência resultados
incorretos conhecidos por erros. A causa dos erros é a presença de defeitos ou
interferências indevidas, conhecidos por falhas, que aparecem tanto a nível de hardware
quanto de software. Ao evento que corresponde ao desvio de comportamento esperado do
sistema denominamos falha.
Até hoje, quando um computador falha, existe uma forte torcida para que seus usuários
aceitem este fato como “coisas da vida”. Infelizmente, as pessoas estão ficando “mal
acostumadas”, na expectativa de que os serviços que lhe são oferecidos não falhem. Se um
canal de televisão, ou sistema telefônico, ou sistema de distribuição de energia saírem do
ar por meia hora, no dia seguinte haverá uma grita geral dos usuários contra a infeliz
companhia concessionária. À medida que os sistemas distribuídos tornam-se mais
difundidos, cresce a demanda por sistemas que nunca falham. Os sistemas atuais não
preenchem esta necessidade.
Obviamente, como já foi dito, os sistemas tolerantes a falhas vão precisar de
considerável redundância do hardware e da infra-estrutura de comunicação. Também será
necessário a redundância do software e mais especificamente dos dados. A replicação de
arquivos será uma questão essencial para os futuros sistemas. Os sistemas terão também
de ser projetados de maneira a funcionar quando somente parte dos dados estiverem
disponíveis, uma vez que a insistência em se ter todos os dados disponíveis todo o tempo
não leva a sistemas tolerantes a falhas. Vale observar que o fato de se Ter o sistema
indisponível por alguns instantes, hoje considerado aceitável, torna-se cada vez menos
razoável, `a medida que o computador vai sendo difundido e usado por não-especialistas.
5. Aspectos de Projeto
Existem alguns aspectos importantes que as pessoas envolvidas no projeto no sistema
distribuído devem tratar necessariamente:
5.1. Transparência:
Este aspecto faz com que um conjunto de máquinas seja visto por seus usuários como se
fossem simplesmente um único sistema de tempo compartilhado.
Tipos distintos de transparência em um sistema distribuído:
* Migração: Os recursos podem mudar de lugar sem ter que mudar seus nomes.
* Replicação: Os usuários não devem saber quantas cópias existem.
* Concorrência: Vários usuários podem compartilhar automaticamente os recursos.
* Paralelismo: Podem ocorrer atividades paralelas sem que os usuários venham a saber.
5.2. Flexibilidade:
É muito importante que o sistema seja flexível as decisões do projeto que hoje parecem
bem razoáveis poderão revelar-se erradas mais tarde. A melhor maneira de se evitar
problemas é mantendo várias opções em aberto (flexibilidade).
5.3. Confiabilidade:
Os dados confiados à guarda dos sistemas não podem de maneira nenhuma, sofrer
qualquer tipo de adulteração ou perder-se . o aspecto da confiabilidade global é a
segurança. Os arquivos e de mais recursos devem ser protegidos contra uso-nãoautorizado. Isso se torna crítico no caso dos sistemas distribuídos.
Em geral, um Sistema Distribuído pode ser projetado para “mascarar” falhas ocorridas,
esconder do seus usuários.
5.4. Performance:
O problema da performance é muito influenciada pela comunicação. O envio de uma
mensagem e a obtenção da resposta correspondente demora em torno de um milissegundo,
e a maior parte desse tempo é gasto no tratamento do protocolo, quando deveria ser gasto
na transmissão dos bits propriamente ditos. A dificuldade dessa técnica é que para ganhar
performance é preciso ter várias atividades rodando em paralelo em diferentes
processadores, mas para isso é necessário a transmissão de muitas mensagens.
5.5. Escabilidade:
Um sistema verdadeiramente escalável deve ajustar-se às necessidades crescentes e
permitir a adição de novos recursos.
6. Desempenho de um Sistema Distribuído
O desempenho, considerado fator primordial de um Sistema Computacional Distribuído,
é analisado sobre o ponto de vista do usuário através dos tempos de resposta obtidos a
partir de uma requisição.
Na Estação de Trabalho/Servidor, vários são os elementos que afetam o desempenho do
Sistema. Entretanto, destacam-se os elementos Estação de Trabalho, Servidor e Rede de
Comunicação, considerados os mais importantes para análise de desempenho.
7. Elementos que afetam o desempenho de um Sistema Distribuído
Os elementos estação de trabalho, servidor e rede de comunicação são considerados os
mais relevantes para análise de desempenho de um Sistema Distribuído. O desempenho
individual de cada elemento é diretamente influenciado pelos demais, como pode ser
observado nas seguintes situações:
* Servidores com grande capacidade de processamento, meio de comunicação de alta
velocidade de estações de trabalho com baixa capacidade de processamento: as estações
de trabalho não conseguem processar as informações na mesma velocidade em que estas
chegam e, com isso, o tempo de resposta observado pelos usuários não é satisfatório,
considerando-se as características dos servidores e do meio de comunicação.
* Estações de trabalho com grande capacidade de processamento, meio de comunicação
de alta velocidade e servidores com baixa capacidade de processamento em relação à
carga de trabalho: as estações de trabalho precisam esperar as informações requisitadas
aos servidores para continuar o processamento do job e, com isso, o tempo de resposta
observado pelo usuário também não é satisfatório, considerando-se as características das
estações de trabalho e do meio de comunicação.
* Servidores e estações de trabalho com grande capacidade de processamento e meio de
comunicação de baixa velocidade: o tempo gasto na transmissão das informações degrada
o tempo de resposta, tornando-o pouco satisfatório considerando-se as características dos
servidores e das estações de trabalho
8. Processamento Distribuído (Cliente/ Servidor)
É um tipo de processamento descentralizado em que os computadores comunicam-se uns
com os outros através de vários meios de comunicação tais como barramentos de alta
velocidade ou linhas telefônicas. Eles não compartilham nem a memória principal e nem o
processamento das informações. Os processadores em um sistema distribuído podem
variar em tamanho e função. Podem incluir pequenos microcomputadores, estações de
trabalho, minicomputadores e sistemas de computadores de uso geral. Esses processadores
são chamados por diversos nomes tais como: nós, locais(sites) e computadores.
9. Software Distribuído
Dos quatro elementos de um sistema que podem estar distribuído - hardware, dados,
programas e controle -, os três últimos referem-se ao software. A distribuição de dados
levou ao desenvolvimento de uma área bastante extensa, envolvendo sistemas de arquivos
distribuídos, e sistemas de banco de dados distribuídos. A seguir, consideramos os
aspectos de distribuição de controle, cuja influência no desenvolvimento de sistemas
operacionais tem sido determinante.
Para iniciarmos o estudo da distribuição de programas (algoritmos), é necessário que
sejam abordados os seguintes tópicos:
* um programa é dito distribuído se estiver espalhado por vários ambientes, ou seja, se
alguns processadores (ambientes) não puderem executar alguns passos do programa, pelo
fato de eles pertencerem a outros ambientes;
* qualquer programa seqüencial ou paralelo pode ser um programa distribuído.
Diante disso, um programa será distribuído se puder ser estruturado em partes, formadas
por grupos de instrução e conhecidas como componentes do programa, colocadas de
forma que cada parte só possa ser executada pelo processador a ela associado. Os
componentes do programa separados pelo subsistema de comunicação são conhecidos
como remotos uns aos outros. A troca de informações entre componentes remotos do
sistema deverá ocorrer por transferência de mensagens, através do meio de comunicação.
Como exemplo de programa distribuído pode-se citar o programa seqüencial formado por
um programa principal e sua sub-rotina, localizados de forma a serem remotos um ao
outro.
10. Estruturação de Sistemas Distribuídos
10.1 Estruturação baseada na distribuição física
Dentre os vários modelos baseados da distribuição física, encontram-se o modelo
hierárquico, o do cache de CPU, o usuário servidor e o modelo de conjunto de
processadores.
No modelo hierárquico, os computadores são dispostos em uma rede sob a forma de
árvore, de maneira que quanto mais próximos estiverem da raiz, mais potentes deverão
ser. O computador da raiz tratará, de forma geral, do sistema como um todo, enquanto que
os computadores distantes da raiz tratarão de tarefas específicas e especializadas.
O modelo de cache de CPU consiste na utilização de computadores de menor porte
como elementos que interligam terminais com uma grande CPU. Nesse caso, uma parte do
processamento será executada no computador ligado ao terminal, e a outra parte no
computador central.
O modelo usuário-servidor surgiu na medida em que os computadores pequenos,
crescendo em potência e tendo seus preços reduzidos, diminuíram gradativamente a
importância do computador central do modelo cache de CPU.
10.2 Estruturação Lógica
10.2.1.Modelo de processos
Esses processos podem encapsular tanto elementos ativos com natureza, consistindo
dos programas referentes às atividades do sistema e do usuário quanto elementos
naturalmente passivos correspondendo aos recursos e suas respectivas operações,
confinados em gerenciadores de recursos. A comunicação entre os processos,
implementada pelo sistema operacional, pode ocorrer de duas formas:
* Chamada remota de procedimento: este tipo de comunicação entre processos é bastante
dependente da linguagem usada para implementação do sistema, devendo satisfazer suas
restrições com relação a chamada de procedimento e a passagem de parâmetros.
* Troca explícita de mensagem: este já é mais flexível do que o anterior, suas restrições
estão relacionadas com a existência de ligações implícitas ou explícitas entre os processos
e com a interpretação da mensagem.
10.2.2.Modelo de objetos
O modelo de objetos baseia-se no encapsulamento das várias partes de um sistema em
elementos denominados objetos que são estruturados de forma a apresentarem um
conjunto de operações responsáveis pelo seu comportamento. Para conseguir acessar um
objeto, um processo deve ter capacidade de fazê-lo, usando o conhecimento do nome do
objeto e a posse da autorização para cessar algumas ou todas as suas operações.
11. Processos e Processadores em Sistemas Distribuídos
11.1. Modelos de Sistemas
Os processadores em um sistema distribuído podem ser organizados de diversas
maneiras. Nesta seção iremos mostrar duas das organizações mais comuns, modelo de
estação de trabalho e o modelo de pool de processadores.
11.1.2. O modelo da estação de trabalho
É extremamente simples: o sistema é composto de estações de trabalho (computadores
pessoais de alto desempenho), podendo estar espalhadas por um edifício. E em alguns
sistemas as estações de trabalho têm um disco local, e em outros não. Esta última é
conhecida como estações diskless. Se as estações forem diskless, o sistema de arquivos
deverá ser implementado em um ou mais servidores. As requisições de leitura e escrita são
enviadas ao servidor que realiza a operação solicitada e envia de volta o resultado.
11.1.3. O Modelo Pool de Processadores
Neste modelo é entregue ao usuário terminais gráficos de alta performance, a exemplo
dos terminais X, apesar de poderem ser usadas estações de trabalho de pequeno porte. E
todos os processadores pertencem igualmente a todos os usuários.
12. Sistemas Operacionais Distribuídos
O núcleo é a base sobre a qual se constrói o sistema operacional distribuído sua
função consiste em transformar o hardware e o software de baixo nível do sistema em
uma máquina virtual que ofereça as facilidades necessárias ao sistema operacional.
Este sistema compreende um único sistema operacional homogêneo implementado para
o ambiente como um todo.
12.1. Núcleo
O núcleo de um sistema operacional distribuído é formado por um conjunto de vários
núcleos individuais, que devem atuar, cada um, na sua esfera de ação e cooperar entre si
no sentido de gerar um ambiente uniforme capaz de fornecer o suporte necessário a
sistemas operacionais.
12.2. Sistemas Operacionais Distribuídos em Ambientes Multiprocessadores
Este sistema utiliza a organização de supervisor separado em cada nó com estruturas
parcialmente repetidas e repartidas.
12.3. Sistemas Operacionais Distribuídos em Ambientes Formados por Redes de
Computadores
Este sistema pode ser classificado como sistemas operacionais de redes ou sistemas
operacionais distribuídos.
12.4. Sistemas Operacionais de Rede
Neste sistema cada máquina contém seu próprio sistema operacional individual
complementado com facilidades de comunicação, permitindo a interação entre as várias
máquinas e seus sistemas. Esses sistemas operacionais são utilizados geralmente na
conexão de computadores heterogêneos e geograficamente dispersos, no sentido de
permitir o compartilhamento implícito de recursos.
Diferença entre redes de computadores e sistemas distribuídos:
Um sistema onde há um grande número de computadores autônomos, interconectados e
é denominado redes de computadores.
Há uma considerável confusão entre redes de computadores e um sistema distribuído.
A distinção fundamental é que em um sistema distribuído a existência de computadores
autônomos transparente (não visível) para o usuário. Ele pode digitar um comando para
rodar um programa e o programa é executado. É tarefa do sistema operacional selecionar
o melhor processador, achar e transportar todos os arquivos de entrada para esse
processador e colocar os resultados no lugar apropriado.
O usuário de um sistema distribuído não percebe a existência de múltiplos
processadores.
Com uma rede, um usuário precisa abrir explicitamente uma sessão em uma máquina,
submeter explicitamente uma tarefa remota, mover explicitamente os arquivos e de
maneira geral, lidar pessoalmente com a gestão da rede. Em um sistema distribuído, nada
precisa ser feito explicitamente; tudo é feito de forma automática pelo sistema, sem o
conhecimento do usuário.
13. O Sistema Operacional Distribuído Amoeba e Unix
13.1. O Amoeba
É considerado um sistema operacional distribuído, pois faz um conjunto de processadores
e dispositivos de entrada/saída funcionar como se fosse um único computador.
13.1.1. Histórico
1981- Início do projeto. Projeto de pesquisa na área de computação paralela e
distribuída. Concebido por Andrew S. Tanenbaum e três alunos de doutorado, Amsterdã,
Holanda.
1983- Primeiro protótipo do sistema, o Amoeba 1.0.
A partir de 1984- Criação de um segundo grupo de pesquisas, sob a liderança de
Mullender, Amsterdã. Baseava-se em chamadas remotas e procedimentos.
O sistema continuou evoluindo ao longo do tempo, adquirindo características novas, da
emulação parcial do Unix, da comunicação em grupo e de um novo protocolo de baixo
nível.
13.1.2. Objetivos da Pesquisa
O projeto Amoeba não baseou-se em nenhum sistema operacional já existente. Ele
começou do nada. A idéia principal era experimentar novos conceitos, sem compromisso
de compatibilidade com qualquer sistema já existente.
Principais objetivos:
* Contrução de um sistema operacional distribuído totalmente transparente. A principal
diferença entre o Amoeba e os demais sistemas operacionais distribuídos é o fato de que o
Amoeba não suporta o conceito de “máquina hospedeira”.
* Fornecer um ambiente de teste de experiências em programação paralela e em
programação distribuída. O Amoeba aceita dois tipos de usuários: aqueles que o utilizam
como um sistema tradicional de compartilhamento de tempo e outros interessados em
experiências com algoritmos distribuídos e algoritmos paralelos.
13.2. Unix Distribuído
Unix é talvez o exemplo melhor conhecido de um sistema operacional multi-usuário.
Desde que já estava em uso difundido e facilmente disponível, quando os sistemas
distribuídos estavam sendo desenvolvidos, muitos pesquisadores e desenvolvedores de
sistemas distribuídos adotaram o modelo provido pelo Unix. Eles visaram produzir
implementações do modelo Unix que poderiam explorar os recursos de muitos
computadores, oferecendo instalações e desempenho que excederam aqueles dos simples
sistemas multi-usuário que eles substituíram. As melhorias só não estavam em
desempenho, mas em confiabilidade, extensibilidade e suporte para aplicações que
envolvem comunicação.
O modelo de Unix distribuído foi implementado em várias formas. A maioria
amplamente usada e desenvolvido pela Sun Microsystems, uma manufatura de Work
Station que levou o BSD Unix de Berkeley como o ponto de partida para um esforço de
software extenso que conduziu ao desenvolvimento do Network File System bem conhecido
como (NFS). Este componente de software e sua chamada de procedimento remoto
associado (RPC) e Network Information Service (NIS) componentes são oferecidos agora
quase por todo distribuidor de estação de trabalho (sob licença de Sun Microsystems) e é
usado como base para as maiores tendências das implementações distribuídas do Unix.
Outras implementações distribuídas do Unix foram empreendidas nos esforços que
visaram remover algumas das limitações e dificuldades associadas com a definição de
Unix original e alcançar sistemas de maior extensão além do possível com o sistema Unix
multi-usuário.
Embora o desenvolvimento do sistema Unix distribuído ofereça obvias vantagens
comerciais e técnicas, o Unix foi projetado originalmente para se encontar ao alcance
restringido de exigências numa época onde as limitações de hardware de computador
restringiam o âmbito das ambições dos projetistas. Uma geração nova de sistemas
operacionais distribuídos projetam metas que vão das visões do Unix que está surgindo
agora. Um atributo importante de sistemas operacionais distribuídos é sua extensão uma
característica que habilita o sistema a ser estendido para reunir novas exigências e
aplicações e as necessidades de usuários.
14. Vantagens
14.1. Vantagens do Sistema Distribuído sobre Os Centralizados
Os sistemas distribuídos oferecem uma economia muito grande, pois os
microprocessadores tem uma melhor relação preço/performance do que a oferecida pelos
mainframes , por isso a descentralização está caindo continuamente.
Outra razão para se construir sistemas distribuídos é o fato de muitas aplicações serem
eminentemente distribuídas. Em um sistema de automação industrial que controla robôs e
máquinas ao longo de uma linha de montagem, é interessante que cada robô e cada
máquina tenham seu próprio processador. Se todos estes processadores estiverem
conectados, teremos um sistema distribuído de automação industrial. No caso de
aplicações críticas, como controle de instalações nucleares, ou o controle do tráfego
aéreo, o uso de sistemas distribuídos é de fundamental importância.
14.2. Vantagens do Sistema Distribuído sobre Pcs Independentes:
O compartilhamento é a maior vantagem que os sistemas distribuídos tem sobre os Pcs
independentes, pois o compartilhamento de dispositivos permite que vários usuários
tenham acesso a periféricos muito caros, tais como as impressoras laser a cores, as
máquinas de fotocomposição, e os dispositivos de armazenamento de alta capacidade,
especialmente os óticos, são também candidatos.
Outra razão para se fazer a conexão de um grupo de máquinas isoladas,
transformando-as em um sistema distribuído é conseguir melhorar a comunicação entre as
pessoas. Como exemplo temos o correio eletrônico, que possui muitos atrativos em relação
aos meios de comunicação tradicionais.
15. Desvantagens dos Sistemas Distribuídos
Apesar das vantagens em relação aos sistemas distribuídos centralizados, existem algumas
desvantagens que serão relacionadas neste item.
O primeiro problema está relacionado com a falta de software no mercado.
O segundo problema potencial é o das redes de comunicação. Aqui, o ponto principal é
a possibilidade de que sejam perdidas mensagens na rede, o que nos obriga a utilizar um
software especial para fazer a manipulação das mensagens. Outro aspecto relativo às
redes é a possibilidade de elas ficarem sobrecarregadas com o tráfego gerado pelo
intercâmbio de mensagens.
O terceiro problema está relacionado com a segurança dos dados, pois os dados
secretos podem ser acessíveis com grande facilidade.
Conclusão
Só de expressarmos a palavra “Distribuído” do termo Sistemas Distribuídos, podemos
notar a amplitude e o grau de complexidade que esse termo nos propõe. Portanto, sua
exploração mostrou seus aspectos principais sem se preocupar tanto com os detalhes.
A objetividade deste trabalho visou então a introdução dos Sistemas Distribuídos para
que os usuários tenham a ilusão de que toda a rede de computadores nada mais é do que
um único sistema de tempo compartilhado (time-sharing).
Bibliografia
NORTON, Peter. Introdução à Informática..
São Paulo: Makron Books,1996. 619p.
FRAGA, Josiel Adriano. Sistemas Operacionais Distribuídos.
Taquaritinga: Fatec, 1997. 66 p. (Monografia)
SILVA, Diller Grisson. Manual de Informática.
São Paulo: D'Livros,1997. 510p.
TANENBAUM, Andrew S.Redes de Computadores. 2 ed.
Rio de Janeiro: Campus,1994. 786p.
Internet
Universidade Federal do Rio Grande do Sul
http:// www.ufrgs.br
Data da Pesquisa: 15/03/1999
Universidade Federal da Bahia
http:// www.ufba.br
Data da Pesquisa: 17/03/1999
Universidade de São Paulo
http:// www.usp.br
Data da Pesquisa:17/03/1999
Download