Sunteți pe pagina 1din 14

Esta tradução foi feita através do Google tradutor

TOWARD REAL MICROKERNELS


O ineficiente, inflexível primeira geração inspirada

desenvolvimento da produção melhorou bastante em segundo lugar, que

A história microkernel está cheio de boas idéias e becos sem saída. O história começou com
entusiasmo sobre o prometido dramático aumento da flexibilidade, segurança e modularidade. Mas
ao longo dos anos, entusiasmo mudou para decepção, porque a primeira geração microkernels eram
ineficientes e inflexíveis. • Hoje, observamos abordagens radicalmente novo à ideia de microkernel
que buscam evitar os erros antigos quando ultrapassar a idade restrições à sua flexibilidade e
desempenho. A segunda geração microkernels pode ser uma base para todos os tipos de sistemas
operacionais, incluindo timesharing, multimídia, e tempo duros e moles real.
A Visão Kernel Tradicionalmente, a palavra denota o kernel obrigatório parte do sistema
operacional comum a todos os outros software. O kernel pode usar todos os recursos de um
processador (Por exemplo, programar o gerenciamento de memória unidade); software rodando em
modo de usuário não pode executar tais operações de segurança crítica.
A maioria dos sistemas operacionais iniciais foram executados por meio de grandes kernels
monolíticos. Genericamente falando, a programação completa do sistema operacional, o sistema de
arquivos rede, drivers de dispositivos, gerenciamento de memória, paginação, e muito mais, foi
embalado em um único kernel.
Em contraste, a abordagem envolve microkernel minimizar o kernel e implementação de
servidores fora o kernel. Idealmente, o kernel implementa apenas espaços de endereço, a
comunicação entre processos (IPC), e programação básica. Todos os servidores, mesmo drivers de
dispositivo, executado em modo usuário e são tratados exatamente como qualquer outra aplicação
pelo kernel. Uma vez que cada servidor tem o seu próprio espaço de endereço, todos esses objetos
são protegidos um do outro.
Quando a idéia de microkernel foi introduzida no Década de 1980, a tecnologia de software
vantagens parecia óbvio:
• Diferentes interfaces de aplicativos do programa (API), diferentes sistemas de arquivos, e talvez
até mesmo diferentes estratégias básicas do sistema operacional podem coexistir em um do sistema.
Eles são implementados como concorrente ou servidores que colaboraram.
• O sistema torna-se mais flexível e extensível. Pode ser mais fácil e eficaz adaptação à hardware
novo ou novos aplicativos. Apenas selecionados servidores precisam ser modificados ou
adicionados ao sistema. Em particular, o impacto de tais alterações pode ser restrita a um
subconjunto do sistema, de modo todos os outros processos não são afetados. Além disso,
alterações não exigem a construção um novo kernel, que pode ser feito online e testado.
• Todos os servidores podem utilizar os mecanismos fornecidas pelo microkernel, como
multithreading e IPC.

• mau funcionamento do servidor é tão isolada como mau funcionamento normal da aplicação.
• Estas vantagens também para manter drivers de dispositivo.

• Uma interface limpa microkernel impõe uma maior estrutura do sistema modular.
• Um menor kernel podem ser mais facilmente mantidos e devem ser menos propensas ao erro.
• As interdependências entre os diferentes partes do sistema pode ser restringido e reduzida. Em
particular, a confiança base informática (TCB) engloba apenas o hardware, o microkernel, um
driver de disco, e talvez um arquivo básico system.1 Outros drivers de arquivo e rede sistemas
precisam deixar de ser absolutamente confiável.
Apesar destas vantagens parecia óbvio, a primeira geração microkernels não poderia
fundamentar-los.

