Subject: GRUPO 1- Sistemas Operacionais Distribuídos Questões
From: "Bruno Nunes Trassante"
Date: Thu, 5 Jul 2007 00:44:51 -0300
To: johann@inf.ufrgs.br

reenvio com mais questes e respostas sobre o mach.

DCE


P.:Qual a diferena principal de abordagem entre o Distributed Computing Environment (DCE) e outros sistemas distribudos clssicos como o Amoeba, Mach e Chorus?  
R.:Os outros sistemas citados utilizam uma abordagem baseada em microkernel, j o DCE busca construir um ambiente de computao distribuda em cima de sistemas operacionais j existentes (Windowns, Unix, OS/2), oferecendo assim uma plataforma para a execuo de aplicaes distribudas sem prejudicar as aplicaes j existentes.  

P.:Distributed Time Service (DTS) um servio no DCE responsvel pelo gerenciamento de relgios. Quais as questes principais com que o DTS se depara e qual a diferena entre a forma como DTS armazena o tempo e a forma de armazenamento da maioria dos demais sistemas?  
R.:O DTS deve ser responsvel por manter os clocks consistentes mutuamente, ou seja, fazer com que todos os relgios concordem sobre o mesmo valor de tempo. Uma segunda questo de responsabilidade do DTS fazer com que este valor com o qual todos os relgios concordaram esteja condizente com a realidade (de acordo com os relgios do mundo real). 
O DTS armazena o tempo na forma de intervalos (exemplo: entre 16:13 e 16:15), diferente da maioria dos outros sistemas que armazena na forma de um simples nmero binrio.

P.:De que forma usurios, mquinas e outros recursos so agrupados em um sistema DCE? E quais os fatores considerados para escolher um agrupamento?  
R.:Em DCE, colees de mquinas, usurios e outros recursos so agrupados em clulas. A diviso em clulas se d de acordo com fatores como propsito (todos os integrantes de uma mesma clula devem ter como meta um objetivo em comum), segurana (obter recursos dentro de uma clula simples e direto, mas acessar recursos de uma outra clula necessita negociao), overhead e administrao(toda clula deve ter seu administrador). 


P.:Quais so os 4 principais servios oferecidos pelo DCE?
R.:  Servios de tempo, diretrio, segurana e de arquivos.


P.: Quais os algoritmos de escalonamento de threds que so implementados no DCE?
R.:-Fifo com filas diferentes para por prioridades
    -Round Robin com diferentes filas por prioridade
    -Round robin com apenas uma fila, mas processos ganham um quantum maior conforme prioridade

P.: O que skulking?
R.: uma tcnica de atualizao de diretrios distribuidos, que consiste em no atualizar
os diretrios escravos imediatamente aps o mestre ser atualizado. Permitindo que vrios
updates sejam feitos antes da atualizao global. Aumentando o desempenho. S possivel
quando as informaes no so crticas.


AMOEBA

P.: Cite os 3 servidores padro do Amoeba e de caractersticas:
R.: Servidor bala: gerencia o armazenamento as informaes;
     Servidor de diretrio: trata da identificao de arquivos e da gerencia dos diretrios;
     Servidor de replicao: resolve a questo da replicao de arquivos[TAN98].

P.: Cite uma diferena importante entre Amoeba e a maioria dos demais sistemas operacionais distribudos:
R.: Uma diferena importante est no fato de que o Amoeba no usa o conceito de mquina hospedeira, o arquivo aberto pode estar em qualquer mquina que faa parte do pool de processadores.

P.: Os arquivos no Amoeba so imutveis. Isso tornou a escrita em vrias operaes mais complexa. Para contornar este problema foi introduzido dois novo tipos de arquivos. Que tipos so esses? D uma breve explicao.
R.:So eles os no comprometidos e os comprometidos. Os primeiros esto em processo de criao e que podem ser modificados, os outros, que so permanentes, no permitem modificaes.

P.:Como feito o gerenciamento de memria no Amoeba?
R.:O modelo de memria do Amoeba simples e eficiente. O espao de endereo de um processo consiste em um ou mais segmento mapeados em endereos virtuais especficos do usurio. Quando um processo est executando, todos os seus segmentos esto na memria. No h swapping ou paginao neste momento. Portanto, Amoeba so pode executar programas que caibam na memria fsica. A principal vantagem desse esquema a simplicidade a alta performance. A principal desvantagem que no possvel rodar programas maiores do que a memria fsica.

