menu_book Índice

Logo UFPR

Gerenciamento I/O

Logo Licenciatura

DEE355 – Sistemas Operacionais

Universidade Federal do Paraná (UFPR)

Prof. Jéfer – jefer@ufpr.br

Animação Interativa: Hardware e Software de E/S
Logo UFPR

Introdução à Entrada/Saída (E/S)

Logo Licenciatura

Objetivos da Aula

  • Compreender os princípios de hardware e software de E/S.
  • Explorar as camadas do software de E/S e o papel dos drivers.
  • Entender o funcionamento de discos e sistemas de arquivos.
  • Analisar técnicas de otimização de E/S e desafios comuns.

Tópicos Abordados

Hardware de E/S

  • Dispositivos de bloco (discos, SSDs) e de caractere (teclado, mouse).
  • Controladores de dispositivos e E/S mapeada na memória.
  • Acesso Direto à Memória (DMA) e interrupções.
  • Taxas de dados e Código de Correção de Erros (ECC).
  • Evolução da USB vs. Thunderbolt.

Software de E/S

  • E/S programada e orientada a interrupções.
  • Uso de buffers e técnicas como busy waiting/polling.
  • Exemplos práticos de operações de E/S.

Camadas do Software de E/S

  • Tratadores de interrupção e drivers de dispositivos.
  • Software independente de dispositivo.
  • Interface do espaço do usuário.

Discos

  • Hardware: pratos, cabeçotes, trilhas e setores.
  • Formatação de baixo nível e interfaces (IDE/SATA).
  • Métodos de busca e escalonamento de discos.

Sistemas de Arquivos

  • Estrutura e organização de arquivos e diretórios.
  • Camadas: sistema de arquivos, gerenciamento de espaço e dispositivos.
  • Exemplos: FAT, NTFS, ext4.

Exemplo Prático

# Monitorar operações de E/S com iostat
iostat -x 1

Recursos Adicionais

Logo UFPR

Hardware de E/S

Logo Licenciatura

Dispositivos de E/S

  • Dispositivos de Bloco: Armazenam dados em blocos de tamanho fixo (ex.: discos rígidos, SSDs).
  • Dispositivos de Caractere: Transferem dados em fluxo contínuo (ex.: teclado, mouse, impressoras).
  • Exemplos: Discos rígidos (HDDs), SSDs, impressoras, dispositivos USB.
Simulação: Direct Memory Access (DMA)

Controladores de Dispositivos

  • Atuam como intermediários entre o sistema operacional e os dispositivos.
  • Traduzem comandos do SO em operações específicas do hardware.
  • Exemplos: Controladores SATA, NVMe, USB.

E/S Mapeada na Memória

  • Utiliza endereços de memória para acessar dispositivos diretamente.
  • Vantagens: Simplicidade e eficiência no acesso.
  • Desvantagens: Pode consumir espaço de endereçamento da memória principal.

Acesso Direto à Memória (DMA)

  • Permite transferências de dados entre dispositivos e memória sem intervenção da CPU.
  • Modos de Operação:
    • Síncrona: A CPU aguarda o término da transferência (bloqueante).
    • Assíncrona: A CPU é notificada via interrupção ao final da transferência.
  • Vantagens: Reduz a carga da CPU e aumenta a eficiência do sistema.

Taxas de Dados e ECC

  • Taxas de Transferência:
    • Discos rígidos: ~100 MB/s.
    • SSDs: ~500 MB/s a 7 GB/s (dependendo da interface).
    • Placas de rede: ~1 Gbps a 100 Gbps.
    • Barramentos PCIe: Até 16 GT/s por lane (PCIe 4.0).
  • ECC (Error-Correcting Code):
    • Detecta e corrige erros em dados armazenados ou transmitidos.
    • Comum em memórias RAM ECC e dispositivos de armazenamento de alta confiabilidade.

Evolução da USB e Thunderbolt

  • USB:
    • USB 1.1: Até 12 Mbps.
    • USB 2.0: Até 480 Mbps.
    • USB 3.x: Até 5 Gbps (USB 3.2 Gen 1) ou 20 Gbps (USB 3.2 Gen 2x2).
  • Thunderbolt:
    • Thunderbolt 3: Até 40 Gbps.
    • Compatível com USB-C e suporta vídeo, dados e energia em um único cabo.
