Entrada e Saída

Como o computador se comunica com o mundo

Organização de Computadores

O que são dispositivos de E/S?

Dispositivos de Entrada e Saída (E/S ou I/O) são os periféricos que conectam o computador ao mundo externo: pessoas, outros equipamentos e redes.

A CPU e a memória sozinhas seriam inúteis: sem entrada não há o que processar, sem saída não há como ver o resultado. A E/S fecha o ciclo entrada → processamento → saída.

Classificação dos periféricos

Entrada

Levam dados para dentro.

Teclado, mouse, scanner, microfone, câmera, sensores, leitor biométrico.

Saída

Levam dados para fora.

Monitor, impressora, alto-falante, projetor.

Entrada e Saída

Fazem os dois.

Tela sensível ao toque, placa de rede, HD/SSD, headset, pendrive.

Como a CPU "enxerga" um periférico

A CPU não fala diretamente com o periférico. Entre eles há o controlador de E/S (placa/chip) que traduz comandos e adapta velocidades.

CPU
Barramento
Controlador
de E/S
Periférico

O controlador expõe registradores (de dados, de status e de controle). A CPU lê/escreve nesses registradores para comandar o dispositivo e saber se ele está pronto.

Como a CPU endereça a E/S

E/S mapeada em memória

Os registradores do dispositivo ocupam endereços do mesmo espaço da memória. A CPU usa as mesmas instruções de load/store. (Usado por ARM, RISC-V.)

E/S isolada (por portas)

Há um espaço de endereços separado e instruções específicas (IN/OUT). (Usado pelo x86.)

Três formas de gerenciar a E/S

TécnicaComo funcionaCusto para a CPU
Programada (Polling)A CPU fica perguntando repetidamente se o dispositivo está pronto.Alto — desperdiça tempo em espera ativa
Por InterrupçãoO dispositivo avisa a CPU quando está pronto; a CPU faz outra coisa enquanto isso.Médio — só atende quando necessário
DMA (Acesso Direto à Memória)Um controlador transfere dados direto entre o dispositivo e a memória, sem passar pela CPU.Baixo — a CPU só inicia e é avisada no fim

Interrupções em detalhe

  • O dispositivo envia um sinal de interrupção.
  • A CPU termina a instrução atual e salva seu estado.
  • Executa a rotina de tratamento (ISR) correspondente.
  • Restaura o estado e continua de onde parou.
// CPU trabalhando...
[INT do teclado]
  salva contexto
  trata tecla
  restaura contexto
// volta ao trabalho

Interrupções permitem que o computador seja reativo: ele não precisa ficar checando o teclado o tempo todo — só age quando uma tecla é pressionada.

DMA: liberando a CPU

No DMA, um controlador dedicado move grandes blocos de dados diretamente entre o periférico e a memória, deixando a CPU livre para processar.

Disco/Rede
Controlador
DMA
Memória

Essencial para transferências pesadas (HD/SSD, placa de rede, placa de som). Sem DMA, copiar um arquivo grande consumiria a CPU inteira.

Barramentos e portas de conexão

InterfaceUso típico
USBPadrão universal: teclado, mouse, pendrive, impressora
PCI Express (PCIe)Placas internas de alta velocidade: GPU, SSD NVMe
SATADiscos rígidos e SSDs convencionais
HDMI / DisplayPortVídeo e áudio para monitores e TVs
EthernetConexão de rede com fio
Bluetooth / Wi-FiConexões sem fio

Drivers: o software da E/S

Um driver é o programa que ensina o sistema operacional a conversar com um dispositivo específico.

Cada dispositivo tem suas particularidades. O driver esconde esses detalhes e oferece uma interface padronizada ao SO. É por isso que, ao conectar uma impressora nova, às vezes é preciso instalar o driver correspondente.

A velocidade dos periféricos varia enormemente: um teclado envia poucos bytes por segundo; uma GPU ou SSD movimenta gigabytes por segundo. Buffers e DMA ajudam a casar esses ritmos diferentes.

Aprofundamento: o mecanismo de interrupções

Interrupções não são todas iguais. Elas se classificam pela origem:

TipoOrigemExemplo
Interrupção de hardwareDispositivo externo (assíncrona)Tecla pressionada, pacote de rede
Exceção / trapA própria instrução (síncrona)Divisão por zero, page fault
Interrupção de softwareInstrução propositalChamada de sistema (syscall)

Aprofundamento: modos de DMA e coerência

O controlador de DMA assume o barramento (torna-se bus master) para mover dados. Ele pode fazê-lo de duas formas:

Roubo de ciclo (cycle stealing)

O DMA transfere uma palavra por vez, "roubando" ciclos de barramento entre os acessos da CPU. A CPU mal percebe, mas a transferência é mais lenta.

Modo rajada (burst)

O DMA toma o barramento e transfere um bloco inteiro de uma vez. Muito mais rápido, mas a CPU fica sem acesso ao barramento durante a rajada.