P.: Quais os dois tipos de comunicao entre processo no Amoeba?
R.: Comunicao ponto-a-ponto: baseada em RPC. Um cliente manda a mensagem ao servidor, ento fica bloqueado at que o servidor mande a resposta.

 Comunicao em grupo: permite que uma mensagem seja enviada de uma fonte para vrios destinos.

P.:Qual o procedimento realizado para executar uma operao em um objeto no Amoeba?
R.:Um cliente realiza um RPC com o servidor, especificando o objeto, a operao a ser executada e, opcionalmente, algum parmetro necessrio. O servidor faz o trabalho e retorna a resposta. Operaes so realizadas de forma sncrona, ou seja, depois de iniciar um RPC com o servidor, a thread cliente fica bloqueada at que o servidor responda. Porm, outras threads do mesmo processo podem continuar rodando.


CHORUS

P.: O mecanismo de comunicao do Chorus a troca de mensagens entre portas (buffers) associadas aos processos. Quais operaes bsicas de comunicao esto disponveis neste sistema e qual a diferena entre elas?
R.: O sistema disponibiliza duas operaes: envio assncrono e RPC. A primeira consiste no envio de uma mensagem sem confirmao de recebimento ou notificao de erro. No segundo caso, quando um processo executa uma operao de RPC, ele fica bloqueado at o recebimento de uma resposta ou a ocorrncia de um evento de timeout.

P.: Por definio, um processo no sistema Chorus uma coleo de elementos ativos e passivos que trabalham em conjunto. Cite-os e d algumas caractersticas.
R.: Os elementos ativos so as threads que executam cdigo, sendo que um processo pode ter mais de uma threads. Os elementos passivos so dois: um espao de memria compartilhado pelas threads do processo e um conjunto de portas usadas para envio/recebimento de mensagens.

P.: O sistema Chorus suporta uma ou mais threads por processo, assim como Amoeba e Mach. Considerando um sistema multiprocessado usando Chorus, como podem ser escalonadas as threads de um mesmo processo e como isso tratado?
R.: O sistema Chorus suporta a execuo de mltiplas threads de um mesmo processo em diferentes processadores ao mesmo tempo. O escalonamento das threads realizado inteiramente pelo kernel, que considera a prioridade do processo e a prioridade relativa de cada thread dentro do processo.

P.:A qual modelo de memria baseado???
R.:Seu modelo de memria e baseado em paginao, onde o acesso de
leitura permitido a todas as mquinas, porm somente uma pode
executar escrita.

P.:O microkernel formado pro quatro partes, quais so elas e o que
elas fazem?
R.:  O supervisor gerencia o hardware em baixo nvel e trata excees e
interrupes, assim como outros detalhes de hardware, alm de
manipular trocas decontexto.
   O gerenciador de memria virtual manipula a parte de baixo nvel do
sistema de paginao.
    O executor de tempo real responsvel por gerenciamento de processos,
threads e escalonamento, alm de prover sincronizao entre threads
para excluso mtua, dentre outros propsitos.
    O gerente de comunicao interprocessos controla interfaces do usurio,
portas e envio de mensagens de forma transparente, fazendo uso dos servios do
executor de tempo real e do gerenciador de memria virtual.

P.:H trs tipos de processos,com diferentes nveis de privilgio (privilege) e
confiana (trust): processos do kernel, do sistema e do usurio.
Explique cada um deles.
R.: Os processos do kernel so os mais poderosos: rodam em modo kernel,
compartilham espao de endereamento entre si e com o microkernel, podem ser
carregados ou descarregados em tempo de execuo e comunicam-se entre
si por um
tipo especial de RPC (minimensagem), mais leve, no disponvel a
outros processos.
 Processos dos sistema rodam em modo usurio (sem privilgios), no
podendo executar I/O e outras instrues protegidas diretamente, mas
por outro lado so confiveis e podem assim fazer chamadas ao kernel e
obter seus servios diretamente,sem intermedirios. Cada processo do
sistema roda em seu prprio espao de endereamento.
  Processos do usurio no recebem qualquer privilgio ou confiana; assim,
so impedidos de executar qualquer operao de I/O ou chamadas ao kernel. De
maneira similar ao que ocorre no UNIX, processos do usurio so
divididos em duaspartes: a parte normal do usurio e aquela que
invocada aps uma trap (chamadas ao kernel solicitando algum servio).


MACH

