Trabalho desenvolvido pelo alunos
- Arley Pereira
- Bruno da Cunha Lima
- Gerson Bizerra da silva
- João Batista de Oliveira Amaral
- Rafael Soares
- Ricardo Henrique N. S. Júnior
- Vanessa Costa
- Willian Vieira Resende
INTRODUÇÃO
O Amoeba é um sistema operacional que usa computação distribuída. É um sistema de código fonte aberto e que tem o objetivo de construir um S.O. distribuído transparente e que consiga incorporar um grande numero de CPUs distribuídos dentro de uma rede . Foi desenvolvido inicialmente em 1981 na Universidade Vrije em Amsterdam em destaque pelo aluno Andrew S. Tanenbaum e outros estudantes de doutorado, como projeto de de pesquisa em computação distribuída. Teve sua primeira versão lançada em 1983 foi o AMOEBA 1.0.
O presente trabalho irá mostrar a definição, características, o histórico, a tecnologia usada, as versões lançadas e algumas curiosidades.
HISTÓRICO
O sistema operacional amoeba foi criado na Holanda em Vrije Universiteit, Amsterdam, 1981 como projeto de pesquisa em computação paralela e distribuída e teve como autor principal Andrew Stuart Tanenbaum que é o atual chefe do Departamento de sistemas de computação, na Universidade Vrije, Amsterdã nos Países Baixos e mais três estudantes de doutorado em 1983 foi lançado o primeiro protótipo o AMOEBA 1.0.
Em 1984 um novo grupo se formou para novas pesquisas fazendo com que vários países europeus se engajarem no projeto tendo com patrocínio a União Europeia apos isso surge AMOEBA 3.0 que tinha RPC (remote procedure call) diferente dos anteriores com esse novo sistema era possível fazer processamento transparente entre cidades distantes.
O sistema evoluiu incorporando parte do unix, comunicação entre grupos, protocolos de baixo nível este exemplo com o kernel unix é encontrado na versão do AMOEBA 5.0.
Apos isso o sistema AMOEBA entra em desuso pois foi criado basicamente para fins de pesquisa, não tendo a pretensão de ser comercializado.
TECNOLOGIA USADA NO S.O. AMOEBA
Sistema distribuído:
Definição de Andrew Tanenbaum: “é uma coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente";
Definição de George Coulouris: "coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados".
Ou seja, sistema distribuído é a união de diversos computadores com o objetivo de
compartilhar a execução de tarefas. Ações como editar, compilar e mover arquivos, por
exemplo, utilizam diversas máquinas na rede.
Sistemas paralelos:
É constituído de vários processadores tipicamente homogêneos e localizados em um mesmo computador.
Multi computadores - Cada processador possui sua própria memória local.
Multiprocessadores - Os processadores compartilham memória.
DEFINIÇÃO DO S.O. AMOEBA
O Sistema Operacional Amoeba tem como ideia principal um sistema transparente que se pareça a um sistema operacional timesharing tradicional isso para o usuário final mas a diferença esta nas ações e tarefas realizadas. O sistema envolve a participação de várias máquinas dentro de uma rede como servidor de arquivos, servidor de diretórios, e vários tipos de serviços todos interligados pela rede, isso acontece transparentemente sem que o usuário que esta utilizando saiba ou perceba o que esta acontecendo. tudo isso acontece graças a tecnologia de sistemas operacionais distribuídos. segundo a definição de Andrew Tanenbaum é uma "coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente".
Hoje em dia alguns sistemas têm muitos processadores por usuário, ou na forma de um computador paralelo ou uma grande coleção de CPUs , compartilhada por uma pequena comunidade de usuários. Esses sistemas são chamados de sistemas distribuídos. o Amoeba é um sistema operacional ideal para este tipo de tecnologia pode ser executado em diversas plataformas, incluindo SPARC, i386, 68030, Sun 3/50 e Sun 3/60.
CARACTERISTICAS
Facilidade de Expansão: Por ser ser um sistema operacional distribuído o Amoeba apresenta facilidade de expansão, ao contrário de outros sistemas 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.
Sistema confiável: O sistema Amoeba é potencialmente confiável devido à multiplicidade e a um auto grau de autonomia de suas partes. A distribuição física é 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 total sobre processamento e informações locais.
Proteção: O Amoeba oferece 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
figura básica com os principais componentes do S.O. Amoeba (TAN95)
OBJETIVOS DO AMOEBA
O SOAMOEBA não partiu de um SO convencional existente este sistema foi construído do zero. Mais tarde uma emulação UNIX foi incorporada tendo como objetivo inicial, construir um S.O. distribuído que fosse transparente para o usuário final. Ele. se comporta de forma convencional e suas ações se processam em diversas máquinas da rede As máquinas desempenham o papel de servidores de processo, de arquivos, de diretórios, de processamentos, etc sem que o usuário se dê conta AMOEBA não tem uma máquina principal (home machine) As máquinas não tem dono O processamento começa em alguma máquina arbitraria Os comandos vão sendo executados onde for conveniente deixando a máquina menos carregada com isso haverá uma distribuição mais ou menos uniforme de carga
Em um comando amake por exemplo (equivalente ao make do UNIX) os comandos para a recompilação do software são executados pelo sistema, que determina se os comandos se executam em paralelo ou serialmente. O segundo objetivo é servir de ambiente de teste para programação paralela/distribuída. O S.O. AMOEBA foi escrito em linguagem C.
SERVIDORES
Tudo que não é feito pelo kernel é feito pelos servidores. Desta forma, é possível minimizar o tamanho do kernel e melhorar a flexibilidade. O Amoeba é baseado no modelo cliente-servidor. Um conceito central no projeto de software é o conceito de objeto, que é visto como um tipo de dados abstrato. Os objetos são gerenciados por servidores, arquivos, diretórios, segmentos de memória, janelas, processadores, discos e fitas são exemplos de objetos. Quando um processo cria um objeto (arquivo), o servidor que gerencia o objeto (servidor de arquivos) retorna para o cliente uma capacidade (criptografada) para aquele objeto. Para usar o objeto, a capacidade associada ao mesmo deve ser apresentada. Todos os objetos no sistema, software e hardware, são protegidos, tem nome e são gerenciados por capacidades.
Para usar um servidor, o usuário utiliza um procedimento stub (biblioteca) que organiza os parâmetros, envia a mensagem e bloqueia até que a resposta volte. Este mecanismo esconde todos os detalhes de implementação do usuário. Alguns servidores importantes do Amoeba são:
Servidor de Arquivo Bullet Server servidor de arquivos e tem as ações de:Create/Read/Write/Size/Append/Delete
O servidor de arquivos distribuídos Amoeba é chamado de servidor Bullet ou servidor bala. Ele usa um cache de buffer grande para proporcionar alta performance Para o servidor de arquivos, quanto maior a quantidade memória presente, melhor o desempenho.
Directory Server é o servidor de diretórios e sua topologia é hierárquica.
Create/Delete/Append/Replace/Lookup/Getmask/Chmod
Replication Server para objetos funciona como uma especie de cluster
Run server Servidor de Processamento
Boot server para garantir disponibilidade o Amoeba implementa certo grau de tolerância a falhas no sistema através deste servidor, ele verifica se os servidores que deveriam estar ativos, estão realmente ativos, caso não estejam, toma providências que, porventura, levem à correção das falhas
TCP/IP server para comunicação com X-terminais e comunicação geral.
Mesmo usando o protocolo FLIP internamente, o Amoeba em certas comunicações necessita conversar em TCP/IP. Para estabelecer uma conexão, o processo Amoeba faz RPC com o servidor TCP/IP para conseguir um endereço TCP/IP, o processo é bloqueado até que a conexão seja estabelecida ou recusada. Como resposta o servidor devolve uma capacidade para usar a conexão.
MICROKERNEL
O sistema Amoeba apresenta duas partes fundamentais o microkernel, que executa em cada processador e uma coleção de servidores que fornecem a maioria das funções tradicionais de um sistema operacional. O microkernel Amoeba executa em todas as máquinas do sistema (conjunto de processadores, terminal ou servidor). As funções básicas do microkernel são:
1. Gerenciamento de processos e threads
2. Fornecer suporte para gerenciamento de memória (alocação/lib segmentos)
3. Suporte a comunicação (ponto a ponto, em grupo)
4. Tratamento de I/O de baixo nível ( device driver)
CURIOSIDADE
O sistema Amoeba por ser um sistema distribuído tem características usadas no Cluster. O Cluster é um sistema que é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído. Muitas vezes é construído a partir de computadores convencionais, os quais são ligados em rede e comunicam-se através do sistema, trabalhando como se fossem uma única máquina de grande porte.
O sistema Amoeba, demonstra que é possível se criar um sistema operacional distribuído e que tenha um alto desempenho e grande eficiência e que funciona em diversos tipos de hardware isso acontece pelo fato de o sistema estar sempre fazendo balanceamento de carga entre os servidores, é um sistema que quanto maior o numero de servidores e processadores mais robusto e ágil ele fica isso significa que o sistema pode evoluir gradualmente de acordo com a necessidade e para que fim ele sera usado.
(TAN95) TANENBAUM, Andrew S.. Sistemas operacionais modernos. Rio de Janeiro: Prentice-Hall do Brasil, 1995.
SISTEMA OPERACIONAL DISTRIBUÍDO AMOEBA
disponível em:
acessado em 20/04/2011 as 15:00
sistemas operacionais distribuídos
disponível em:
UFF – Universidade Federal Fluminense
Sistemas Operacionais Fora de Mercado
Trabalho de Informática I
disponível em:
acessado em 21/04/2011 as 11:00
bom dia Ricardo Henrique, Meu nome é Danilo Nascimento, sou aluno do curso de ciência da computação Facima - Faculdade de Cidade de Maceió
ResponderExcluirgostei muito do seu trabalho e gostaria de saber se poderia usa-lo como base para uma apresentação sobre sistemas distribuídos?
grato pela atenção e mais uma vez parabéns pelo trabalho!
Ok sem problemas!
ResponderExcluir