1 of 23

MC504 Sistemas Operacionais

Prof. Dr. Eng. Isaías Bittencourt Felzmann

isaias@ic.unicamp.br

​

Campinas, 2s/2026

Entrada e Saída

1/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

2 of 23

Copyright Note

The following set of slides are copyright Silberschatz, Galvin and Gagne, 2018. Modifications were made for their use in conjunction with MC504. The original material is available at os-book.com .

​

Os direitos autorais do conjunto de slides a seguir pertencem a Silberschatz, Galvin and Gagne, 2018. Foram feitas modificações para seu uso em MC504. O material original está disponível em os-book.com .

​

Este material foi elaborado com apoio de ferramentas de IA generativa como recurso auxiliar. O conteúdo foi revisado, validado e é de responsabilidade do docente.

2/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

3 of 23

Visão geral

  • O gerenciamento de E/S é um componente importante do design e operação do sistema operacional
    • Aspecto importante da operação de computadores
    • Os dispositivos de E/S variam muito
    • Há diversos métodos para controlá-los
    • É preciso gerir o desempenho
    • Novos tipos de dispositivos aparecem com frequência
  • Portas, barramentos e controladores de dispositivos conectam-se a vários dispositivos
  • Drivers de dispositivo encapsulam detalhes do dispositivo
    • Expõem uma interface uniforme de acesso ao dispositivo ao subsistema de E/S

​

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

3/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

4 of 23

Hardware de E/S

  • Incrível variedade de dispositivos de I/O
    • Armazenamento
    • Transmissão
    • Interface humana
  • Conceitos comuns – sinais de dispositivos de E/S se conectam ao computador
    • Porta – ponto de conexão para o dispositivo
    • Barramento - em daisy chain ou acesso direto compartilhado
      • Barramento PCI comum em PCs e servidores, PCI Express (PCIe)
      • Barramento de expansão conecta dispositivos relativamente lentos

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

4/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

5 of 23

Hardware de E/S (Continuação)

    • Controlador (host adapter) – eletrônicos que operam porta, barramento, dispositivo
      • Às vezes integrado
      • Às vezes, placa de circuito separada (host adapter)
      • Contém processador, microcódigo, memória privada, controlador de barramento, etc.

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

5/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

6 of 23

Uma estrutura típica de barramento de PC

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

6/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

7 of 23

Hardware de E/S (Continuação)

  • Dispositivos possuem endereços, usados por
    • Instruções de E/S Direta (Port-mapped, PMIO)
    • E/S mapeada em memória (Memory-mapped, MMIO)
      • Dados de dispositivos e registradores de comandos mapeados para o espaço de endereçamento do processador
      • Especialmente para grandes espaços de endereçamento (gráficos)

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

7/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

8 of 23

Polling (E/S programada)

  • Para cada byte de E/S
    1. Leia o bit ocupado do registrador de status até 0
    2. O host define bits de leitura ou gravação e, se gravar, copiam os dados para o registrador de saída de dados
    3. Host define bit de comando pronto
    4. Controlador define o bit ocupado, executa transferência
    5. O controlador limpa o bit ocupado, o bit de erro, o bit pronto para comando quando a transferência é concluída
  • O Passo 1 é o ciclo de espera ocupada para esperar o I/O do dispositivo
    • Razoável se o dispositivo for rápido
    • Mas ineficiente se o dispositivo for lento
    • A CPU muda para outras tarefas?
      • Mas se perder um ciclo, dados sobrescritos / perdidos

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

8/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

9 of 23

Interrupções

  • Polling pode acontecer em 3 ciclos de instrução
    • Ler status, extrair o bit de status, desviar se não zero
    • Como ser mais eficiente se for diferente de zero raramente?
  • Linha de interrupção da CPU acionada pelo dispositivo de E/S
    • Verificado por processador após cada instrução
  • O handler de interrupções recebe interrupções
    • Mascarável para ignorar ou atrasar algumas interrupções
  • Vetor de interrupção para despachar handler correto
    • Troca de contexto no início e no fim
    • Com base na prioridade
    • Alguns não mascaráveis
    • Encadeamento de interrupções se mais de um dispositivo estiver no mesmo número de interrupção

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

9/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

10 of 23

Ciclo de E/S com Interrupções

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

10/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

11 of 23

Acesso Direto à Memória

  • Usado para evitar E/S programada (um byte por vez) para grande movimento de dados
  • Requer controlador DMA
  • Contorna a CPU para transferir dados diretamente entre o dispositivo de E/S e a memória
  • O sistema operacional grava bloco de comandos DMA na memória
    • Endereços de origem e destino
    • Modo leitura ou escrita
    • Contagem de bytes
    • Grava a localização do bloco de comando no controlador DMA
    • Controlador DMA assume o barramento – pega o barramento da CPU
      • Interfere na execução da CPU, mas ainda muito mais eficiente
    • Quando terminado, interrompe até a conclusão do sinal

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