Logo UFPR

Software de E/S

Logo Licenciatura

Objetivos do Software de E/S

  • Abstrair a complexidade do hardware, oferecendo uma interface uniforme para os dispositivos.
  • Garantir eficiência e confiabilidade na transferência de dados.
  • Gerenciar operações de E/S de forma segura e otimizada.
Simulação: Operação de Buffer de E/S

E/S Programada

  • A CPU controla diretamente a transferência de dados, aguardando a conclusão de cada operação.
  • Vantagens: Simplicidade de implementação.
  • Desvantagens: Ineficiente, pois a CPU fica ocupada durante toda a operação.
  • Exemplo: Envio de dados para uma impressora em modo síncrono.

E/S Orientada a Interrupções

  • A CPU é notificada via interrupção quando o dispositivo está pronto para transferir dados.
  • Vantagens: Libera a CPU para outras tarefas durante operações de E/S.
  • Desvantagens: Overhead devido ao tratamento de interrupções.
  • Exemplo: Leitura de dados de um teclado.

E/S com DMA

  • O controlador de DMA gerencia a transferência de dados diretamente entre o dispositivo e a memória.
  • Vantagens: Reduz a carga da CPU e aumenta a eficiência do sistema.
  • Desvantagens: Complexidade adicional no gerenciamento de DMA.
  • Exemplo: Transferência de grandes volumes de dados em discos rígidos ou placas de rede.

Utilização de Buffers

  • Buffers são áreas de memória temporária usadas para armazenar dados durante operações de E/S.
  • Métodos:
    • Busy Waiting (Polling): A CPU verifica constantemente o status do dispositivo.
    • Interrupções: O dispositivo notifica a CPU quando está pronto.
  • Exemplo: Buffer de rede para armazenar pacotes recebidos antes do processamento.

Exemplo Prático

# Exemplo de uso de buffer em Python
buffer = bytearray(1024)  # Cria um buffer de 1 KB
with open('arquivo.txt', 'rb') as arquivo:
    while True:
        bytes_lidos = arquivo.readinto(buffer)
        if not bytes_lidos:
            break
        processar_dados(buffer[:bytes_lidos])
Logo UFPR

Camadas do Software de E/S

Logo Licenciatura

Visão Geral das Camadas

O software de E/S é organizado em camadas para abstrair a complexidade do hardware e fornecer uma interface uniforme aos aplicativos. As principais camadas são:

Simulação: Fluxo de Dados nas Camadas de E/S

Tratadores de Interrupção

  • Responsáveis por gerenciar as interrupções geradas pelos dispositivos de hardware.
  • Funcionamento: Quando um dispositivo precisa de atenção, ele gera uma interrupção, e o tratador executa a ação apropriada.
  • Exemplo: Tratamento de interrupções de um teclado ao pressionar uma tecla.

Drivers de Dispositivos

  • Software específico que controla um dispositivo de hardware.
  • Tipos de Dispositivos:
    • Dispositivos de Bloco: Armazenam dados em blocos de tamanho fixo (ex.: discos rígidos, SSDs).
    • Dispositivos de Caractere: Transferem dados em fluxo contínuo (ex.: teclados, impressoras).
  • Exemplo: Driver de uma placa de rede que gerencia a comunicação Ethernet.

Software de E/S Independente de Dispositivo

  • Fornece uma interface uniforme para diferentes dispositivos, abstraindo suas particularidades.
  • Funcionalidades:
    • Gerenciamento de buffers e caches.
    • Implementação de sistemas de arquivos.
    • Controle de permissões e segurança.
  • Exemplo: Sistema de arquivos ext4 no Linux, que funciona com diferentes tipos de discos.

Software de E/S do Espaço do Usuário

  • APIs e bibliotecas que permitem que aplicativos acessem dispositivos de forma segura e padronizada.
  • Exemplos:
    • Funções de leitura/escrita em arquivos (read, write).
    • Bibliotecas como libusb para acesso a dispositivos USB.
  • Vantagens: Isola o hardware do aplicativo, garantindo portabilidade e segurança.

Exemplo Prático