A Primeira Geração
A idéia de microkernel reuniu-se com os esforços da pesquisa comunidade para construir
pós-Unix sistemas operacionais. Novo hardware (por exemplo, multiprocessadores, maciçamente
paralelo sistemas), as novas exigências da aplicação (por exemplo, segurança, multimídia e em
tempo real, computação distribuída) e novas metodologias de programação (por exemplo,
orientação a objetos, multithreading, persistência) novos conceitos necessários do sistema
operacional.
Os objetos e os mecanismos correspondentes, tópicos, os espaços de endereço procedimento,
chamadas remotas (RPCs), IPC baseada em mensagens, e o grupo de comunicação
eram de baixo nível, mais básico e mais geral abstrações que os primitivos típicos Unix. Além para
os novos mecanismos, fornecendo uma API compatível com o Unix ou outro de exploração
convencional sistema foi uma condição sine qua non, portanto, de aplicação Unix em cima dos
novos sistemas foi uma conseqüência natural.
Portanto, a idéia de microkernel tornou-se amplamente aceite por designers de sistema operacional
para dois completamente diferentes razões: (1) e flexibilidade geral poder e (2) o fato de que
microkernels ofereceu um técnica para preservar compatibilidade com o Unix, enquanto permitindo
o desenvolvimento de novos sistemas operacionais.
Muitos projetos acadêmicos tomaram este caminho, incluindo Amoeba [19], escolhas [4], Ra [1] e
V [7], alguns mesmo mudou-se para uso comercial, nomeadamente Chorus [11], L3 [15], e Mach
[10], que se tornou o carro-chefe da microkernels industrial.

[Mach pager externo 22] foi o primeiro conceitual avanço em direção microkernels real. O
conceptual fundação do pager externo é que o kernel gerencia a memória física e virtual, mas para a
frente falhas de página de tarefas específicas em nível de usuário. Estes pagers implementar o
mapeamento da memória virtual backing store por escrito para trás e carregamento da página
imagens. Após uma falha de página, eles geralmente voltam a imagem de página apropriado para o
kernel, que então estabelece o mapeamento de memória virtual para físico (Ver Figura 1). Veja o
quadro "Frequently Asked Dúvidas sobre Pagers externo. "
Esta técnica permite o mapeamento dos processos e bases de dados em espaços de endereços do
usuário sem a necessidade de integrar os sistemas de arquivos / banco de dados para o kernel.
Além disso, diferentes sistemas podem ser usados simultaneamente. compartilhamento de memória
para aplicações específicas e de memória distribuída compartilhada também pode ser implementado
por nível de usuário servidores fora do kernel.
O segundo passo conceitual para microkernels era a idéia de manipulação de interrupções de
hardware como IPC
Perguntas mais frequentes sobre Externas Pagers
É um pager necessários dentro do microkernel? Não.

Como pagers em nível de usuário afetam a segurança do sistema? A


pager pode corromper os dados que ele mantém. Então você
contar com a funcionalidade correta do pager você
utilização, se é kernel integrado ou em nível de usuário.
No entanto, diferente recusava a interferir a nível de usuário
pagers pode ser usado para aumentar a segurança, por
exemplo, que contém dados confidenciais em um confiável
dados e estável (padrão) pager e menos críticos em
pagers potencialmente menos confiável. Note-se que
dependências semânticas são semelhantes em todos os níveis e
não são específicas do sistema operacional, os usuários contam como
muito sobre a correta funcionalidade de um compilador como
em que de um sistema de banco de dados.
Como são caros pagers em nível de usuário? Em princípio, a
overhead comparado ao de um pager integrada
é apenas uma CPI e deve ser insignificante. Na prática,
No entanto, a maioria microkernels de primeira geração
usar um protocolo complicada com até oito adicional
CPIs e implementar IPC ineficiente. As despesas gerais
de 1000 μs (Digital Equipment Corp Alpha,
133 MHz) pode ocorrer. Um microkernel da segunda
geração resolve esse problema de desempenho por
usando apenas um IPC adicionais e tornando-o rápido
(Menos de 10 μs).
mensagens de [17], incluindo portas I / O no endereço espaços. O kernel capta a interrupção, mas
não não segurá-lo, em vez gerando uma mensagem para o processo em nível de usuário atualmente
associado com a interrupção. Assim, a manipulação, interrupção e dispositivos de E / S são
feito completamente fora do kernel no seguinte da seguinte maneira:
driver thread:
do
wait for (msg, sender) ;
if sender = my hardware interrupt
then read/write i/o ports ;
reset hardware interrupt
else . . .
fi
od .

Nesta abordagem, os drivers de dispositivo pode ser substituído, removidos ou adicionados


