Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Este texto est licenciado sob a Licena Attribution-NonCommercial-ShareAlike 3.0 Unported da Creative
Commons (CC). Em resumo, voc deve creditar a obra da forma especificada pelo autor ou licenciante (mas
no de maneira que sugira que estes concedem qualquer aval a voc ou ao seu uso da obra). Voc no
pode usar esta obra para fins comerciais. Se voc alterar, transformar ou criar com base nesta obra, voc
poder distribuir a obra resultante apenas sob a mesma licena, ou sob uma licena similar presente.
Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/3.0/.
Este texto foi produzido usando exclusivamente software livre: Sistema Operacional GNU/Linux (distribuies Fedora e Ubuntu), compilador de texto LATEX 2 , gerenciador de referncias BibTeX, editor grfico
Inkscape, criadores de grficos GNUPlot e GraphViz e processador PS/PDF GhostScript, entre outros.
c Carlos Maziero
: SUMRIO
Sumrio
1
Introduo
Dispositivos de entrada/sada
2.1 Componentes de um dispositivo
2.2 Barramentos . . . . . . . . . . . .
2.3 Interface de acesso . . . . . . . .
2.4 Endereamento . . . . . . . . . .
2.5 Interrupes . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
6
7
10
11
Software de entrada/sada
3.1 Classes de dispositivos . . . . . . . . . . . .
3.2 Estratgias de interao . . . . . . . . . . .
3.2.1 Interao controlada por programa .
3.2.2 Interao controlada por eventos . .
3.2.3 Acesso direto memria . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
17
19
19
21
24
.
.
.
.
.
27
28
28
29
33
33
Discos rgidos
4.1 Estrutura fsica . . . . . .
4.2 Interface de hardware . .
4.3 Escalonamento de acessos
4.4 Caching de blocos . . . . .
4.5 Sistemas RAID . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Interfaces de rede
39
Dispositivos USB
39
Interfaces de udio
39
Interface grfica
39
Mouse e teclado
39
10 Outros tpicos
39
c Carlos Maziero
: Introduo
Resumo
Este contedo est em elaborao. Ainda h muito o que escrever aqui...
Introduo
c Carlos Maziero
: Dispositivos de entrada/sada
Dispositivos de entrada/sada
2.1
Componentes de um dispositivo
c Carlos Maziero
: Componentes de um dispositivo
c Carlos Maziero
: Barramentos
CPU
dados
controlador de barramento
01001010
01001010
dados
01101010
buer
01101010
buer
sinal digital
conversor
digitalanalgico
conversor
analgicodigital
sinal analgico
sensor
amplicador
atuador
amplicador
controlador de dispositivo
2.2
Barramentos
c Carlos Maziero
: Interface de acesso
North bridge
(memory
controller hub)
AGP port
LPC bus
RAM
onboard ethernet
BIOS
RAM
South bridge
(I/O controller
hub)
onboard audio
power management
real-time clock
SATA
PCI
USB
standard buses
2.3
Interface de acesso
Para o sistema operacional, o aspecto mais relevante de um dispositivo de entrada/sada sua interface de acesso, ou seja, a abordagem a ser usada para acessar o
dispositivo, configur-lo e enviar dados para ele (ou receber dados dele). Normalmente,
cada dispositivo oferece um conjunto de registradores acessveis atravs do barramento,
7
c Carlos Maziero
: Interface de acesso
CPU
data-in
data-out
status
control
device controller
c Carlos Maziero
: Interface de acesso
c Carlos Maziero
: Endereamento
aguarda um
novo dado
P2.strobe?
informa que
o controlador
est ocupado
P1.busy = 1
l e trata o
dado recebido
l P0
informa que
o dado foi
processado
gera pulso
em P1.ack
gera
interrupo?
P2.enable_IRQ?
ack
gera IRQ
0
informa que
o controlador
est livre
P1.busy = 0
2.4
Endereamento
c Carlos Maziero
: Interrupes
2.5
Interrupes
c Carlos Maziero
: Interrupes
c Carlos Maziero
: Interrupes
1: excuo
normal
4: a execuo desviada
rotina de
tratamento de
interrupo
6: retorno ao
fluxo anterior
programa
em
execuo
buer
CPU
3: o controlador gera
uma interrupo
5: dados do controlador
transferidos para a memria
registers
keyboard controller
buer
c Carlos Maziero
: Interrupes
Descrio
divide error
breakpoint
bound range exception
invalid opcode
coprocessor segment overrun
segment not present
stack fault
general protection
page fault
floating point error
c Carlos Maziero
: Software de entrada/sada
CPU
IRQ
registers
registers
interrupt
controller
IRQ
disk
controller
control
status
data
registers
IRQ
...
network
controller
registers
USB
controller
IRQ
registers
touchscreen
controller
IRQ
Software de entrada/sada
O sistema operacional responsvel por oferecer acesso aos dispositivos de entrada/sada s aplicaes e, em ltima instncia, aos usurios do sistema. Prover acesso
eficiente, rpido e confivel a um conjunto de perifricos com caractersticas diversas de
comportamento, velocidade de transferncia, volume de dados produzidos/consumidos
e diferentes interfaces de hardware um imenso desafio. Alm disso, como cada
dispositivo define sua prpria interface e modo de operao, o ncleo do sistema
operacional deve implementar cdigo de baixo nvel para interagir com milhares de
tipos de dispositivos distintos. Como exemplo, cerca de 60% das 12 milhes de linhas
de cdigo do ncleo Linux 2.6.31 pertencem a cdigo de drivers de dispositivos de
entrada/sada.
Para simplificar o acesso e a gerncia dos dispositivos de entrada/sada, o cdigo do
sistema operacional estruturado em camadas, que levam das portas de entrada/sada,
15
c Carlos Maziero
: Software de entrada/sada
data
control
nvel de ncleo
Input/output API
data
control
IRQ
interrupt
handler
device driver
software
hardware
control
IRQ
interrupt
controller
data/control
IRQ
device
controller
DMA
controller
IRQ
data/control
I/O device
c Carlos Maziero
: Classes de dispositivos
3.1
Classes de dispositivos
17
c Carlos Maziero
exemplos:
acesso
exemplos:
persistncia:
exemplos:
: Classes de dispositivos
entrada
sada
caractere: os dados so envia- bloco: os dados so enviados/dos ou recebidos byte por byte recebidos em blocos de tamanho fixo
terminais, portas paralelas e discos rgidos, interfaces de
seriais, mouses, teclados
rede (pacotes), fitas magnticas
sequencial: os dados so envi- direto: a cada dado enviado
ados ou recebidos em sequn- ou recebido associado um
cia, um aps o outro
endereo (respectivamente de
destino ou de origem)
porta paralela/serial, mouse, disco rgido, interface de rede
teclado, fita magntica
persistente, se o dado envi- voltil, se o dado enviado
ado pode ser resgatado dire- consumido pelo dispositivo,
tamente (ou, em outras pala- ou se o dado recebido do disvras, se os dados lidos do dis- positivo foi produzido por
positivo foram anteriormente ele e no anteriormente depoescritos nele por aquele com- sitado nele.
putador ou algum outro)
fita magntica, disco rgido
interface de rede, porta serial/paralela
c Carlos Maziero
3.2
: Estratgias de interao
Estratgias de interao
19
c Carlos Maziero
1
2
3
4
// portas da
#define P0
#define P1
#define P2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
polling_output ()
{
for (i = 0 ; i < BUFSIZE ; i++)
{
// espera o controlador ficar livre (bit BUSY deve ser zero).
while (in (P1) & BUSY) ;
20
21
22
23
// gera pulso de 1
// para indicar ao
out (P2, in (P2) |
usleep (1) ;
out (P2, in (P2) &
24
25
26
27
28
29
30
31
32
33
Em conjunto, processador e controlador executam aes coordenadas e complementares: o processador espera que o controlador esteja livre antes de enviar um novo dado;
por sua vez, o controlador espera que o processador lhe envie um novo dado para
processar. Essa interao ilustrada na Figura 9. O controlador pode ficar esperando por
novos dados, pois s precisa trabalhar quando h dados a processar, ou seja, quando o bit
strobe de sua porta P2 indicar que h um novo dado em sua porta P0 . Entretanto, manter
o processador esperando at que a operao seja concluda indesejvel, sobretudo
se a operao solicitada for demorada. Alm de constituir uma situao clssica de
desperdcio de recursos por espera ocupada, manter o processador esperando pela
resposta do controlador pode prejudicar o andamento de outras atividades importantes
do sistema, como a interao com o usurio.
O problema da espera ocupada torna a estratgia de entrada/sada por programa
pouco eficiente, sobretudo se o tempo de resposta do dispositivo for longo, sendo por
isso pouco usada em sistemas operacionais de propsito geral. Seu uso se concentra
3
Como o bit BUSY da porta P1 deve retornar ao valor zero (0) aps o pulso no bit ACK, o pseudo-cdigo
poderia ser simplificado, eliminando o lao de espera sobre ACK; contudo, esse lao foi mantido para
maior clareza didtica.
20
c Carlos Maziero
processador
espera
controlador
ficar livre
controlador
wait (!busy)
busy=0
wait (!strobe)
prepara e
envia byte
interface
data=byte
espera
novo byte
strobe=0
busy=1
espera
byte ser
recebido
wait (!ack)
recebe e
processa
novo byte
ack=0
busy=0
c Carlos Maziero
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
c Carlos Maziero
controlador
wait (!busy)
busy=0
wait (!strobe)
prepara e
envia byte
interface
data=byte
strobe=0
schedule()
tratador de
interrupo
raise IRQ
wait (!strobe)
data=byte
espera
novo
byte
recebe e
processa
byte
espera
novo
byte
strobe=0
processo
suspenso
raise IRQ
wait (!strobe)
data=byte
recebe e
processa
byte
espera
novo
byte
strobe=0
raise IRQ
recebe e
processa
byte
resume()
t
23
c Carlos Maziero
buffer tem uma capacidade limitada. Por essa razo, o tratamento das interrupes
deve ser feito de forma muito rpida.
A maioria dos sistemas operacionais implementa o tratamento de interrupes
em dois nveis distintos: um tratador primrio (FLIH - First-Level Interrupt Handler) e
um tratador secundrio (SLIH - Second-Level Interrupt Handler). O tratador primrio,
tambm chamado hard/fast interrupt handler ou ainda top-half handler, lanado quando
a interrupo ocorre e deve executar rapidamente, pois as demais interrupes esto
inibidas. Sua atividade se restringe a aes essenciais, como reconhecer a ocorrncia
da interrupo junto ao controlador e registrar dados sobre a mesma em uma fila de
eventos pendentes, para tratamento posterior.
Por sua vez, o tratador secundrio, tambm conhecido como soft/slow interrupt
handler ou ainda bottom-half handler, tem por objetivo tratar a fila de eventos pendentes
registrados pelo tratador primrio, quando o processador estiver disponvel. Ele
pode ser escalonado e suspenso da mesma forma que um processo ou thread, embora
normalmente execute com maior prioridade. Embora mais complexa, esta estrutura
em dois nvel traz algumas vantagens: ao permitir um tratamento mais rpido de cada
interrupo, minimiza o risco de perder interrupes concomitantes; alm disso, a fila
de eventos pendentes pode ser analisada para remover eventos redundantes (como
atualizaes consecutivas de posio do mouse).
No Linux, cada interrupo possui sua prpria fila de eventos pendentes e seus
prprios top-half e bottom-half. Os tratadores secundrios so lanados pelos respectivos
tratadores primrios, sob a forma de threads de ncleo especiais (denominadas tasklets
ou workqueues) [Bovet and Cesati, 2005]. O ncleo Windows NT e seus sucessores
implementam o tratamento primrio atravs de rotinas de servio de interrupo (ISR Interrupt Service Routine). Ao final de sua execuo, cada ISR agenda o tratamento secundrio da interrupo atravs de um procedimento postergado (DPC - Deferred Procedure
Call) [Russinovich and Solomon, 2004]. O sistema Symbian usa uma abordagem similar
a esta.
Por outro lado, os sistemas Solaris, FreeBSD e MacOS X usam uma abordagem
denominada interrupt threads [Mauro and McDougall, 2006]. Cada interrupo provoca
o lanamento de uma thread de ncleo, que escalonada e compete pelo uso do
processador de acordo com sua prioridade. As interrupes tm prioridades que podem
estar acima da prioridade do escalonador ou abaixo dela. Como o prprio escalonador
tambm uma thread, interrupes de baixa prioridade podem ser interrompidas pelo
escalonador ou por outras interrupes. Por outro lado, interrupes de alta prioridade
no so interrompidas pelo escalonador, por isso devem executar rapidamente.
3.2.3
24
c Carlos Maziero
Obviamente pode existir uma conteno (disputa) entre o processador e os controladores no acesso
aos barramentos e memria principal, mas esse problema atenuado pelo fato do processador poder
acessar o contedo das memrias cache enquanto a transferncia DMA executada. Alm disso, circuitos
de arbitragem intermedeiam o acesso memoria para evitar conflitos. Mais detalhes sobre conteno de
acesso memria durante operaes de DMA podem ser obtidos em [Patterson and Henessy, 2005].
25
c Carlos Maziero
processador
memria RAM
5: interrupt request
barramento
1: DMA request
2: transfer request
3: data transfer
controlador
de disco rgido
controlador
de DMA
hardware do dispositivo
8
9
10
11
12
13
14
15
16
17
18
19
20
26
c Carlos Maziero
: Discos rgidos
Discos rgidos
27
c Carlos Maziero
4.1
: Estrutura fsica
Estrutura fsica
Um disco rgido composto por um ou mais discos metlicos que giram juntos
em alta velocidade (entre 4.200 e 15.000 RPM), acionados por um motor eltrico. Para
cada face de cada disco h uma cabea de leitura, responsvel por ler e escrever dados
atravs da magnetizao de pequenas reas da superfcie metlica. Cada face dividida
logicamente em trilhas e setores; a interseo de uma trilha e um setor em uma face
define um bloco fsico, que a unidade bsica de armazenamento e transferncia de
dados no disco. Os discos rgidos atuais (at 2010) usam blocos de 512 bytes, mas
o padro da industria est migrando para blocos fsicos de 4.096 bytes. A Figura
12 apresenta os principais elementos que compem a estrutura de um disco rgido.
Um disco tpico comporta milhares de trilhas e centenas de setores por face de disco
[Patterson and Henessy, 2005].
setores
trilhas
blocos
faces
cabeas
Figura 12: Elementos da estrutura de um disco rgido.
Por serem dispositivos eletromecnicos, os discos rgidos so extremamente lentos,
se comparados velocidade da memria ou do processador. Para cada bloco a ser
lido/escrito, a cabea de leitura deve se posicionar na trilha desejada e aguardar o disco
girar at encontrar o setor desejado. Esses dois passos definem o tempo de busca (ts
seek time), que o tempo necessrio para a cabea de leitura se posicionar sobre uma
determinada trilha, e a latncia rotacional (tr rotation latency), que o tempo necessrio
para o disco girar at que o setor desejado esteja sob a cabea de leitura. Valores mdios
tpicos desses atrasos para discos de uso domstico so ts 10ms e tr 5ms. Juntos,
esses dois atrasos podem ter um forte impacto no desempenho do acesso a disco.
4.2
Interface de hardware
c Carlos Maziero
: Escalonamento de acessos
IDE: Integrated Drive Electronics, padro tambm conhecido como PATA (Parallell
ATA - Advanced Technology Attachment); surgiu nos anos 1980 e durante muito
tempo foi o padro de interface de discos mais usado em computadores pessoais.
Suporta velocidades de at 133 MB/s, atravs de cabos paralelos de 40 ou 80
vias. Cada barramento IDE suporta at dois dispositivos, em uma configurao
mestre/escravo.
SATA: Serial ATA, o padro de interface de discos em desktops e notebooks atuais.
A transmisso dos dados entre o disco e a controladora serial, atingindo taxas
entre 150 MB/s e 300 MB/s atravs de cabos com 7 vias.
SCSI: Small Computer System Interface, padro de interface desenvolvida nos anos
1980, foi muito usada em servidores e estaes de trabalho de alto desempenho.
Um barramento SCSI suporta at 16 dispositivos e atinge taxas de transferncia de
at 640 MB/s (divididos entre os dispositivos conectados no mesmo barramento).
SAS: Serial Attached SCSI, uma evoluo do padro SCSI, permitindo atingir taxas
de transferncia de at 600 MB/s em cada dispositivo conectado controladora.
usado em equipamentos de alto desempenho.
importante observar que esses padres de interface no so de uso exclusivo em
discos rgidos, muito pelo contrrio. H vrios tipos de dispositivos que se conectam
ao computador atravs dessas interfaces, como discos de estado slido (SSD), leitores
ticos (CD, DVD), unidades de fita magntica, scanners, etc.
4.3
Escalonamento de acessos
c Carlos Maziero
: Escalonamento de acessos
524
189
335
324
659
498
161
286
447
376
71
843
914
636
278
bloco
222
500
200
400
600
800
c Carlos Maziero
: Escalonamento de acessos
255
914
659
588
90
117
161
57
278
335
200
112
bloco
77
447
524
500
24
400
600
800
255
135
914
659
524
453
71
90
161
117
278
57
335
112
200
bloco
53
447
500
400
600
800
c Carlos Maziero
: Escalonamento de acessos
desempenho ser pior que o do algoritmo do elevador clssico, sua maior vantagem
prover um tempo de espera mais homogneo aos pedidos pendentes, o que
importante em servidores. Este algoritmo tambm conhecido como C-SCAN ou
C-LOOK.
524
135
659
255
914
843
161
117
278
57
335
112
200
bloco
53
447
500
400
600
800
c Carlos Maziero
: Caching de blocos
CFQ (Completely Fair Queuing): os pedidos dos processos so divididos em vrias filas
(64 filas por default); cada fila recebe uma fatia de tempo para acesso ao disco,
que varia de acordo com a prioridade de entrada/sada dos processos contidos na
mesma. Este o escalonador default do Linux na maioria das distribuies atuais.
4.4
Caching de blocos
4.5
Sistemas RAID
c Carlos Maziero
: Sistemas RAID
read-behind
t1
read-ahead
t2
cache
t2
cache
cache
cache
t1
dispositivo
dispositivo
write-through
t1
write-back
t1
t2
cache
cache
cache
cache
t2
dispositivo
dispositivo
Figura 17: Estratgias de caching de blocos (t1 e t2 indicam dois instantes de tempo).
Entretanto, o desempenho dos discos rgidos evolui a uma velocidade muito menor
que que a observada nos demais componentes dos computadores, como processadores,
memrias e barramentos. Com isso, o acesso aos discos constitui um dos maiores
gargalos de desempenhos nos sistemas de computao. Boa parte do baixo desempenho
no acesso aos discos devida aos aspectos mecnicos do disco, como a latncia
rotacional e o tempo de posicionamento da cabea de leitura do disco (vide Seo 4.3)
[Chen et al., 1994].
Outro problema relevante associado aos discos rgidos diz respeito sua confiabilidade. Os componentes internos do disco podem falhar, levando perda de dados. Essas
falhas podem estar localizadas no meio magntico, ficando restritas a alguns setores, ou
podem estar nos componentes mecnicos/eletrnicos do disco, levando corrupo ou
mesmo perda total dos dados armazenados.
Buscando solues eficientes para os problemas de desempenho e confiabilidade dos
discos rgidos, pesquisadores da Universidade de Berkeley, na Califrnia, propuseram
em 1988 a construo de discos virtuais compostos por conjuntos de discos fsicos, que
eles denominaram RAID Redundant Array of Inexpensive Disks5 [Patterson et al., 1988],
que em portugus pode ser traduzido como Conjunto Redundante de Discos Econmicos.
5
Mais recentemente alguns autores adotaram a expresso Redundant Array of Independent Disks para a
sigla RAID, buscando evitar a subjetividade da palavra Inexpensive (econmico).
34
c Carlos Maziero
: Sistemas RAID
c Carlos Maziero
bloco 0
: Sistemas RAID
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
bloco 10
bloco 11
bloco 12
bloco 13
bloco 14
bloco 15
bloco 16
bloco 17
Controladora RAID
faixa
bloco 0
bloco 1
bloco 4
bloco 5
bloco 8
bloco 9
bloco 2
bloco 3
bloco 6
bloco 7
bloco 10
bloco 11
bloco 18
bloco 19
bloco 20
bloco 21
bloco 12
bloco 13
bloco 16
bloco 17
bloco 20
bloco 21
bloco 22
bloco 23
bloco 14
bloco 15
bloco 18
bloco 19
bloco 22
bloco 23
disco lgico
bloco 0
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
bloco 10
bloco 11
bloco 12
bloco 13
Controladora RAID
bloco 14
bloco 15
bloco 0
bloco 1
bloco 10
bloco 11
bloco 20
bloco 21
bloco 16
bloco 17
bloco 2
bloco 3
bloco 12
bloco 13
bloco 22
bloco 23
bloco 18
bloco 19
bloco 4
bloco 5
bloco 14
bloco 15
bloco 20
bloco 21
bloco 6
bloco 7
bloco 16
bloco 17
bloco 22
bloco 23
bloco 8
bloco 9
bloco 18
bloco 19
disco lgico
36
c Carlos Maziero
bloco 0
: Sistemas RAID
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
Controladora RAID
disco lgico
bloco 0
bloco 1
bloco 0
bloco 1
bloco 2
bloco 3
bloco 2
bloco 3
bloco 4
bloco 5
bloco 4
bloco 5
bloco 6
bloco 7
bloco 6
bloco 7
bloco 8
bloco 9
bloco 8
bloco 9
bloco 0
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
bloco 10
bloco 11
bloco 12
bloco 13
bloco 14
bloco 15
bloco 16
bloco 17
bloco 18
bloco 19
bloco 20
bloco 21
bloco 22
bloco 23
disco lgico
Controladora RAID
byte 0
byte 3
byte 1
byte 4
byte 2
byte 5
par 0-2
par 3-5
byte 6
byte 9
byte 7
byte 10
byte 8
byte 11
par 6-8
par 9-11
byte 12
byte 15
byte 13
byte 16
byte 14
byte 17
byte 18
byte 21
byte 19
byte 22
byte 20
byte 23
byte 24
byte 27
byte 25
byte 28
byte 26
byte 29
c Carlos Maziero
bloco 0
: Sistemas RAID
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
bloco 10
bloco 11
bloco 12
bloco 13
bloco 14
bloco 15
bloco 16
bloco 17
bloco 18
bloco 19
bloco 20
bloco 21
bloco 22
bloco 23
Controladora RAID
disco lgico
bloco 0
bloco 3
bloco 1
bloco 4
bloco 2
bloco 5
par 0-2
par 3-5
bloco 6
bloco 9
bloco 7
bloco 10
bloco 8
bloco 11
par 6-8
par 9-11
bloco 12
bloco 15
bloco 13
bloco 16
bloco 14
bloco 17
bloco 18
bloco 21
bloco 19
bloco 22
bloco 20
bloco 23
bloco 0
bloco 1
bloco 2
bloco 3
bloco 4
bloco 5
bloco 6
bloco 7
bloco 8
bloco 9
bloco 10
bloco 11
bloco 12
bloco 13
bloco 14
bloco 15
bloco 16
bloco 17
Controladora RAID
faixa
bloco 0
bloco 1
bloco 4
bloco 5
bloco 8
bloco 9
par (0,4,8)
par (1,5,9)
bloco 2
bloco 3
bloco 6
bloco 7
bloco 10
bloco 11
par (2,6,10)
par (3,7,11)
bloco 18
bloco 19
bloco 20
bloco 21
bloco 12
bloco 13
bloco 16
bloco 17
bloco 20
bloco 21
bloco 22
bloco 23
bloco 14
bloco 15
bloco 18
bloco 19
bloco 22
bloco 23
bloco 24
bloco 25
bloco 26
bloco 27
bloco 24
bloco 25
bloco 28
bloco 29
bloco 32
bloco 33
bloco 28
bloco 29
bloco 26
bloco 27
bloco 30
bloco 31
bloco 34
bloco 35
bloco 30
bloco 31
bloco 32
bloco 33
...
disco lgico
bloco 36
bloco 37
bloco 40
bloco 41
bloco 44
bloco 45
bloco 38
bloco 39
bloco 42
bloco 43
bloco 46
bloco 47
disco fsico 0
disco fsico 1
disco fsico 2
disco fsico 3
c Carlos Maziero
: Interfaces de rede
que os vrios nveis de RAID no tm necessariamente uma relao hierrquica entre si,
ou seja, um sistema RAID 3 no necessariamente melhor que um sistema RAID 2. Uma
descrio mais aprofundada dos vrios nveis RAID, de suas variantes e caractersticas
pode ser encontrada em [Chen et al., 1994] e [SNIA, 2009].
Interfaces de rede
network I/O (modelo em camadas)
Dispositivos USB
Interfaces de udio
captulo separado sobre E/S de multimdia (udio e vdeo, codecs)?
Interface grfica
Mouse e teclado
falar de terminal e e/s serial?
10
Outros tpicos
Referncias
[Bovet and Cesati, 2005] Bovet, D. and Cesati, M. (2005). Understanding the Linux Kernel,
3rd edition. OReilly Media, Inc.
39
c Carlos Maziero
: REFERNCIAS
[Chen et al., 1994] Chen, P. M., Lee, E. K., Gibson, G. A., Katz, R. H., and Patterson,
D. A. (1994). RAID: high-performance, reliable secondary storage. ACM Computing
Surveys, 26:145185.
[Corbet et al., 2005] Corbet, J., Rubini, A., and Kroah-Hartman, G. (2005). Linux Device
Drivers, 3rd Edition. OReilly Media, Inc.
[Love, 2004] Love, R. (2004). Linux Kernel Development. Sams Publishing Developers
Library.
[Mauro and McDougall, 2006] Mauro, J. and McDougall, R. (2006). Solaris Internals:
Solaris 10 and OpenSolaris Kernel Architecture. Prentice-Hall PTR.
[Patterson and Henessy, 2005] Patterson, D. and Henessy, J. (2005). Organizao e Projeto
de Computadores. Campus.
[Patterson et al., 1988] Patterson, D. A., Gibson, G., and Katz, R. H. (1988). A case
for redundant arrays of inexpensive disks (RAID). In ACM SIGMOD International
Conference on Management of Data, pages 109116. ACM.
[Russinovich and Solomon, 2004] Russinovich, M. and Solomon, D. (2004). Microsoft
Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XP, and
Windows 2000. Microsoft Press.
[Silberschatz et al., 2001] Silberschatz, A., Galvin, P., and Gagne, G. (2001). Sistemas
Operacionais Conceitos e Aplicaes. Campus.
[SNIA, 2009] SNIA (2009). Common RAID Disk Data Format Specification. SNIA Storage
Networking Industry Association. Version 2.0 Revision 19.
40