# Exemplo de uso de APIs de E/S no Linux
with open('/dev/sda', 'rb') as dispositivo:
    dados = dispositivo.read(1024)  # Lê 1 KB de dados do dispositivo
    print(dados)
Logo UFPR

Discos

Logo Licenciatura

Hardware do Disco

  • Componentes Principais:
    • Pratos: Superfícies magnéticas onde os dados são armazenados.
    • Cabeçotes: Leem e escrevem dados nos pratos.
    • Trilhas: Círculos concêntricos onde os dados são organizados.
    • Setores: Subdivisões das trilhas, onde os dados são armazenados em blocos.
  • Operações:
    • Leitura: Recuperação de dados dos setores.
    • Escrita: Gravação de dados nos setores.
    • Busca: Movimentação do cabeçote para a trilha correta.
Simulação: Operações de Leitura/Escrita em Disco

Formatação de Disco

  • Formatação Física (Baixo Nível):
    • Divide o disco em trilhas e setores.
    • Define a estrutura física para armazenamento de dados.
  • Formatação Lógica:
    • Cria estruturas de dados para gerenciar arquivos e diretórios.
    • Exemplos: Tabela de alocação de arquivos (FAT), inodes (ext4).

Interfaces de Disco

  • IDE (Integrated Drive Electronics):
    • Interface tradicional com cabos largos e menor velocidade.
    • Taxas de transferência: Até 133 MB/s (ATA-7).
  • SATA (Serial ATA):
    • Interface serial com cabos finos e maior velocidade.
    • Taxas de transferência: SATA III atinge até 6 Gbps.
    • Suporta hot-swapping (conexão/desconexão a quente).

Desempenho do Disco

  • Fatores que Afetam o Desempenho:
    • Tempo de Busca: Tempo para mover o cabeçote até a trilha correta.
    • Latência Rotacional: Tempo para o setor desejado girar até o cabeçote.
    • Tempo de Transferência: Tempo para ler ou escrever os dados no setor.
  • Técnicas de Escalonamento:
    • FIFO (First-In, First-Out): Atende as requisições na ordem de chegada.
    • SSTF (Shortest Seek Time First): Prioriza a requisição mais próxima do cabeçote.
    • SCAN (Elevador): Move o cabeçote em uma direção, atendendo requisições no caminho.

Exemplo Prático

# Exemplo de monitoramento de disco no Linux
iostat -x 1  # Exibe estatísticas de E/S do disco em tempo real
Logo UFPR

Sistemas de Arquivos

Logo Licenciatura

Conceito de Arquivo

  • Definição: Unidade lógica de armazenamento que contém dados e metadados.
  • Atributos:
    • Nome, tipo, tamanho, permissões, data de criação e modificação.
    • Exemplo: Um arquivo de texto (.txt) com permissões de leitura/escrita.
Simulação: Estrutura de Arquivos e Diretórios

Operações Básicas

  • Criação: Alocação de espaço e definição de metadados.
  • Leitura: Recuperação de dados do arquivo.
  • Escrita: Gravação de dados no arquivo.
  • Exclusão: Liberação de espaço e remoção de metadados.
  • Acesso:
    • Sequencial: Dados são acessados em ordem (ex.: arquivos de log).
    • Aleatório: Dados são acessados diretamente por posição (ex.: bancos de dados).

Sistemas de Arquivos

  • Definição: Estruturas de dados que organizam arquivos e diretórios em dispositivos de armazenamento.
  • Exemplos:
    • FAT (File Allocation Table): Usado em sistemas Windows antigos e dispositivos USB.
    • NTFS (New Technology File System): Usado em sistemas Windows modernos, com suporte a permissões avançadas.
    • ext4 (Fourth Extended File System): Usado em sistemas Linux, com suporte a journaling e grandes volumes de dados.

Diretórios e Atalhos

  • Estrutura Hierárquica: Organização de arquivos em pastas (diretórios) e subpastas.
  • Links:
    • Links Simbólicos: Apontam para o caminho de outro arquivo ou diretório.
    • Hard Links: Apontam diretamente para o inode de um arquivo, compartilhando o mesmo conteúdo.
  • Exemplo:
    # Criação de links no Linux
    ln -s /caminho/original /caminho/link_simbolico  # Link simbólico
    ln /caminho/original /caminho/hard_link         # Hard link

