Você está na página 1de 59

Alexandre Galvo Carlos Eduardo Diego Dalto Felipe Menegazzo Fernando Srgio Nilson Vieira Silvio Rocha

Definies de Kernel e Microkernel Recursos Microkernel Chorus - A Primeira Gerao Microkernel Potenciais Vantagens do Microkernel Problemas da Primeira Gerao Microkernel L4 - A Segunda Gerao Microkernel Concluso

A parte fundamental de um Sistema operacional Responsvel pelo acesso seguro ao hardware da mquina para vrios programas. Responsvel por decidir quando e quanto tempo um programa pode usar um determinado hardware (multiplexao).

Figura 1: Diagrama do Linux Kernel

Um tipo de Kernel que favorece apenas os servios mnimos do sistema operacional.


Espao de endereo Inter-process Communication (IPC) Gerenciador de Thread Unique Identifiers

Todos os outros servios so feitos de forma independente.

Device Drivers

User Programs

Memory Managers

User Mode

Address Spacing

Thread Management and IPC

Unique Identifiers

Microkernel Mode Hardware

Figura 2: Diagrama de Microkernel

Definio: Um mapeamento que associa cada pgina virtual para uma pagina fsica. O microkernel fornece 3 operaes:

Map Grant Demap(Flush)

Adiciona uma pgina de um espao de endereo para outro.

Oops I did it Again Gangsta Rap Jailhouse Rock

Ghetto SuperStar

Address 1

Address 2

Figura 3: Exemplo Map

Adiciona uma pgina de um espao de endereo para outro.

Oops I did it Again Gangsta Rap Jailhouse Rock Map Gangsta Rap Address 1

Ghetto SuperStar

Address 2

Figura 3: Exemplo Map

Adiciona uma pgina de um espao de endereo para outro.

Oops I did it Again Gangsta Rap Jailhouse Rock Map Gangsta Rap Address 1

Ghetto SuperStar Gangsta Rap

Address 2

Figura 3: Exemplo Map

Transferncias de uma pgina a partir do espao de endereos entidade que concede ao donatrio.
Oops I did it Again Gangsta Rap Jailhouse Rock Ghetto SuperStar

Address 1

Address 2

Figura 4: Exemplo Grant

Transferncias de uma pgina a partir do espao de endereos entidade que concede ao donatrio.
Oops I did it Again Gangsta Rap Jailhouse Rock Grant Gangsta Rap Address 1 Address 2 Ghetto SuperStar

Figura 4: Exemplo Grant

Transferncias de uma pgina a partir do espao de endereos entidade que concede ao donatrio.
Oops I did it Again Gangsta Rap Jailhouse Rock Grant Gangsta Rap Address 1 Address 2 Ghetto SuperStar Gangsta Rap

Figura 4: Exemplo Grant

Exclui a pgina de flusher de todos os endereos, exceto o do flusher.


Rock Around the Clock Gangsta Rap Jailhouse Rock Rock Around the Clock Splish Splash Oh Boy Gangsta Rap Hip Hop Hurray The Boy Is Mine

Address 2

Address 3

Address 4

Oops I did it again Gangsta Rap Jailhouse Rock

Address 1

Figura 5: Exemplo Flush

Exclui a pgina de flusher de todos os endereos, exceto o do flusher.


Rock Around the Clock Gangsta Rap Jailhouse Rock Rock Around the Clock Splish Splash Oh Boy Gangsta Rap Hip Hop Hurray The Boy Is Mine

Address 2

Address 3

Address 4

Flush Gangsta Rap

Oops I did it again Gangsta Rap Jailhouse Rock

Address 1

Figura 5: Exemplo Flush

Exclui a pgina de flusher de todos os endereos, exceto o do flusher.


Rock Around the Clock Gangsta Rap Jailhouse Rock Rock Around the Clock Splish Splash Oh Boy Gangsta Rap Hip Hop Hurray The Boy Is Mine

Address 2

Address 3

Address 4

Flush Gangsta Rap

Oops I did it again Gangsta Rap Jailhouse Rock

Address 1

Figura 5: Exemplo Flush

Exclui a pgina de flusher de todos os endereos, exceto o do flusher.


Rock Around the Clock Gangsta Rap Jailhouse Rock Rock Around the Clock Splish Splash Oh Boy Gangsta Rap Hip Hop Hurray The Boy Is Mine

Address 2

Address 3

Address 4

Flush Gangsta Rap

Oops I did it again Gangsta Rap Jailhouse Rock

Address 1

Figura 5: Exemplo Flush

Definio: Troca de dados entre processos.

IPC um meio de comunicao entre processos. RPC (remote procedure call) a comunicao de ida e volta

O Microkernel manipula as transferncias de mensagens entre threads. Grant e so operaes que dependem do IPC. Map

O remetente decide se ir enviar informaes e contedos que esto nele.

Message to Thread 2: Lets get hitched!

Thread 1

Tread 2

Figura 6: IPC Funcionamento

O remetente decide se ir enviar informaes e contedos que esto nele.

Message to Thread 2: Lets get hitched!

Send to Thread 2

Thread 1

Tread 2

Figura 6: IPC Funcionamento

O remetente decide se ir enviar informaes e contedos que esto nele. O receptor decide se vai receber o contedo e como interpret-lo.
Send to Thread 2

Message to Thread 2: Lets get hitched!

Message from Thread 1: Lets get hitched!

Thread 1

Tread 2

Figura 6: IPC Funcionamento

Interrupes de hardware so feitas pelo mensageiro do IPC. O Microkernel transfere as interrupes nas mensagens, mas no as trata, ao em vez disso, o software de drive lida com elas.

Figura 7: IPC Interrupes

O Microkernel deve fornecer UIDs para comunicao segura e confivel.


O remetente quer saber se o destinatrio correto recebeu a mensagem. O receptor quer saber se a mensagem veio do correto remetente.

Mais barato que criptografia!

MACH Kernel

1985 Universidade Carnegie Mellon


1987 Sistema Chorus

Chorus Kernel

Figura 8: Arquitetura Chorus

Supervisor

Embarques armadilhas, interrupes e excees entregue por hardware.


Alocao de controles de processos e fornece pragendamento de tarefas seguintes. Manipula VM hardware e recursos de memria. Fornece mensagem de Intercmbio e chamadas de procedimento remoto (RPC)

Execuo em tempo real

Gerenciamento de Memria Virtual

IPC

Figura 9: O Ncleo Chorus

Unique Identifiers Nome Global Actors Alocao de Recursos Threads Execuo Seqencial Messages Comunicao Ports Endereamento Regions Estruturao

Figura 10: As Abstraes do Chorus

Boa Flexibilidade

Muitos aplicativos podem ser executados em cima de um Microkernel

Aplicaes flexveis

Gerenciadores de memoria Pagers Alocao de recursos de multimdia Dispositivos Drivers Segundo nvel Caches/TLBs

No-Flexveis Applications

Processor Architecture Registers Primeiro nvel Caches/Primeiro nvel TLBs

Boa Flexibilidade

Muitos aplicativos podem ser executados em cima de um Microkernel Baixo nvel de usurio de processos = acesso restrito aos recursos do sistema.

Boa segurana

Boa Flexibilidade

Muitos aplicativos podem ser executados em cima de um Microkernel Baixo nvel de usurio de processos = acesso restrito aos recursos do sistema.
Um aplicativo problemtico pode ser re-configurado sem reiniciar o sistema operacional.

Boa segurana

Robustez/Configurvel

Sobrecarga de processos - Overhead

Troca de Usurios Privilegiados

Custo de Kernel Overhead pode ser de at 800 ciclos.

Troca de Usurios Privilegiados

Custo de Kernel Overhead pode ser de at 800 ciclos.

Troca de espaos de endereos

Grandes tabelas de pagina/ Troca de Segmentos Overhead Falha TLBS = Lenta performance

Figure 11: Address Space Switch Overhead Table

Troca de Usurios Privilegiados

Custo de Kernel Overhead pode ser de at 800 ciclos.

Troca de espaos de endereos

Grandes tabelas de pagina/ Troca de Segmentos Overhead Falha TLBS = Lenta performance
486DX50

Custo de IPC
Primeira Gerao MicroKernel os IPC requerem cerca de 115 microssegundos.(115 milionsimos de segundos) Uma chamada padro de sistema no Unix requer cerca de 20 microssegundos.

Figure 12: IPC Cost Chart

Sobrecarga de Processos - Overhead Sobrecarga de Memria - Overhead

Claim (Em um 486DX50):

MACH tinha uma visvel sobrecarga de memria por instruo(Mips) que o Untrix(Kernel Monoltico)

Claim (Em um 486DX50):

MACH tinha uma visvel sobrecarga de memria por instruo(Mips) que o Untrix(Kernel Monoltico)

Razo:

MACH tinha maior conjunto de cache trabalhando que o Untrix, que produzia uma perda maior de desempenho.

Sobrecarga de Processos - Overhead Sobrecarga de Memria - Overhead

No culpemos a lgica de microkernel e idias

A culpa da m construo ! Muitos Microkernels derivados de kernels monolticos.

A Segunda Gerao Microkernel

Desenvolvido por Jochen Liedtke in 1995.

Centro Alemo de Pesquisas de TI.

Baseado na premissa que os Microkernels so inerentemente dependentes do processador. Desenvolvido a partir do zero.

Espao de Endereos Map, Grant, Demap (Flush) Threads IPC


L mensagens em menor tempo Compila grandes mensagens Lento Agendamento

Leitura de mensagens em menor tempo

Transferncias de mensagens curtas no IPC nos Registros

Compila grandes mensagens

Permite transferncias de copias nicas atravs da partilha da regio de destino com remetente.

Lento Agendamento

Atraso de circulao entre postagens at a fila de processamento.

Espao de Endereos

Map, Grant, Demap (Flush)

Threads IPC

L mensagens em menor tempo Compila grandes mensagens Lento Agendamento


Implementao de polticas de segurana.

Cls e chefes

Definies Bsicas

Chefe Criador de tarefas. Cls Tarefas criadas pelo chefe.

Threads pode enviar para o IPC e para o chefe e membros do mesmo cl. Todas as mensagens para os diferentes so encaminhadas para o chefe do cl do remetente.

Figura 15: Cls e Chefe Diagrama

Espao de Endereos

Map, Grant, Demap (Flush)

Threads IPC

L mensagens em menor tempo Compila grandes mensagens Lento Agendamento


Implementao de polticas de segurana.

Cls e chefes

UID

L4 Kernel tem menor espao de endereos IPC do que o MACH. (Liedtke 96)

8 Byte 512 IPC Byte IPC L4 5 s 18 s

MACH 115 s 172 s

L4-Linux RPC teve tempo de latncia muito inferior MkLinux (baseado em Mach).

L4-Linux tiveram menor tempo de compilao de MkLinux.

Figura 17: RPC Overhead Chart

O microkernel era suposto a fornecer boa flexibilidade, segurana e confiabilidade, oferecendo apenas os servios mnimos. Infelizmente, a primeira gerao microkernels mostrou um fraco desempenho devido m construo. No entanto, a L4 mostrou mais esperana, mostrando um melhor desempenho.

Mais pesquisas so necessrias para compreender e julgar o microkernel.