Sistemas Operacionais e Algoritmos Distribuídos
Classificado em Computação
Escrito em em português com um tamanho de 3,55 KB.
A filosofia do projeto Mach é ter um núcleo simples e extensível centrado em recursos de comunicação.
Chorus – O sistema operacional surgiu no instituto francês INRA em 1980, com um projeto de estudo de sistemas distribuídos. É um microkernel de tempo real embarcado, normalmente usado em ambientes de aplicativo distribuídos de baixo custo, nos quais precisam de um mínimo de funcionalidade e de uso de memória mínima. É um sistema operacional altamente escalável e confiável, tanto que foi estabelecido entre os provedores de telecomunicações de topo.
Exemplos:
Cartões de crédito, telefones portáteis, impressoras, robôs etc.
Amoeba – É um sistema operacional distribuído baseado em um microkernel e de código aberto criado por Andrew S. Tanenbaum e outros na Universidade Vrije na Holanda. O objetivo era construir um sistema operacional de tempo compartilhado que fizesse um conjunto de computadores em rede comportar-se como uma única máquina ao usuário.
O Amoeba pode ser executado em diversas plataformas como:
- Sparc
- i386
- 68030
- sun3/50
- sun 3/60
O sistema usa o FLIP (Fast, Local, Internet Protocol) como protocolo de rede e a linguagem Python foi originalmente desenvolvida nesse sistema operacional.
É um sistema operacional altamente escalável e confiável, tanto que foi estabelecido entre os provedores de telecomunicações de topo.
Algoritmos Distribuídos
Algoritmos distribuídos são uma grande variedade de programas concorrentes que são executados sobre muitos processadores distribuídos por larga área geográfica (grandes redes) e que podem utilizar-se de redes locais e multiprocessadores com memória compartilhada.
Fazem uso de um sistema de troca de mensagens (send/receive). Ex:
Este modelo básico de um sistema distribuído é representado por um conjunto de processos conectados por uma rede que permite a troca de mensagens. Onde, Pi são processos que:
- encapsulam um estado (= conjunto de variáveis com um valor concorrente);
- reagem a eventos externos (mensagens ou temporizadores);
- somente interagem através de envio de mensagens (não há compartilhamento de memória);
- são modelados como um grafo, no qual os nós representam computadores ou processos e as ligações representam as possibilidades de comunicação, que podem ser:
- Direcionados – comunicação em um único sentido;
- Não direcionado – comunicação nos dois sentidos.
Os objetivos gerais no projeto de um algoritmo distribuído:
- evitar deadlocks – nenhum processo consegue prosseguir;
- evitar starvation – um processo nunca ganha acesso;
- garantir fairness – todos os processos têm chances iguais;
- evitar livelock – subconjunto dos processos conseguem interação, mas os processamentos globais não progridem.
Então, duas propriedades são classificadas:
- Segurança/Safety – Uma propriedade segura é aquela que vale para qualquer execução e em todo estado (global) alcançável da execução. Ex: Ausência de deadlock.
- Processos/Liveness – Uma propriedade de processos é aquela que vale para qualquer execução e se manifesta em algum estado alcançável da execução. Ex: um processo consegue entrar na sessão crítica.