Introdução: O que é kernel e suas Introdução: O que é kernel e suas
funções
Sistema computacional
• Conjunto de dispositivos eletrônicos (hardware) capazes de
processar informações de acordo com um programa (software) e que possui interface com um usuário.
• O s oftware mais importante é o sistema operacional, porque ele
• O s oftware mais importante é o sistema operacional, porque ele
fornece as bases para a execução das aplicações, às quais o usuário
deseja executar
Sistema computacional
programadores e analistas
Usuários
programas, sistemas e aplicativos usuários
memória discos
UCP
Hardware
Sistema Operacional Sistema Operacional
fitas
impressoras monitores
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Sistema Operacional
É uma coleção de programas que:
• Inicializa o hardware do computador
• Fornece rotinas básicas para controle de dispositivos
• Fornece gerência, escalonamento e interação de tarefas
• Fornece gerência, escalonamento e interação de tarefas
• Mantém a integridade de sistema
• Oferece serviços aos usuários e às aplicações.
Ex. Windows, GNU/Linux, Mac Os, Unix, etc
Sistema Operacional
Fonte: Advanced Programming in the UNIX Environment - W. Richard
Stevens, Stephen A. Rago
Tipos Sistemas Operacionais
Sistemas Tipos de
Sistemas Operacionais
Sistemas SistemasSistemas Sistemas
Multiprogramáveis/
tarefa Multi
Sistemas Batch
Sistemas de Tempo Real Sistemas de
Tempo Compartilhado Sistemas
Monoprogramáveis/
Monotarefa
Sistemas com Múltiplos Processadores Sistemas
Multiprogramáveis/
Multitarefa
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Kernel
• O kernel é o núcleo do sistema operacional.
• Responsável direto por controlar o hardware.
Ex.: unidades de disco, portas de comunicação, dispositivos lógicos e de hardware até interpretadores de comandos, etc.
e de hardware até interpretadores de comandos, etc.
• Faz interface entre aplicativos e hardware.
Kernel
Fonte: http://www.oficinadanet.com.br/post/10330-kernel-dos-sistemas-operacionais
Kernel
As principais funções do kernel são:
• abstrair o funcionamento do hardware;
• tratamento de interrupções e exceções;
• criação e eliminação de processos;
• criação e eliminação de processos;
• sincronização e comunicação entre processos;
• escalonamento e controle de processos;
• gerência de memória;
• gerência de sistema de arquivos;
• gerência de dispositivos de E/S.
Modos de Acesso
• SO roda em Modo kernel (superusuário, administrator, root)
→ protege o hardware da ação direta do usuário.
Executa instruções privilegiadas.
• Os demais programas rodam em modo usuário e fazem chamadas ao kernel para terem acesso aos dispositivos.
kernel para terem acesso aos dispositivos.
Executa instruções não privilegiadas.
Modos de Acesso
System calls
• Mecanismo de proteção ao núcleo do sistema e de acesso aos seus serviços.
• O usuário (ou aplicação), quando deseja solicitar algum serviço do
sistema, realiza uma chamada a uma de suas rotinas (ou serviços) através da system calls (chamadas ao sistema).
da system calls (chamadas ao sistema).
• Geralmente uma system call é chamada através de uma API (Aplication
Program Interface).
System calls
Fonte: Sistemas Operacionais , aula 05 – Aline de Campos
System calls
POSIX Win32 Description
fork CreateProcess Create a new process
wait WaitForSingleObject The parent process may wait for the child to finish
execve -- CreateProcess = fork + execve
exit ExitProcess Terminate process
open CreateFile Create a new file or open an existing file
close CloseHandle Close a file
close CloseHandle Close a file
read ReadFile Read data from an open file
write WriteFile Write data into an open file
lseek SetFilePointer Move read/write offset in a file (file pointer) stat GetFileAttributesExt Get information on a file
mkdir CreateDirectory Create a file directory rmdir RemoveDirectory Remove a file directory
link -- Win32 does not support “links” in the file system
unlink DeleteFile Delete an existing file
chdir SetCurrentDirectory Change working directory
System calls
Fonte: http://www.soffner.com.br/semana2_soii.htm
System calls
Fonte: System Calls & API Standards - Silberschatz, Galvin e Gagne
System calls
#include <windows.h>
#include <stdio.h>
typedef struct _SYSTEMTIME {
WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
} SYSTEMTIME, *PSYSTEMTIME;
void main() {
SYSTEMTIME lt;
GetLocalTime(<);
printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
}
// Sample output
The local time is: 12:34
Kernel Monolítico
• O kernel inteiro é executado como um único programa no modo núcleo.
• Grande desempenho
• Uma falha pode paralisar todo o núcleo. O sistema pode parar por causa de um erro.
de um erro.
Ex: Linux, FreeBSD, System V, DOS, Windows 95/98/Me.
Kernel Monolítico
Fonte: Sistema Operacionais – Andreza Leite
Kernel Monolítico
Fonte: http://en.wikipedia.org/wiki/Monolithic_kernel
Micro Kernel
• Núcleo menor e mais simples
• O sistema passa a ser de mais fácil manutenção.
• Micronúcleos são comuns em aplicações de tempo real, industriais, aviônica e militares, que são cruciais e tem requisitos de confiabilidade muito altos.
muito altos.
Ex: Integrity, Mach, K42, L4, Hurd, PikeOS, QNX, Symbiam e MINIX3.
Micro Kernel
Fonte: http://en.wikipedia.org/wiki/Monolithic_kernel
Micro Kernel
Fonte: The Minix Book - Andrew Tanenbaum
Kernel híbrido
Fonte: http://en.wikipedia.org/wiki/Monolithic_kernel
Kernel híbrido
Fonte: http://en.wikipedia.org/wiki/Monolithic_kernel
Exokernel
Fonte: http://en.wikipedia.org/wiki/Exokernel
Interrupções e exceções
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Processos
• Processos são programas em execução.
• Um programa por si só não é um processo. Um programa é uma entidade passiva, enquanto o processo é uma entidade ativa
• Exemplo: preparação de bolo de aniversário
• Exemplo: preparação de bolo de aniversário – A receita – programa (algoritmo)
– Os ingredientes – dados de entrada – O cozinheiro – processador
– Atividade de preparar o bolo (processo)
Estrutura do Processo
Contexto de Software
prioridade de
execução registrador PC
data/ hora de criação
owner (UID) PID
nome
registradores gerais
Contexto de Hardware
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Programa Software
tempo de processador
registrador SP
quotas privilégios
endereços de memória principal alocados
registrador de status
Hardware
Espaço de Endereçamento
Processos Foreground e Background
(a) Processo Foreground
saída
terminal terminal
entrada
(b) Processo Background
saída
arquivo de saída
terminal terminal
entrada
arquivo de entrada
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Estados dos Processos
Estado de Execução Estado de Término
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Estado de Espera Estado de Pronto Estado de Criação
Processos CPU-bound e I/O bound
E/ S E/ S
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
(a) CPU-bound
tempo tempo
UCP UCP
(b) I/ O-bound
Thread
• Threads (também chamadas de processos leves) permitem que partes de um processo sejam executadas em paralelo.
• Threads compartilham o mesmo espaço de endereçamento e com isso a comunicação entre threads é simples e de alto desempenho.
• Um processo pode ter uma ou mais threads.
Sincronização e Comunicação entre processos
• Processos compartilham ou trocam dados entre si.
• IPC (Inter-process communication) é o grupo de mecanismos que permite
aos processos transferirem informação entre si.
Sincronização e Comunicação entre processos
Sincronização
Processo gravador
Processo leitor
dado
le itu ra gra va çã o
Buffer
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Condições de disputa
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Exclusão Mútua
• Solução mais simples
• Impede que dois ou mais processos acessem simultaneamente um mesmo recurso
• Quando um processo estiver acessando o recurso, os demais processos
• Quando um processo estiver acessando o recurso, os demais processos que desejam acessá-los devem ficar em espera. Essa parte do código que faz acesso ao recurso é denominada região crítica
• Uma vez garantida a execução mutuamente exclusiva das regiões críticas,
resolve-se problemas de compartilhamento
Exclus ã o M ú tua
Fonte: Sincronização entre processo – Andreza Leite
Semáforo
• Principal mecanismo usado em aplicações concorrentes.
• Composto por uma variável inteira não negativa que só pode ser manipula por duas instruções: DOWN e UP.
• Semáforos binários (MUTEX, de MUTual EXclusion) só podem assumir 0 ou
• Semáforos binários (MUTEX, de MUTual EXclusion) só podem assumir 0 ou
1.
Sem á foro Bin á rio na Exclus ã o M ú tua
Processo deseja entrar na região crítica
D O W N (S > 0)
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Fila de espera de processos Processo acessa
a região crítica
D O W N
(S = D O W N (S > 0 0)
UP (S) - processo sai da região crítica
Libera processo
da fila de espera
Sem á foro Bin á rio na Exclus ã o M ú tua
TYPE Semaforo = RECORD Valor : INTEGER;
Fila_Espera : (* lista de processos pendentes *);
END;
PROCEDURE DOWN (VAR S : Semaforo);
BEGIN
IF (S = 0) THEN Coloca_Processo_na_Fila_de_Espera
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia IF (S = 0) THEN Coloca_Processo_na_Fila_de_Espera
ELSE
S := S – 1;
END;
PROCEDURE UP (VAR S : Semaforo);
BEGIN
S := S + 1;
IF (Tem_Processo_Esperando) THEN Retira_Processo_da_Fila_de_Espera
END;
Sem á foro Bin á rio na Exclus ã o M ú tua
PROGRAM Semaforo_1;
VAR S : Semaforo := 1;
PROCEDURE Processo_A BEGIN
REPEAT
PROCEDURE Processo_B BEGIN
REPEAT
DOWN (S)
Região_Critica_B;
UP (S);
UNTIL False;
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia REPEAT
DOWN (S)
Região_Critica_A;
UP (S);
UNTIL False;
END;
UNTIL False;
END;
BEGIN
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
Sem á foro Bin á rio na Exclus ã o M ú tua
Processo_A Processo_B S Pendente
---
REPEAT - 1 *
DOWN (S) REPEAT 0 *
Região_Critica_A DOWN (S) 0 Processo_B
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia (adaptado)
Região_Critica_A DOWN (S) 0 Processo_B
UP (S) DOWN (S) 1 Processo_B
REPEAT Região_Critica_B 0 *
Deadlock
Processo A Processo A
solicita o Recurso 2
Recurso 1 alocado ao Processo A
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Recurso 2 Recurso 1
Processo B
Recurso 2 alocado ao
Processo B
Processo B
solicita o
Recurso 1
Escalonamento
Estado de Execução
E sc a
lo n a m e
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Estado de Espera
Estado de Pronto o n a
m e n
to
Algoritmos de escalonamento
• Não Preemptivos
– Fisrt-In First-Out (FIFO) – Shortest-Job-First – SJF
• Preemptivos
– Por prioridades
– Circular (Round-Robin) – Filas multi-nivel
– Tempo Real
Escalonamento FIFO
UCP Estado de
Criação
Fila dos processos no estado de Pronto
Estado de Término
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Estado de Espera
Escalonamento FIFO
Processo A
Processo B
Processo C
10 14 17 u.t.
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
10 14 17
Processo A
Processo B
Processo C
4 7 17 u.t.
Processo
Tempo de processador
(u.t.) A
B C
10 4 3
Escalonamento SJF
Processo A
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Processo B
Processo C
3 7 17 u.t.
Escalonamento Circular (RR)
UCP Estado de
Criação
Fila dos processos no estado de Pronto
Estado de Término
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Preempção por tempo
Estado de Espera
Escalonamento Circular (RR)
Processo A
Processo B
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Processo B
Processo C
2 4 6 8 10 11 17 u.t.
Escalonamento por Prioridade
Estado de Filas dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Estado de
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
UCP
Estado de Término
Prioridade Pn Estado de
Criação
Estado de Espera
Preempção por prioridade
Escalonamento por Prioridade
Processo A
Processo B
Processo
Tempo de processador
(u.t.)
A 10
Prioridade 2
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Processo C
3 13 17 u.t.
A B C
10 4 3
2 1 3
Escalonamento Circular por Prioridade
Estado de Término Fila dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Estado de Criação
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
UCP Término
Prioridade Pn Criação
Estado de Espera
Preempção por tempo ou prioridade
Escalonamento por Múltiplas Filas
Fila de processos do sistema
Fila de processos interativos Maior
prioridade
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
UCP
Fila de processos batch Menor
prioridade
Escalonamento por Múltiplas Filas com realimentação
Fila 1 (FIFO Adaptado)
Preempção por tempo
Fila 2 (FIFO Adaptado)
Preempção por tempo
Maior Prioridade Menor fatia de tempo
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Fila 3 (FIFO Adaptado) UCP
Preempção por tempo
Fila n (Circular)
Preempção por tempo
Menor Prioridade Maior fatia de tempo
Tempo compartilhado - FIFO
Processo A
Processo B
u.t.
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
27 u.t.
7
E/S de A
11
E/S de B
19
E/S de A
21
E/S de B
Processo
Tempo de processador
(u.t.) A
B
21 6
Característica CPU-bound
I/ O-bound
Tempo compartilhado – RR
Processo A
Processo B
u.t.
por A
5
e B
9
e A
11 13 18 20 23 25 27
UCP livre
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Processo
Tempo de processador
(u.t.) A
B
15 10
Característica CPU-bound
I/ O-bound
Preempção por tempo de A E/S de B E/S de A E/S de B Preempção por tempo de A E/S de B E/S de A E/S de B
Tempo compartilhado - RR com prioridade
Processo A
Processo B
u.t.
e B
4
por e A
6
e B
8
por e A
12 14 15 17 18 20 24 27
UCP livre
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
E/S de B
4
Preempção por prioridade de A 6
E/S de B
8
Preempção por prioridade de A 12
E/S de B
14
E/S de A
15 17
Preempção por prioridade de A 18
E/S de B
20
Preempção por prioridade de A 24
E/S de B
27
Processo
Tempo de processador
(u.t.) A
B
12 13
Característica CPU-bound
I/ O-bound
Prioridade Baixa
Alta
Escalonamento de Tempo Real
• Leva em consideração apenas a prioridade
• Não há o conceito de fatia de tempo
• Tipos de aplicações
– Industriais (Ex. Sistema de controle de produção) – Automóveis (Ex. ABS)
– Aviônica (Ex. controle de tráfego aéreo)
Gerência de memória
• monitora quais partes da memória estão em uso e quais estão disponíveis;
• aloca e libera memória para os processos;
• gerencia a permuta de processos entre memória principal e secundária (quando a memória principal não é capaz de abrigar todos os processos).
(quando a memória principal não é capaz de abrigar todos os processos).
Gerência de memória
Fonte: http://taturial.blogspot.com.br/2012/02/diferenca-entre-as-memorias.html
Alocação contígua simples
Memória Principal
Registrador Sistema
Operacional
Memória Principal Sistema
Operacional
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Área para programa
Programa do usuário
Área livre
Técnica de overlay
Memória Principal
Cadastramento Sistema Operacional
2 Kb
3 Kb
4 Kb Módulo principal
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Impressão 4 Kb
4 Kb
2 Kb 2 Kb 1 Kb
Área de overlay
Área livre
Área não utilizada
Alocação particionada estática
Memória Principal Sistema Operacional
2 Kb
5 Kb Partição 1
Partição
Tabela de partições Tamanho
1 2 Kb
2 5 Kb Partição 2
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
5 Kb
8 Kb
2 5 Kb
3 8 Kb
Partição 2
Partição 3 Programas a serem executados:
A E
3 Kb
D 6 Kb
C 1 Kb
B
4 Kb 2 Kb
Alocação particionada estática absoluta
Memória Principal Sistema Operacional
2 Kb
5 Kb Partição 1
Partição 2 A
B C
E
1 Kb 2 Kb
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
5 Kb
8 Kb Partição 2
Partição 3 B
D E
3 Kb
6 Kb
4 Kb
Alocação particionada estática relocável
Memória Principal Sistema Operacional
Programa C 2 Kb
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia 5 Kb
8 Kb Programa A
Programa B E
D
6 Kb 3 Kb
Fragmentação Interna
Memória Principal Sistema Operacional
1 Kb Programa C
Programa A B
D
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb
5 Kb Programa E
B D
6 Kb 4 Kb
Alocação particionada dinâmica
Memória Principal Memória Principal
Sistema Operacional Sistema Operacional
4 Kb
Programa C 1 Kb Programa B
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
1 Kb 3 Kb
5 Kb 2 Kb 15 Kb
Programa C
Programa A Programa E B
A 2 Kb
E 3 Kb
C
1 Kb 4 Kb
Fragmentação externa
Memória Principal
Sistema Operacional
4 Kb
Programa C
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb
5 Kb Programa C
Programa A D
6 Kb
Fragmentação externa - Soluções
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Estratégias de alocação de partição
Memória Principal
Sistema Operacional
4 Kb
Programa C Áreas livres
Área livre 1 Tamanho
1 4 Kb
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb 5 Kb Programa C
Programa A Área livre 2
Área livre 3
2 5 Kb
3 3 Kb
Best-fit
Memória Principal Sistema Operacional
4 Kb
Programa C
Sistema Operacional
Programa C
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb 5 Kb
Programa A F
1 Kb
2 Kb Programa C
Programa F Programa A
Área livre
Worst-fit
Memória Principal Sistema Operacional
4 Kb
Programa C
Sistema Operacional
Programa C
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb 5 Kb
Programa C
Programa A F
1 Kb 4 Kb
Programa C
Programa A Área livre Programa F
First-fit
Memória Principal Sistema Operacional
4 Kb
Programa C
Sistema Operacional
3 Kb Programa C
Área livre Programa F
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
3 Kb 5 Kb
Programa A F
1 Kb
Programa A
Swapping
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Memória Virtual
Memória Virtual Memória Principal
. . .
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia .
. . .
Memória Secundária
Memória Virtual por Paginação
Memória Virtual
Página virtual 0
Página virtual 1
Página virtual 2
Tabela de páginas
Memória Principal
. . .
Página real 0
Página real 1
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia .
. . .
Página virtual 2
Página virtual V
ETP
Memória Secundária
.
Página real R
Memória Virtual por Paginação
Endereço virtual
Tabela de páginas
Bit de validade 0
Memória Principal
Page fault
Page in
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Memória secundária
Tabela de páginas
Bit de validade 1
Memória Principal
Memória secundária
Memória Virtual por Paginação
Memória Principal
Arquivo de paginação Page o
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Page out
Page in
Sistema de Arquivos
• Um processo deve ser capaz de ler e gravar de forma permanente grande volume de dados além de poder compartilhá-los com outros processos.
• Um arquivo é constituído por informações logicamente relacionadas que podem representar instruções (arquivo binário) ou dados (arquivo de texto).
texto).
• A parte do sistema operacional responsável por essa gerência de arquivos
é denominada Sistema de Arquivos.
Extensão
Extensão Descrição
Arquivo.c Arquivo fonte em C
Arquivo.java Arquivo fonte em JAVA Arquivo.jpg Imagem no formato JPEG Arquivo.jpg Imagem no formato JPEG Arquivo.jpeg Imagem no formato JPEG Arquivo.png Imagem no formato Bitmap
Arquivo.txt Arquivo texto
Arquivo.exe Arquivo executável
Organização de arquivos
Byte
Ana Cláudia Teresa
Beatriz Camila Daniele Patrícia Tina Vanessa
(a) Organização não-estruturada
Isabela Maria
Registro
(b) Organização Indexada
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Atributos
Atributos Descrição
Tipo Especifica o tipo do arquivo
Tamanho Especifica o tamanho do arquivo Proteção Código de proteção de acesso
Dono Identifica o criador do arquivo
Criação Data e hora de criação do arquivo Modificação/Backup Data e hora da última modificação
salva
Senha Senha necessária para acessar o
arquivo (opcional)
Diretórios
• A estrutura de diretórios é como o sistema organiza logicamente os diversos arquivos contidos em disco.
• São estruturas de dados que contém entradas associadas aos arquivos, onde cada entrada armazena o nome, localização e demais atributos do arquivo.
arquivo.
Estrutura de diretórios em árvore
Usuário 1
Usuário 2
Diretório 1
Diretório 2
Arquivo 1
Arquivo 1
Arquivo 2
Arquivo 1
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Usuário 3
Usuário n
Diretório Raiz
Arquivo 1
Diretório 1
Arquivo 1
Arquivo 2
Arquivo 1
Arquivo 2
File Path
Disco C:/
Ivan Ivan
Carlos Paulo
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Teste Pessoal
Soma.exe
Gerência de E/S
Processo
Sistema
Operações de E/ S
Modo Usuário
Independente do dispositivo
E
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Controladores
Dispositivos de E/ S Sistema
de Arquivos
Device Drivers Subsistema de E/ S
MModo Kernel
do dispositivo (a)
Dependente do dispositivo
(b)
SOFTWAREHARDWARE
Gerência de E/S
Comandos de E/ S
Aplicação
Bibliotecas
Fonte: Arquitetura de Sistemas Operacionais – Machado e Maia
Device drivers
Dispositivos de E/ S Rotinas de E/ S System calls de E/ S