Exemplo Prático

# Exemplo de operações com arquivos no Linux
touch arquivo.txt          # Cria um arquivo vazio
echo "Hello, World!" > arquivo.txt  # Escreve no arquivo
cat arquivo.txt            # Lê o conteúdo do arquivo
rm arquivo.txt             # Exclui o arquivo
Logo UFPR

Camadas do Sistema de Arquivos

Logo Licenciatura

Visão Geral das Camadas

O sistema de arquivos é organizado em camadas para abstrair a complexidade do hardware e fornecer uma interface uniforme aos aplicativos. As principais camadas são:

Simulação: Fluxo de Dados nas Camadas do Sistema de Arquivos

Camada de Sistema de Arquivos

  • Função: Gerencia a estrutura de diretórios e arquivos.
  • Operações:
    • Criação, exclusão e busca de arquivos e diretórios.
    • Gerenciamento de permissões e atributos de arquivos.
  • Exemplo: Implementação de sistemas de arquivos como ext4, NTFS e FAT.

Camada de Gerenciamento de Espaço

  • Função: Aloca e libera espaço em disco para armazenar arquivos.
  • Técnicas de Alocação:
    • Contígua: Arquivos são armazenados em blocos sequenciais.
    • Encadeada: Arquivos são armazenados em blocos ligados por ponteiros.
    • Indexada: Um índice contém os endereços de todos os blocos do arquivo.
  • Exemplo: Alocação de blocos em sistemas de arquivos ext4 (usando inodes).

Camada de Gerenciamento de Dispositivos

  • Função: Interface com o hardware do disco, gerenciando operações de leitura e escrita.
  • Operações:
    • Leitura de dados dos setores do disco.
    • Escrita de dados nos setores do disco.
    • Gerenciamento de buffers e caches para melhorar desempenho.
  • Exemplo: Drivers de dispositivos que controlam discos rígidos e SSDs.

Exemplo Prático

# Exemplo de uso de comandos para gerenciar sistemas de arquivos no Linux
df -h                  # Exibe o uso de espaço em disco
du -sh /caminho/pasta  # Mostra o tamanho de um diretório
lsblk                  # Lista dispositivos de bloco e partições
Logo UFPR

Exemplos Práticos

Logo Licenciatura

Contexto Teórico

As operações de E/S e o gerenciamento de arquivos são fundamentais para a interação entre o sistema operacional e o hardware. Segundo Silberschatz, o sistema de arquivos abstrai o armazenamento físico, fornecendo uma interface uniforme para os usuários e aplicativos. Já Tanenbaum destaca a importância do gerenciamento de permissões e da eficiência nas operações de E/S.

Comandos de E/S no Linux

  • dd: Transferência de dados entre dispositivos.
    • Exemplo: dd if=/dev/sda of=backup.img bs=4M (cria uma imagem de backup do dispositivo /dev/sda).
    • Uso avançado: dd if=/dev/zero of=arquivo.vazio bs=1M count=100 (cria um arquivo de 100 MB preenchido com zeros).
  • iotop: Monitoramento das operações de E/S em tempo real.
    • Exemplo: sudo iotop (mostra processos que estão realizando operações de E/S).
    • Dica: Use iotop -o para exibir apenas processos ativos em E/S.

Comandos de Sistema de Arquivos

  • ls, cp, mv, rm: Operações básicas de gerenciamento de arquivos.
    • Exemplo: ls -l (lista arquivos com detalhes de permissões).
    • Exemplo: cp -r pasta_origem pasta_destino (copia recursivamente diretórios).
  • chmod e chown: Controle de permissões e propriedade.
    • Exemplo: chmod 755 arquivo.txt (define permissões como rwxr-xr-x).
    • Exemplo: chown usuario:grupo arquivo.txt (altera o dono e o grupo do arquivo).

Casos Reais

  • Problema: Um arquivo corrompido precisa ser recuperado.
    • Solução: Use dd para criar uma imagem do disco e tente recuperar os dados com ferramentas como fsck.
  • Problema: Um processo está consumindo muitos recursos de E/S.
    • Solução: Use iotop para identificar o processo e tomar ações corretivas.

Referências Adicionais