dinamicamente, sem vincular um novo kernel e reiniciar o sistema. Os condutores podem
assim ser distribuído para os usuários finais independente da kernel. Além disso, o lucro drivers de
dispositivo de uso tais mecanismos microkernel como multithreading, IPC, e espaços de endereço.
Veja o quadro "Freqüentemente Perguntas sobre drivers de dispositivo nível de usuário. "
Decepções
Um conceito interessante é apenas um lado da moeda, o outra utilidade. Por exemplo, os conceitos
bastante flexível e que os custos de baixa flexibilidade suficiente para esses problemas do mundo
real como multimídia, sistemas de tempo real, e incorporado?
No que diz respeito à eficiência, a comunicação facilidade é o mecanismo de microkernel
mais críticos.Cada invocação de um sistema operacional ou aplicativo serviço requer uma RPC,
geralmente constituídos por duas CPIs-chamada ea mensagem de retorno. Por isso,
arquitetos microkernel passou muito tempo otimizando os mecanismos de IPC. progresso
sustentado rendeu até ao dobro melhoria na velocidade, mas em 1991, o etapas tornou-se cada vez
menos eficaz. Mach 3 estabilizado em cerca de 115 μs por IPC em um 486-DX50 comparáveis
microkernels para a maioria dos outros. Por exemplo, um convencional sistema Unix chamada de
aproximadamente 20 μs sobre este hardware tem sobrecarga de cerca de 10 vezes inferior ao
RPC Mach. Parecia que 100 μs foi a inerente custo de uma CPI e que o conceito tinha de ser
avaliada nesta base.
Desde o tempo absoluto não tem significado por si só, dois critérios mais práticos são
utilizados para a avaliação:
• Aplicações não devem ser degradadas pelo microkernel. Este critério conservador é uma condição
necessária condição para a aceitação prática.
• microkernels deve suportar eficientemente novos tipos de aplicativos que não podem ser
implementadas com bom desempenho no kernel monolítico convencional.

Você pode realmente usar um driver de disco em nível de usuário para a demanda
paginação? Sim.
Pode um motorista em nível de usuário danificar o sistema? Drivers
são encapsulados em espaços de endereço, para que eles possam
acesso apenas a memória e as portas I / O concedida
para eles. Deste ponto de vista, eles podem danificar
qualquer componente confiando em sua funcionalidade, mas
não todo o sistema. No entanto, drivers de controle
sistema de hardware, e se este hardware permite
corrupção (por exemplo, por via de acesso à memória física
DMA), no kernel pode impedir o motorista de corrupção
o sistema. Risco depende do hardware
acessíveis ao condutor.
Do nível de usuário para aumentar a segurança do motorista? Sim, porque
de encapsulamento. Por exemplo, um driver de mouse pode
não fazem mais mal do que um editor.
Como caras são drivers no nível do usuário? A maior parte da primeira geração
kernels (exceto L3) executar todos os tempos críticos
condutores, tal como os drivers do kernel. No entanto, devido à
rápido meios de comunicação de segunda geração
microkernels, drivers no nível do usuário executar, bem como
drivers integrados nesses sistemas. Menos de 10 μs
são obrigados por interromper ou driver RPC.
Este critério progressivo devem ser satisfeitas para um avanço real da tecnologia do sistema
operacional. O critério conservador pode ser avaliado por critérios execução na mesma plataforma
de hardware em monolítica e um sistema operacional baseado em microkernel. Este método mede
não apenas o primário (Direta) IPC custos, mas também os custos secundária induzida pela
estruturação do software com o cliente / servidor paradigma e, usando o mecanismo IPC.
Algumas aplicações realizadas também no âmbito de um microkernel como no âmbito de um
kernel monolítico, e alguns ligeiramente melhor. Infelizmente, outras aplicações foram
substancialmente degradados. Chen e Bershad [6], em comparação pedidos ao abrigo do Ultrix e
Mach numa DECstation 5200/200 e encontrou degradações pico de até para 66% em Mach (em
comparação com Ultrix) (ver Figura 2). Condict, et al [8] em comparação de oito usuário AIM III
benchmark em um 486 DX50, no âmbito de um monolítico OSF / 1 e OSF baseado no Mach / 1 e
uma medida degradação de 50% em média. As mensurações corroboram que a degradação é
essencialmente causada por IPC: Pelo menos 73% dos valores medidos pena está relacionada com
IPC ou atividades que são sua consequência directa; 10% vem de multiprocessador disposições que
poderiam ser eliminados nesta uniprocessor, eo restantes 17% é devido ao não especificada razões.
Chen descobriu que o desempenho diferenças são causadas, em parte por uma substancialmente
mais elevados cache-miss taxa de Mach-based do sistema. Esse resultado pode apontar para um
principal fraqueza do servidor arquiteturas quando usado com microkernels. No entanto, o
aumento da cache são causados por falha do kernel Mach, invocada para IPC e não pelo
maior modularidade do arquitetura cliente / servidor. O microkernel medida pena é demasiado
grande para ser ignorada. Do ponto de vista prático, a abordagem microkernel puro da primeira
geração foi um fracasso. Como conseqüência, tanto Chorus Mach e reintegrados o mais
servidores críticos e drivers para o kernel [3, 8]. supervisor Chorus " atores "e de Mach" kernel
carregados "tarefas executar no modo kernel, pode livremente o espaço do kernel, o acesso e pode
interagir livremente uns com os outros. Ganhando performance salvando kernel-usuário e no espaço
de endereço switches parecia razoável e parecia bem-sucedido. No entanto, enquanto resolver
alguns problemas de desempenho, esta medida enfraquece o abordagem microkernel. Se a maioria
dos motoristas e servidores são incluído no kernel, por razões de desempenho, o encapsulamento
benefícios, segurança e flexibilidade, em grande parte desaparecer. Avaliação do critério
progressivo deve ser baseadas em tendências futuras e aplicações. Objectorientation e distribuição
causará aumento crossaddress- interação espaço. Como conseqüência, RPC granularidade será
mais fino, em média, os clientes e servidor vai gastar menos ciclos sucessivos entre RPCs.
A Figura 3 mostra o overhead RPC relativa como função do número médio de ciclos gastos
por cliente e servidor entre dois RPCs sucessivas. O sobrecarga é dada com respeito a um sistema
ideal RPC, onde é livre. overhead Total, um programa leva o dobro do tempo, tanto para a execução
devido à RPC, no sistema ideal. Parece razoável supor que 10% é tolerado na maioria dos casos,
mas que 50% não. O limite de 10% permite que aplicativos de primeira geração microkernels usar
uma RPC 100.000 userlevel ciclos, cerca de 10.000 linhas de cliente e servidor código deve ser
executado antes de chamar o RPC seguinte.
A conclusão decepcionante é que a primeira geração microkernels não suporta o uso de grão
fino da RPC. Para efeito de comparação, a Figura 3 mostra também as despesas gerais por dois
microkernels de segunda geração. Sob a restrição de 10%, os de segunda geração microkernels
permitir cerca de um RPC por 400 linhas de código executado em nível de usuário. Junto a essa
inflexibilidade baseada no desempenho, uma outra deficiência tornou-se evidente ao longo dos
anos. O conceito externo, pager não é, em princípio, suficientemente flexível. Sua fraqueza técnico
mais importante é que memória principal continua a ser gerido pelo microkernel e pode ser
controlado apenas rudimentarmente pela pager externo. No entanto, servidores de arquivos
multimídia, aplicações em tempo real, gerenciamento de buffer de quadros, e algumas aplicações
não-clássicas exigem completo memória principal control.2 Conceitualmente, a fraqueza é a
política dentro da microkernel. A interface "política" que permita paramaterization e ajuste de um
built-in política é conveniente enquanto que a política é adequado para todas as aplicações. Sua
limitações são óbvias assim como uma política realmente romance é necessário ou uma
modificação substancial é necessária para uma política pré-definida. A Segunda Geração
A análise da deficiência precoce microkernels switches identificados pelo usuário de modo kernel, o
endereço do espaço- switches, e as sanções memória como fontes primárias de desempenho
decepcionante. Considerado superficialmente, Esta análise foi correta, porque ele foi apoiado por
detalhadas medições de desempenho. Surpreendentemente, uma análise mais profunda mostra que
os três pontos-user-kernel-mode switches, o espaço de endereço switches e memória sanções não
são o real problemas, os custos de hardware herdado do modo e espaço de endereçamento de
comutação são apenas 3% -7% dos valores medidos custos (ver Figura 4). Uma discussão detalhada
pode ser encontrada em [16].
A situação era estranha. Por um lado, nós sabia que as sementes poderiam funcionar, pelo menos,
10 vezes mais rápido, em o outro, após a otimização microkernels anos, já não viu uma nova e
significativa possibilidades de otimização. Este contradição sugeriu a eficiência problema foi
causado pelo arquitetura básica dos kernels. Na verdade, mais cedo microkernels evoluído passo a
passo de kernels monolíticos, permanecendo rico em conceitos e em grande tamanho do código. Por
exemplo, Mach 3 oferece cerca de 140 sistemas chamadas e precisa de mais de 300 Kbytes de
código. Redução de um grande kernel monolítico não pode levar a um microkernel real.