11/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

12 of 23

Etapas para Realizar a Transferência DMA

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

12/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

13 of 23

Interface de E/S de Aplicação

  • Chamadas de sistema de E/S encapsulam comportamentos de dispositivos em classes genéricas
  • A camada de driver de dispositivo esconde do kernel as diferenças entre controladores de E/S
  • Novos dispositivos que comunicam protocolos já implementados não precisam de trabalho extra
  • Cada sistema operacional possui suas próprias estruturas de subsistemas de E/S e frameworks de drivers de dispositivo
  • Os dispositivos variam em muitas dimensões
    • Acesso de caracteres ou bloco
    • Acesso sequencial ou aleatório
    • Síncrono ou assíncrono (ou ambos)
    • Compartilhável ou dedicado
    • Velocidade de operação
    • Leitura-Escrita, Somente Leitura ou Somente Escrita

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

13/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

14 of 23

Características dos dispositivos de E/S (cont.)

  • Sutilezas dos dispositivos tratados pelos drivers de dispositivo
  • De modo geral, dispositivos de E/S podem ser agrupados pelo sistema operacional em
    • E/S em Bloco
    • E/S em caracteres (stream)
    • Acesso a arquivos mapeados por memória
    • Soquetes de rede
  • Para manipulação direta das características específicas do dispositivo de E/S
    • Chamada ioctl() do Unix para informações para os registradores de controle e dados do dispositivo

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

14/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

15 of 23

Entrada/Saída Não Bloqueante e Assíncrona

  • Bloqueante - processo suspenso até concluir a I/O
    • Fácil de usar e entender
    • Insuficiente para algumas necessidades
  • Não bloqueante - retorna da chamada assim que possível
    • Interface de usuário, cópia de dados (E/S em buffer)
    • Implementado via multithreading
    • Retorna rapidamente com a contagem de bytes lidos ou escritos
  • Assíncrono - processo roda enquanto a E/S é executada
    • Difícil de usar
    • Subsistema de E/S sinaliza o processo quando a operação é concluída

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

15/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

16 of 23

Dois métodos de E/S

Síncrono

Assíncrono

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

16/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

17 of 23

Subsistema de E/S do Kernel

  • Escalonamento
    • Alguns E/S precisam de ordenação através de fila do dispositivo
    • Alguns sistemas operacionais tentam equidade (fairness)
    • Alguns implementam Qualidade de Serviço
  • Buffering - armazenar dados na memória durante a transferência entre dispositivos
    • Para lidar com o desajuste de velocidade do dispositivo
    • Para lidar com o desajuste de tamanho de transferência do dispositivo
    • Para manter a semântica de cópia
    • Duplo buffering – duas cópias dos dados
      • Kernel e usuário
      • Tamanhos variados
      • Cheio / sendo processado e não cheio / sendo usado

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

17/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

18 of 23

Subsistema de E/S do Kernel

  • Cache - dispositivo mais rápido que mantém cópias dos dados
    • Sempre só uma cópia
    • Objetivo é desempenho
    • Às vezes combinado com buffering
  • Spooling - segurar a saída de um dispositivo
    • Se o dispositivo pode atender apenas uma solicitação por vez
    • por exemplo, Impressão
  • Reserva de dispositivo - oferece acesso exclusivo a um dispositivo
    • Chamadas de sistema para alocação e desalocação
    • Cuidado com o deadlock

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

18/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

19 of 23

Tratamento de Erros

  • O sistema operacional pode se recuperar de leitura de disco, dispositivos indisponíveis, falhas de gravação transitórias
    • Retente uma leitura ou escrita, por exemplo
    • Alguns sistemas mais avançados – Solaris FMA, AIX
      • Rastreia frequências de erro, para de usar o dispositivo com frequência crescente de erros retentáveis
  • A maioria retorna um número de erro ou código quando a solicitação de E/S falha
  • Logs de erro do sistema armazenam relatórios de problemas

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

19/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

20 of 23

Proteção de I/O

  • O processo do usuário pode, acidentalmente ou intencionalmente, tentar interromper a operação normal por meio de instruções ilegais de E/S
    • Todas as instruções de E/S definidas como privilegiadas
    • A E/S deve ser realizada via chamadas de sistema
      • As localizações de memória mapeadas por memória e portas de E/S também devem ser protegidas

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

20/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

21 of 23

Uso de uma chamada de sistema para realizar E/S

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

21/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

22 of 23

Ciclo de Vida de uma Solicitação de E/S

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

22/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

23 of 23

Bibliografia

Capítulo 5.

Capítulo 12.

23/23

rev. 2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais