Dividido em vários processos os
chamados Servidores
São essencialmente programas como todos os
outros, exceto que o kernel concede alguns deles
privilégios para interagir com partes da memória
física que a maioria dos programas não possuem
Modos de operação
Modo protegido
Comunicação simplificado
entre processos (IPC)
Gerenciamento de memória
Gerenciamento de threads
Modo usuário
Não precisam de acesso direto ao HW
Serviços como rede, vídeo, são
considerados não essenciais, e
residem no user-space
Comunicação
Troca de mensagem
Mecanismo de comunicação
entre processos, permite um
servidor comunicar com
outro servidor
Erros
Afetam somente o
processo que ocorre
Performace
Utiliza o mínimo possível o "espaço do
sistema", poucos recursos, lento
Exemplos
Hurd
Minix
Vantagens
Mais
seguro
Mais fácil de
portar para
novas
arquiteturas
Mais fácil de
expandir
Núcleo Monolitico
Funcionalidades
Arquitetura de núcleo onde todo o núcleo é executado no espaço de núcleo no
modo de supervisão. Ou seja, é um kernel que possui todos os códigos de suporte
necessários. Funcionamento simples. Estrutura não visível.
Modos de operação
Protegido
Todos os drivers de dispositivo,
agendamento, memória
virtual, todos os processos
Comunicação (não apenas a
IPC simples como em
Microkernel), o sistema de
arquivos (virtual) e o sistema
de chamadas
Usuário
Somente aplicativos
Performace
Rápido, processa a capacidade de chamar todas as funções
diretamente como um programa no modo usuário
Comunicação
Serviços
Chamadas de sistema
Erros
Afeta todo o sistema
Vantagens
Rapidez da
execução
Simplicidade de
implementação
Desvantagens
Limitado a inovações
Dificuldade de
manutanção
Versões
Linux
Unix
MS-DOS
Kernel Híbrido
Microkernel
Estabilidade
Monolitico
Benefícios de desempenho
Tenta combinar
aspectos e
benefícios
Modos de operação
Usuário
Controladores
de
dispositivos
Sistemas
de
arquivos
E/S
Protejido
IPC
Servidores
Desvantagens
Maior trabalho
para o fabricante
de HW
Problemas de
latência (inerente
microkernel)
Versões
Windows NT
XNU
ReactOS
Subsistemas
Vista
Não concluído...
Linux
Arquitetura
Monolitico e
modular
Capacidade para carregar e
descarregar o Kernel-code
Assim pode carregar drivers para
novos dispositivos sob demanda
Gerenciamento
de processos
Estrutura
Arquivos abertos
Endereçamento dos processos
Status do processo
RUNNING
Tarefa em execução
INTERRUBTIBLE
Bloqueado, espera condição
para despertar e mudar
estado para RUNNING
UNINTERRUBTILE
Como INTERRUBTIBLE,
porém não pode mudar
para RUNNING
ZOMBIE
Tarefa terminou, pai fez a
chamada de sistema wait4()
PID
Short INT (32768)
Chamadas de sistemas
Chamadas de funções que
retornam sucesso ou falha
Tratamento de interrupções
Metade Superior
Tmp critico
Metade inferior
Tmp ñ critico
Softirqs
Tasklets
Work-queues
Ativar ou desativar
manualmente
Sincronização
do Kernel
Shared-Memory-Applications
Race conditions
Bloqueio de
recurso
Deadlock
Linux possui recursos
contra Race condition e
Deadlocking
Semáforo
Gerenciamento de
tempo
atualizar o sistema, hora do dia
Gerenciamento de memória
Paginas
4 kByte on
32Bit-Architecture
and 8 kByte on
64Bit-Architecture
Radix-Tree
Árvore binária que
permite uma pesquisa
rápida para a página