New Radical Designs

Uma nova abordagem radical, projetando uma arquitetura microkernel a partir do zero, parecia
promissor e necessário. Exokernel [9] e L4 [16], aqui discutidos, tanto concentrado em uma
arquitetura mínima, limpo e novo sistemas de apoio operacional altamente extensível.
• Exokernel. Exokernel, desenvolvido no MIT em 1994 -95, é um microkernel, pequeno hardware-
dependente baseado na idéia de que abstrações são caros e restringir a flexibilidade [9]. O
microkernel deve multiplex primitivas de hardware de forma segura. O exokernel atual, que é
adaptado para o Mips arquitetura e obtém excelente desempenho para primitivas de kernel, é
baseado na filosofia de que um kernel não deve fornecer abstrações, mas apenas um conjunto
mínimo de primitivas (embora o Exokernel inclui drivers de dispositivo). Por conseguinte, a
Exokernel interface é dependente da arquitetura, dedicado lookalike para tradução de software
controlada buffers (TLBs). A comunicação básica primitivo é a transferência de controle protegido
que atravessa espaços de endereço, mas não transfere argumentos. A RPC leve com base nesse
exame primitivo 10 μs em um processador MIPS R3000, enquanto uma RPC Mach
necessidades de 95 μs. Sem resposta a questão da se o direito de abstrações um melhor desempenho
e conduzir a uma melhor estruturados e mais eficientes aplicações primitivos que Exokernel de
fazer.
• L4. Desenvolvido no GMD em 1995, L4 é baseado na teses de que a eficiência ea flexibilidade
requer um mínimo conjunto de abstrações microkernel geral e microkernels que são dependentes do
processador. Em [16], que mostram que mesmo esses processadores compatíveis como o 486 eo
Pentium necessidade diferente implementações microkernel (com o mesmo API), não só de
codificação diferentes, mas diferentes algoritmos e estruturas de dados. Como otimizar o código
geradores, microkernels não são inerentemente portátil, apesar de melhorar a portabilidade de um
sistema como um todo. L4 fornece três espaços abstrações de endereço (descrito no próxima seção),
segmentos e IPC-implementa apenas sete chamadas do sistema, e as necessidades apenas 12 Kbytes
de código
Across-address space-IPC em um 486-DX50 leva 5 μs para um argumento de 8 bytes e 18 μs
de 512 bytes. O correspondente números de Mach são 115 μs (8 bytes), e 172 μs (512 bytes). Com
2 x 5 μs, básica L4-RPC é duas vezes rápido como um sistema Unix convencional chamada de
sistema. Permanece desconhecido se L4 abstrações, apesar de ser muito mais flexível do que as
abstrações da primeira geração, são flexível e poderoso o suficiente para todos os tipos de
exploração sistemas. Ambas as abordagens parecem superar o desempenho problema. Exokernel e
comunicação L4 é até 20 vezes mais rápido do que IPC da primeira geração. Alguns sistemas
nonmicrokernel tentar reduzir a comunicação custos, evitando IPC. Tal como acontece com coro e
Mach, Solaris e Linux kernel carregáveis módulos. O sistema de rotação [2] estende a Síntese
Idéia [20] e usa um compilador integrado ao kernel gerar o código de segurança dentro do espaço
de kernel. Comunicar com os servidores deste tipo exige menos switches espaço de endereço. A
redução dos custos IPC do segundo microkernels geração pode fazer esta técnica obsoletos ou
mesmo desqualificar-lo, pois kernel compiladores impor sobrecarga no kernel. No entanto,
a questão do que é superior-kernel-compilador tecnologia ou de um microkernel puro abordagem
está aberto enquanto não há nenhuma boa execução integração um kernel compilador com um
microkernel de segundo nível. Mais flexibilidade restrições de desempenho relacionados parecem
estar desaparecendo. O problema da microkernels de primeira geração foi a limitação do conceito
externo, pager hardwiring uma política dentro do kernel. Esta limitação foi em grande parte
removidas por conceito L4 do espaço de endereço, que fornece uma interface mecanismo puro. Em
vez de oferecer uma política, o papel do kernel limita-se a oferece os mecanismos básicos
necessários para implementar as políticas adequadas. Estes mecanismos básicos permitir a aplicação
de protecção diferentes sistemas e até mesmo de gerenciamento de memória física em cima do
microkernel.
A idéia é apoiar a construção recursiva de espaços de endereço fora do kernel (veja a Figura 5). Um
espaço de endereçamento inicial representa a memória física e é controlada pelo servidor do espaço
de endereçamento de primeira. Em tempo de inicialização do sistema, todos os espaços de
endereços de outros estão vazios. Para a construção e manutenção de espaços de endereço ainda em
cima do espaço inicial, o microkernel fornece três operações: concessão, mapa, e demap.
O owner3 de um espaço de endereço pode conceder qualquer um dos seus páginas para outro
espaço, desde que o beneficiário concorda. A página concedido é removido do Granter espaço de
endereço e está incluído no espaço de endereço do beneficiário. A restrição importante é
que em vez de física quadros de página, o concedente pode concessão somente as páginas já
acessível a si mesmo. O proprietário de um espaço de endereço também pode mapear qualquer dos
seus páginas em outro espaço de endereço, se o destinatário concorda. Depois, a página pode ser
acessada em ambos os espaços de endereço. Em contraste com a concessão, no mapeamento,
a página não é removido do endereço do mapeador de espaço. Como no caso de concessão, o
mapeador de mapa pode páginas ao qual ele já tem acesso.O proprietário de um espaço de endereço
pode demap qualquer dos seus páginas. A página demapped permanece acessível na demapper
espaço de endereço, mas é removido de todos os outros espaços que recebeu o endereço da página
diretamente ou indiretamente do demapper. Embora explícitos consentimento dos proprietários de
espaço de endereço não é necessária, a operação é segura, pois é restrito a propriedade
páginas. Os usuários dessas páginas já decididos aceitar uma demapping potencial quando recebeu
o páginas mapeamento ou concessão. Veja o quadro "Freqüentemente Perguntas sobre servidores
Memória ". Desde que o mapeamento de uma página requer o consentimento entre mapper e
mappee, assim como a concessão, ele é implementado pelo IPC. Na Figura 6, o mapeador de A
envia uma Mensagem para o mapa B mappee especificando por um adequada operação de
recebimento, que está disposto a aceitar um mapeamento e determina o endereço virtual
da página dentro do seu próprio espaço de endereço. O conceito de espaço de endereço de folhas de
gerenciamento de memória paginação e fora do microkernel, apenas a concessão, mapa, e as
operações são mantidas demap dentro do kernel. Mapeamento e demapping são necessários para
implementar gerenciadores de memória e pagers em cima do microkernel. Concessão só é usada em
situações especiais, para evitar dupla contabilidade e overflow espaço de endereço. Para uma
descrição mais detalhada, ver [16].