P.: Qual a relao entre o Mach e o BSD UNIX?
R.: O desenvolvimento do Mach uma evoluo do sistema BSD UNIX. Inicialmente, foi desenvolvido dentro do
kernel do BSD, que tinha seus componentes substitudos conforme os do Mach eram finalizados.

P.: Como o suporte para multiprocessamento no Mach?
R.: muito flexvel, sendo compatvel tanto com sistemas de memria compartilhada entre os processadores,
quanto com sistemas sem memria compartilhada.

P.: Como funciona a criao de threads no Mach?
R.: similar ao UNIX, assim como a chamada de sistema fork produz um novo processo, no Mach criada uma nova
tarefa que simula esse comportamento. A nova tarefa tem memria duplicata da memria do pai, contm apenas uma
thread e comea no mesmo ponto de onde foi chamado o fork no pai.

P: Como funciona a excluso mtua no Mach?
R: O sistema no possui um mecanismo de semforo ou de monitor, apenas de construo e manipulao de mutexes que, ao invs de bloquear a execuo de uma thread numa task, deixam ela em busy waiting. Mesmo assim, a flexibilidade do kernel permite a criao de monitores atravs de variveis condicionais (booleanas) e de mutexes.

P: Como implementada a comunicao entre processos no Mach?
R: Usando dois componentes, portas e mensagens. Quase tudo no Mach um objeto, e todos os objetos so endereados por sua porta de comunicao. Mensagens so passadas por essas portas para comear operaes nos objetos receptores, utilizando as rotinas implementadas nos objetos. Dessa maneira, o Mach implementa independncia de localizao e segurana na comunicao.

P: Quais so os principais recursos de multiprocessamento do Mach?
R: Portabilidade para vrias plataformas de hardware (formao de clusters), segurana e sincronizao implementadas de forma simples e segura (ports e mensagens), extensiva utilizao de objetos tornando o acesso a memria e troca de mensagens entre processos remotos mais transparente, scheduler com filas individuais para cada CPU, etc.


INFERNO

P.:Defina o Sistema Operacional Inferno e explique as suas principais
caractersticas.
R.:o Inferno um sistema operacional, desenvolvido pela Lucent
Technologies? Bell Labs, que visa fornecer facilidades para o
desenvolvimento e a execuo de servios distribudos e aplicaes de
rede.
As principais caractersticas do Inferno so:
- portabilidade atravs de processadores : Intel, SPARC, MIPS, PowerPC.
- portabilidade atravs de ambientes, podendo ser utilizado como
sistema operacional Nativo ou hospedado em Windows, Unix (Irix,
Solaris, FreeBSD, Linux, AIX, HP/UX) ou Plan 9) .
- portabilidade de aplicaes - Atravs da linguagem de programao
Limbo, fornecida pelo Inferno, possvel desenvolver aplicaes que
possam ser utilizadas atravs das diferentes plataformas.
- adaptabilidade dinmica - Dependendo do hardware e dos recursos
diponveis, diferentes mdulos poderiam ser carregados para a
realizao de funcionalidades especficas. Um video-player poderia
carregar diferentes decodificadores, por exemplo;
- requerimentos mnimos de hardware ? Executa aplicaes teis sobre
mquinas com 1MB de memoria.



P.:O inferno teve grande influncia do sistema operacional Plan 9, que
baseado nos princpios de recursos como arquivos, espao de nomes e
protocolo de comunio padro. Explique como funciona o princpio de
-recursos como arquivos? e  quais as principais vantagens relacionadas
a esta abordagem.
R.:Segundo o princpio de  ?Recursos como Arquivos? todo recurso
disponvel no sistema visto como arquivo, no  importando se local
ou remoto. At mesmo ?processos?, conceito presente na maior parte dos
sistemas operacionais, so representados como recursos e, portanto,
tambm so vistos como arquivos. O que o Inferno faz na verdade
levar o conceito de recursos como arquivos ao extremo. O acesso a
esses recursos feito atravs das operaes: open, close, read, write.

As principais vantagens relacionadas a essa abordagem so :
- interface simples e bem definida - Atravs de operaes simples
possvel acessar os recursos e suas funcionalidades uniformemente;
- alta portabilidade - Como todo recurso visto como um arquivo, a
facilidade na portabilidade torna-se evidente;
- segurana - Essa viso sobre os recursos permite que os aspectos
relacionados a segurana sejam focados no tratamento de arquivos.