Problema de coerência: como o DMA escreve direto na RAM, a cache da CPU pode ficar com cópias desatualizadas. O hardware (snooping de cache) ou o SO precisa garantir a coerência entre o que está na memória e o que está na cache.

Aprofundamento: anatomia de um barramento

Aprofundamento: PCI Express por dentro

O PCIe é a principal interconexão interna moderna. Ele agrupa lanes (pares seriais full-duplex); um slot pode ter x1, x4, x8 ou x16 lanes, e a banda dobra a cada geração:

GeraçãoBanda por lane (cada sentido)x16 (aprox.)
PCIe 3.0~1 GB/s~16 GB/s
PCIe 4.0~2 GB/s~32 GB/s
PCIe 5.0~4 GB/s~64 GB/s

É por isso que uma GPU usa um slot x16 e um SSD NVMe (que fala PCIe direto, sem o intermediário SATA) é muito mais rápido que um SSD SATA limitado a ~0,6 GB/s.

Aprofundamento: medindo o desempenho de E/S

Três métricas descrevem qualquer subsistema de E/S, e elas nem sempre andam juntas:

Latência

Tempo de resposta de uma operação individual (ms, µs). Crítica para bancos de dados e jogos.

Vazão (throughput)

Volume de dados por segundo (MB/s, GB/s). Crítica para vídeo e cópia de arquivos grandes.

IOPS

Operações de E/S por segundo. Crítica para muitas leituras/escritas pequenas e aleatórias.

Há um enorme abismo de velocidade entre CPU (ns), RAM (dezenas de ns), SSD (µs) e HD/rede (ms). Buffers, DMA, filas de comandos e paralelismo existem justamente para esconder essas diferenças.

Aprofundamento: RAID — desempenho e redundância

O RAID combina vários discos em um único volume lógico para ganhar velocidade, confiabilidade ou ambos:

NívelTécnicaResultado
RAID 0Striping (divide dados entre discos)Rápido, mas sem redundância
RAID 1Mirroring (espelha os dados)Tolera falha de 1 disco; metade da capacidade
RAID 5Striping + paridade distribuídaTolera 1 falha com bom uso de espaço
RAID 6Dupla paridadeTolera 2 falhas simultâneas
RAID 10Espelhamento + stripingDesempenho e redundância (mais caro)

RAID protege contra falha de hardware, não substitui backup: se um arquivo é apagado ou corrompido, ele é apagado/corrompido em todos os discos do conjunto.

Glossário do tópico

PeriféricoDispositivo de E/S conectado ao computador.
Controlador de E/SIntermediário entre CPU e periférico.
PollingCPU verifica repetidamente o estado do dispositivo.
InterrupçãoSinal que avisa a CPU de um evento.
DMATransferência direta dispositivo↔memória sem a CPU.
DriverSoftware que controla um dispositivo.
IRQ / VetorNúmero da interrupção que indexa a rotina de tratamento (ISR).
Bus masterDispositivo que assume o barramento (ex.: DMA) para transferir dados.
PCIe / laneInterconexão serial; banda dobra a cada geração e por nº de lanes.
IOPSOperações de E/S por segundo; mede E/S aleatória.
RAIDConjunto de discos para desempenho e/ou redundância.

Exercícios resolvidos

1. Compare polling, interrupção e DMA quanto ao uso da CPU ao transferir dados.

Ver solução
Polling: a CPU fica em espera ativa checando o dispositivo — desperdício máximo. Interrupção: a CPU faz outra coisa e só é avisada quando o dispositivo está pronto — custo médio. DMA: um controlador move o bloco direto para a memória; a CPU só inicia e é avisada no fim — custo mínimo, ideal para transferências grandes.

2. Qual a banda aproximada de um enlace PCIe 4.0 x4?

Ver solução
PCIe 4.0 fornece ~2 GB/s por lane (cada sentido). Com 4 lanes: 4 × 2 = ~8 GB/s. É a faixa típica de um SSD NVMe Gen4.

3. Quanto tempo leva para transferir 2 GB a uma taxa de 500 MB/s?

Ver solução
Tempo = volume / taxa = 2000 MB / 500 MB/s = 4 segundos (usando 1 GB = 1000 MB).

4. Um RAID 5 usa 4 discos de 2 TB. Qual a capacidade útil e quantas falhas ele tolera?

Ver solução
O RAID 5 reserva o equivalente a 1 disco para paridade: capacidade útil = (4 − 1) × 2 TB = 6 TB. Tolera a falha de 1 disco sem perda de dados.

Resumindo

Os dispositivos de E/S conectam o computador ao mundo. A CPU os acessa por controladores, usando polling, interrupções ou DMA, através de barramentos e portas como USB e PCIe — e os drivers fazem o software falar com cada hardware.

Voltar aos Tópicos