Em contraste com o conceito externo, pager, o kernel Limita-se a mecanismos. Políticas são
deixadas completamente de servidores em nível de usuário. Para ilustrar, vamos esboçar alguns
serviços de baixo nível que podem ser implementadas por servidores de espaço de endereçamento
com base em mecanismos. Um servidor de gerenciamento do espaço de endereço inicial é um
clássico gerenciador de memória principal, embora fora do microkernel. gerenciadores de memória
podem facilmente ser empilhados, o servidor de memória inicial mapas ou subvenções partes da
física memória para o servidor de memória de 1 e servidor de memória de 2. Agora temos dois
coexistindo os gestores de memória principal.
Um pager pode ser integrado com um gerenciador de memória ou utilizar um memorymanaging
servidor. Pagers usar o concessão microkernel, o mapa, e demap primitivos. Os restantes
interfaces, o cliente pager, pager memória servidor e driver de dispositivo pager, são
totalmente baseada no IPC e definido fora do kernel. Pagers pode ser usado para implementar
tradicional Memória virtual paginada e arquivo / banco de dados mapeamento, bem como residente
não paginado memória para os drivers de dispositivo e em tempo real ou sistemas multimídia.
estratégias de paginação fornecida pelo usuário [5, 14] são tratadas em ao nível do utilizador e não
são de forma limitada pela microkernel. espaços de endereço empilhadas, como aqueles em
Grasshopper [18], e empilhadas sistemas de arquivos [13] pode ser realizado da mesma forma.
aplicações multimédia e outros em tempo real exige a atribuição de recursos de memória em uma
maneira que permite que os tempos de execução previsível. Por exemplo, gestores em nível de
usuário de memória e pagers licença fixa alocação de memória física para dados específicos ou para
bloqueio de dados em memória para um tempo determinado. Multimídia alocadores de recursos e
de tempo compartilhado podem coexistir se as servidores cooperar. Tais dispositivos baseados em
memória como mostra bitmap são realizada por um gerenciador de memória segurando a tela
memória em seu espaço de endereço . Melhorar as taxas de acerto de um cache secundário
meio de alocação de página ou redistribuição [12, 21] pode ser implementada através de um pager
que se aplica cachedependent políticas de alocação de páginas virtuais memória física. Remote IPC
é implementado por uma comunicação servidores traduzir mensagens local para comunicação
externa protocolos e vice-versa. A comunicação hardware são acessados por drivers de dispositivo.
Se especiais partilha dos buffers de comunicação e endereço do usuário espaços é necessário, o
servidor de comunicação também age como um pager especial para o cliente. Em contraste com a
primeira geração, não há filtro de pacotes dentro da microkernel. chamadas de sistema Unix são
implementadas pelo IPC. O servidor Unix pode funcionar como um pager para seus clientes e pode
memória partilhada para a comunicação com seus clientes. O servidor Unix em si é paginável ou
residente.

Conclusão

Embora as experiências acadêmicas em portar aplicações


e sistema operacional personalidades Segunda geração
microkernels parecem promissores, temos
abrangeu apenas os conhecidos problemas de microkernels.
Não há vida real experiência prática com microkernels de segunda geração para desenhar. Apesar
de estarmos
otimista, design microkernel de segunda geração é
ainda de pesquisa, e novos problemas podem surgir.
A maioria dos microkernels mais evoluído a partir monolítico
kernels e não obter suficiente flexibilidade e
desempenho. Embora teoricamente vantajosa,
a abordagem microkernel nunca foi amplamente aceito
na prática. No entanto, uma nova geração de microkernel
arquiteturas mostra resultados promissores, eo desempenho
e flexibilidade melhorada através de uma ordem
de magnitude. Ainda é discutível se é Exokernel
nonabstractions, compilador Spin do kernel, L4
espaço de endereçamento-conceito, ou uma síntese desses
abordagens é o melhor caminho a seguir. Em cada caso,
esperar que os sistemas operacionais eficiente e flexível, baseado
em microkernels de segunda geração a ser desenvolvida.
A abordagem microkernel foi o primeiro software
arquitetura a ser examinado em detalhe a partir do desempenho
ponto de vista. Aprendemos que a aplicação do desempenho
critério para um sistema tão complexo não é
trivial. Naive, as medições são, por vezes uninterpreted
enganosa. Embora as medidas iniciais microkernel
sugeriu reduzir a freqüência de usuário para usuário
IPC, o problema real foi a estrutura e implementação
do miolo. Para evitar interpretações errôneas, tais
no futuro, devemos sempre tentar compreender por que nós
obter os resultados medidos. Como na física, ciência da computação
deve considerar as medidas como experimentos utilizados
para validar ou rejeitar uma teoria.
Embora a evolução constante é uma metodologia poderosa,
às vezes uma abordagem radicalmente nova é necessária.
A maioria dos problemas da primeira geração microkernels
foram causados por seu desenvolvimento passo a passo. O
microkernels concebido a partir do zero deu completamente
resultados diferentes, que não poderia ter sido extrapolado
a partir da experiência anterior.

S-ar putea să vă placă și