P.:Descreva o protocolo de comunicao utilizado entre mquinas no Inferno.
R.:Styx protocolo para apresentao de recursos utilizado pelo Inferno.
Como todas as mensagens so operaes sobre arquivos ( j que tudo no
mundo Inferno/Styx um arquivo), o protocolo Styx tem um conjunto
muito pequeno de comandos (apenas 13 comandos e um indicador de erro).

O protocolo garante transparncia completa de recursos, ou seja,
usurios (desenvolvedores de aplicaes) no vem o protocolo, mas
apenas arquivos.
Ele acima e independente da camada de comunicao (TCP/IP, ATM, PPP,
infravermelho, etc)
Alm disso, o Styx quem prov :
- viso hierrquica de recursos;
- informaes de acesso: permisses, tamanhos e datas de arquivos (recursos);
- semntica para leitura e escrita.


FS,Servers,UNIX

P.: Descreva o sistema de arquivos padro do Amoeba.

R.:O sistema de arquivos consiste em 3 servidores: o Bullet Server, que gerncia o armazenamento de arquivos, o Directory Server, que toma conta dos nomes dos arquivos e do gerenciamento de diretrios, e o Replication Server, que gerencia a replicao de arquivos.

 

P.:Como o Mach roda seu servidor Unix? Quais as vantagens dessa abordagem?

R.:O Mach roda o Unix no "user space", como uma aplicao. As vantagens dessa abordagem so:

1- Por separar o sistema em uma parte que gerencia recursos (Kernel) e uma que manipula chamadas de sistema (Unix server), ambas se tornaram mais simples e fceis de manter;

2- Colocar o Unix no "user space", tornou-o extremamente portvel, deixndo todas as dependncias de arquitetura no Kernel do Mach.

3-Mltiplos sistemas operacionais podem rodar simultaneamente.

 

P.:Compare a compatibilidade com Unix do Amoeba, Mach e Chorus.

R.:No Amoeba a compatibilidade com Unix provida ao nvel de ao nvel de cdigo fonte, baseada no POSIX, mas no 100% completa.

No Mach, o servidor que roda Unix, provem uma compatibilidade de 100% aos arquivos binrios.

O Chorus provem compatibilidade binria completa com o Sytem V Unix.



COMUNICAO

P.:Quais so as trs primitivas do kernel que o mecanismo de RPC utiliza em um sistema Amoeba? Descreva sucintamente o que cada uma faz.
R.:
-get_request: indica que um servidor espera uma mensagem em uma porta
-put_reply: chamada quando um servidor quer respondera um envio
-trans: envio de uma mensagem do cliente para o servidor e a espera pela resposta


P.:Quais so os dois tipos operaes de comunicao que so providos pelo Chorus?
R.:Mensagens assncronas, no havendo garantia de que estas cheguem ao destino ou qualquer notificao de erro. O outro tipo de comunicaa atravs de RPC que bloqueia o processo automaticamente at que a resposta seja enviada

P.:Cite trs Chamadas de gerenciamento de portas e descreva-as.
R.:
-Set_qlimit: Seta o nmero de mensagens que uma porta pode suportar
-Allocate: Cria uma porta e sua "capability" na lista
-Extract_right: Extrai o n-th "capability de outro processo


EXTRAS

P.: Que outras alternativas existem na rea de SO distribudos alm das j
citadas?
R.:  Nesta pesquisa foi encontrada uma imensido de projetos, a maioria
aparamente inacabados ou descontinuados. Certamente uma rea que desperta
muito interesse j h muitos anos, mas ainda existem poucas implementaes
maduras e funcionais. E poucas que sejam populares.
   Existem vrias tentativas ousadas, buscando paradigmas diferente ou nveis
de abstrao mais alto para SOs, incluindo SOs baseados em objetos
distribudos, componentes, agentes, focados em distribuio sobre a Internet,
etc.
   Destacamos os sistemas QNX e OpenMosix.

P.: Qual o nicho do QNX e que o caracteriza como um SO distribudo?
R.: O QNX um sistema operacional voltado principalmente para sistemas
embarcados, comercializado pela QNX Software Systems. Ele um "Realtime OS"
(suporta aplicaes de tempo real), baseado em um arquitetura de microkernel.
O que o caracteriza como um SO distribudo a tecnologia que eles chamam de
Transparent Distributed Processing (TDP).
   O TDP prov um "framework" para conexo dinmica de recursos de hardware e