Para mais detalhes sobre sistemas de arquivos e operações de E/S, consulte o material do professor Maziero:

Perguntas para Reflexão

  • Qual a diferença entre chmod 755 e chmod 644? Quando cada um deve ser usado?
  • Por que o comando dd é considerado poderoso, mas também perigoso?
  • Como o sistema operacional gerencia conflitos de E/S quando múltiplos processos tentam acessar o mesmo dispositivo?
Logo UFPR

Desafios & Boas Práticas

Logo Licenciatura

Desafios

  • Conflitos de acesso simultâneo a dispositivos:
    • Exemplo: Dois processos tentando escrever no mesmo arquivo ao mesmo tempo.
    • Solução: Uso de locks ou semáforos para controle de concorrência.
  • Gerenciamento de buffers e caches:
    • Exemplo: Buffer overflow em operações de E/S de alta velocidade.
    • Solução: Uso de algoritmos de substituição de cache, como LRU (Least Recently Used).
  • Manter desempenho em operações de E/S de alto volume:
    • Exemplo: Operações de E/S em bancos de dados com milhares de transações por segundo.
    • Solução: Uso de técnicas como RAID e SSDs para melhorar a taxa de transferência.
  • Desafios modernos:
    • E/S em sistemas distribuídos (ex.: NFS, S3).
    • Virtualização de dispositivos de E/S em máquinas virtuais e contêineres.

Boas Práticas

  • Utilização de DMA (Direct Memory Access):
    • Reduz a carga da CPU em transferências de dados intensivas.
    • Exemplo: Transferência de dados entre disco e memória sem intervenção da CPU.
  • Escalonamento eficiente de requisições de disco:
    • Algoritmos como SCAN e C-SCAN para minimizar o tempo de busca.
    • Exemplo: Uso do deadline scheduler no Linux.
  • Monitoramento contínuo do desempenho e integridade dos dispositivos:
    • Ferramentas como iostat e smartctl para monitorar discos.
    • Exemplo: Detecção precoce de falhas em discos rígidos com SMART (Self-Monitoring, Analysis, and Reporting Technology).

Referências Adicionais

Para mais detalhes sobre desafios e boas práticas em E/S, consulte:

Logo UFPR

Conclusão

Logo Licenciatura

Resumo:

  • Hardware e software de E/S são fundamentais para a interação entre o sistema operacional e os dispositivos, garantindo eficiência e confiabilidade.
  • Sistemas de arquivos fornecem a abstração necessária para o armazenamento e gerenciamento de dados, escondendo a complexidade do hardware.
  • Desafios como concorrência, gerenciamento de buffers e desempenho exigem técnicas avançadas, como DMA, escalonamento de disco e monitoramento contínuo.

Próximos Passos:

  • Explorar técnicas avançadas de gerenciamento de E/S, como RAID e sistemas de arquivos distribuídos (ex.: NFS, HDFS).
  • Estudar sistemas de E/S em ambientes virtualizados e em nuvem.
  • Investigar ferramentas de monitoramento e otimização de E/S, como iostat, iotop e fio.

Para Reflexão

  • Como os conceitos de E/S e sistemas de arquivos se aplicam em ambientes de grande escala, como data centers e nuvens?
  • Quais são os trade-offs entre desempenho e confiabilidade em operações de E/S?

Referências Adicionais

Logo UFPR

Quiz de Múltipla Escolha

Logo Licenciatura

Responda as perguntas:

Logo UFPR

Quiz Descritivo

Logo Licenciatura

Responda as seguintes questões:

  1. Explique as diferenças entre transferência síncrona e assíncrona na DMA.
  2. Descreva como o código de correção de erro (ECC) atua em dispositivos de armazenamento.
  3. Quais são as principais vantagens e desvantagens do uso de buffers em E/S?
  4. Como os drivers diferenciam dispositivos de blocos e de caracteres?
  5. Explique as diferenças entre as interfaces IDE e SATA na operação de discos.
Logo UFPR

Referências

Logo Licenciatura

Livros:

  • Tanenbaum, A. S. – Sistemas Operacionais Modernos

Materiais Online:

  • Maziero, C. – Slides e vídeos sobre Sistemas de Arquivos (consulte aqui).

Ferramentas: Comandos Linux para E/S e gerenciamento de discos.