software localizados em ns remotos, fornecendo balanceamento de carga e
redundncia de forma transparente. Permite indepndencia de localizao,
atravs de servios globais de nomes e localizao. A camada de transporte
das mensagens funciona sobre a rede TCP/IP, backplanes, e outros tipos de
barramento.

P.: O OpenMosix um SO distribudo? Que funcionalidades ele oferece,
resumidamente?
R.: No exatamente. uma extenso para o kernel linux que fornece uma camada
de gerenciamento que fornece uma imagem nica do sistema (Single System
Image), permitindo que aplicaes utilizem os recursos de um cluster
transparentemente, sem terem sido originalmente preparadas para isso.
   O OpenMosix migra processos de um n para o outro de forma a balancear a
carga nas mquinas do cluster e evitar o esgotamento de recursos em quaisquer
das mquinas. Migrao de threads ainda no suportado. O acesso aos
arquivos feito atravs de um cluster file system. Se um processo faz a
maior parte de seu I/O buscando arquivos de uma mquina remota, ele pode ser
migrado para essa mquina.
   Originalmente, o openMosix no suportava aplicaes que usam memria
compartilhada, mas j foi implementado um mdulo que prov um sistema DSM
(Distributed Shared Memory) quase completo, o migShm. Tambm no possui uma
tolerncia a falhas muito avanada, mas um mdulo que faz checkpointing do
estado de processos no linux foi integrado ao openMosix, melhorando esse
aspecto.

Abstraes do Kernel


P.: Todos os 4 sistemas trabalham com processos e threads. Quais as diferenas de implementao?
R.: No Amoeba, cada processo tem um espao de endereamento nico e pode ter uma ou mais threads, cada uma com seu prprio program counter, registros e pilha.

No Mach os processos tem, alm de um espao de endereamento, uma ou mais pilhas. As threads tem apenas o program counter e seus registros e pertencem obrigatoriamente a apenas um processo.

No Chorus os processos tem um espao de endereamento e cada thread tem um program counter, registros, pilha e ponteiro de pilha. Alm disso, cada thread independente das outras e podem at rodar em processadores diferentes.

No DCE os processos dependes da forma como o Sistema Operacional hospedeiro implementa. As threads podem ser tanto as do prprio S.O. hospedeiro apenas modificadas para ficarem no padro do DCE como podem ser usadas as implementadas pelo DCE. Nesse caso, o prprio DCE pode criar mltiplas threads a partir de um processo com apenas uma thread.

 

P.: Como essas threads se comunicam?
R.:
Amoeba: Atravs de mensagens ponto-a-ponto com send-receive bloqueante ou por mensagens em grupo, com diversos destinatrios.

Mach: passagem de mensagens atravs de portas gerenciadas como uma fila pelo kernel no prprio kernel.

Chorus: passagem de mensagens atravs de portas estilo buffer situadas em cada processo e apenas ele tem acesso a essas mensagens.

DCE: Processo Cliente faz uma RPC para processo Servidor que pode ou no retornar uma resposta.

 

P.: O qu de diferente cada Sistema implementa?
R.:
Amoeba: Threads podem alocar ou desalocar blocos de memria chamados segmentos. Cada processo possui ao menos um segmento, mas pode ter diversos. Implementa Drivers para todos os dispositivos de I/O e os processos conversam com os Drivers e no com os dispositivos.

Mach: Objetos de Memria: Estrutura de dados que podem ser mapeadas para um espao de endereamento de um processo e que so a base do Sistema de Memria Virtual. Atravs delas o kernel, na presena de um page fault, pode mandar uma mensagem a um servidor no nvel do usurio para fazer a busca da pgina faltante da memria principal.

Chorus: Tem um nomeador que gera um identificador nico de 64 bits para cada recurso do sistema, seja um processo, uma porta, etc, que garantidamente no ser repetido por nenhuma outra mquina da rede. Isso ajuda a descobrir quem enviou o pedido pela rede.

DCE: Servio de tempo para sincronizar todos os computadores da rede;

Servio de diretrio para guardar a localizao dos recursos;

Servio de segurana para proteger qualquer tipo de recurso a fim de apenas quem tiver autorizao poder acessar;

Servio de Arquivos Distribudos que podem estar em qualquer lugar do mundo e sua localizao transparente para o processo. Pode ser usado sobre o sistema de arquivos do SisOp onde o DCE foi instalado ou usar o do prprio DCE no lugar deste.