LRM Prof. Mantovani ← Aulas da disciplina
Semana 11 · Aula 11 de 14

Sistemas de arquivos e armazenamento

Sistemas de arquivos e métodos de alocação, as diferenças entre HDD e SSD e os algoritmos de escalonamento de disco — com simulador de disco.

📚 Sistemas Operacionais🧪 1 simulador(es)📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Descrever a organização de um sistema de arquivos e seus metadados.

2

Comparar alocação contígua, encadeada e indexada (i-node).

3

Contrastar HDD e SSD quanto à física e ao custo de acesso.

4

Aplicar e comparar algoritmos de escalonamento de disco (FCFS, SSTF, SCAN).

1 · Motivação

Do disco cru ao arquivo nomeado

Um disco enxerga apenas blocos numerados — milhões de gavetas idênticas. Você, porém, pensa em "relatorio.pdf", em pastas, em permissões, em datas. Quem faz a ponte entre o bloco bruto e o arquivo nomeado é o sistema de arquivos.

Esta aula desce ao armazenamento persistente: como os bytes de um arquivo são espalhados pelos blocos, como o SO os reencontra, e por que a física do meio (prato magnético girando ou flash sem partes móveis) muda completamente a estratégia de acesso.

2 · Mapa

O que veremos nesta aula

Arquivos e
diretórios
Métodos de
alocação
HDD × SSDEscalonamento
de disco

Da abstração lógica (arquivo) à mecânica do braço de leitura, terminando nos algoritmos que ordenam os acessos para reduzir o movimento do cabeçote.

3 · Conceito

O que é um sistema de arquivos

Sistema de arquivos. Estrutura que organiza dados em arquivos e diretórios sobre um dispositivo de blocos, mantendo metadados (tamanho, datas, permissões, dono) e o mapa de quais blocos pertencem a cada arquivo.

Ele resolve três perguntas: como nomear (diretórios), onde guardar os bytes (alocação) e como controlar o espaço livre (mapa de bits ou lista de livres). Tudo isso precisa sobreviver a desligamentos — daí a importância da consistência.

4 · Explicação

Métodos de alocação de blocos

AlocaçãoIdeiaVantagemPonto fraco
ContíguaBlocos sequenciaisAcesso sequencial e aleatório rápidosFragmentação externa; crescer é difícil
EncadeadaCada bloco aponta o próximoCresce fácil; sem fragmentação externaAcesso aleatório ruim; um ponteiro perdido quebra o arquivo
Indexada (i-node)Bloco de índices com os endereçosBom acesso aleatórioOverhead do bloco de índice
💡
O i-node do Unix guarda metadados e ponteiros: alguns diretos (para blocos de dados) e outros indiretos (apontam blocos que só contêm mais ponteiros), permitindo arquivos pequenos e enormes com eficiência.
5 · Exemplo

O i-node e os ponteiros indiretos

Um i-node clássico tem, por exemplo, 12 ponteiros diretos e 3 níveis de indireção:

Tipo de ponteiroAponta paraAlcance (com bloco de 4 KB)
12 diretosBlocos de dados12 × 4 KB = 48 KB
1 indireto simplesBloco de 1024 ponteiros1024 × 4 KB = 4 MB
1 indireto duploPonteiros de ponteiros~4 GB
1 indireto triploTrês níveis~4 TB

Arquivos pequenos usam só os ponteiros diretos (acesso rápido); arquivos gigantes escalam pelos níveis indiretos, pagando o custo só quando necessário.

6 · Interativo

Passo a passo: abrindo /docs/nota.txt

Passo 1
O SO parte do i-node do diretório raiz e lê seus blocos de dados (lista de nomes → i-nodes).
Passo 2
Encontra "docs" na raiz, obtém o número do i-node de docs e o carrega.
Passo 3
Lê os blocos de docs e localiza a entrada "nota.txt", obtendo o i-node do arquivo.
Passo 4
Verifica permissões no i-node; se ok, cria uma entrada na tabela de arquivos abertos.
Passo 5
Retorna um descritor de arquivo; leituras seguintes usam os ponteiros do i-node para achar os blocos.
7 · Conceito

HDD × SSD: duas físicas

HDD. Disco de pratos magnéticos girando, com um braço que move uma cabeça de leitura/escrita. O acesso exige seek (mover o braço) e latência rotacional (esperar o setor passar).
SSD. Memória flash sem partes móveis; acesso a qualquer bloco em tempo aproximadamente uniforme, mas com gravação por páginas/apagamento por blocos e desgaste.
8 · Explicação

Por que o seek domina no HDD

No HDD, ler um bloco tem três custos: o seek (mover o braço até a trilha certa, ~milissegundos), a latência rotacional (esperar o setor girar até a cabeça, metade de uma rotação em média) e a transferência. O seek é mecânico e domina — é o motivo de o acesso sequencial ser muito mais rápido que o aleatório: sequencialmente, o braço quase não se move.

No SSD não há braço nem rotação: o acesso aleatório custa quase o mesmo que o sequencial. Por isso o ganho de reordenar acessos por posição (escalonamento de disco) é grande no HDD e quase irrelevante no SSD. Em compensação, o SSD tem desgaste: cada célula suporta um número finito de gravações, exigindo wear leveling.

9 · Analogia

O elevador do prédio

🛗 Analogia
O cabeçote do HDD é como o elevador de um prédio cheio de chamados. Atender na ordem em que apertaram os botões (FCFS) faz o elevador subir e descer feito louco. O SCAN é o algoritmo do elevador de verdade: sobe atendendo todos os andares pedidos, chega ao topo, inverte e desce atendendo o resto. Menos vai-e-vem, menos desgaste, menos tempo total.
10 · Comparação

Algoritmos de escalonamento de disco

AlgoritmoCritérioCaracterística
FCFSOrdem de chegadaJusto, mas muito movimento
SSTFTrilha mais próxima primeiroReduz seek; pode causar inanição de trilhas distantes
SCAN (elevador)Varre numa direção e voltaEquilibrado; sem inanição
C-SCANVarre só numa direção (volta ao início)Tempo de espera mais uniforme
11 · Fluxo

SCAN em ação

Cabeçote
em 53
Sobe atendendo
65, 67, 98...
Chega ao
extremo
Inverte e
desce 37, 14
🔑
O objetivo de todos esses algoritmos é minimizar o movimento total do cabeçote (soma das distâncias de seek). Como o seek domina o tempo de acesso no HDD, reduzi-lo é reduzir diretamente a latência média.
12 · Aprofundamento

Journaling e consistência

Journaling. Antes de alterar as estruturas do sistema de arquivos, o SO registra a operação pretendida em um journal (diário). Se houver queda de energia no meio, ao reiniciar o SO refaz ou desfaz as operações incompletas, restaurando a consistência.

Sem journaling, uma queda durante a escrita de um i-node ou do mapa de blocos poderia deixar o sistema de arquivos corrompido (blocos perdidos, dois arquivos apontando o mesmo bloco). Sistemas como ext4, NTFS e XFS usam journaling. Já flash e SSD frequentemente empregam sistemas de arquivos pensados para o desgaste (F2FS) ou camadas de tradução (FTL) que escondem o apagamento por blocos.

13 · Interativo

Verifique seu entendimento

Por que o escalonamento de disco por posição importa muito menos em um SSD do que em um HDD?

No HDD, reordenar acessos reduz o movimento mecânico do braço (seek), o custo dominante. No SSD, sem partes móveis, qualquer bloco é acessado em tempo similar, então ordenar por posição quase não ajuda.
14 · Caso prático

Armazenamento em embarcados

Em sistemas embarcados, o armazenamento costuma ser flash (NAND ou NOR) ou cartões eMMC/SD. Microcontroladores executam código diretamente da flash interna (execute-in-place), e dados de configuração ficam em pequenas EEPROMs ou em setores de flash.

Sistemas de arquivos para esse mundo precisam lidar com o desgaste e com quedas de energia: FAT (simples, universal), LittleFS e SPIFFS (projetados para flash, com wear leveling e tolerância a falhas) são comuns em IoT. O escalonamento de disco clássico (SCAN) é irrelevante aqui — não há braço para mover.

15 · Erros comuns

Confusões frequentes

⚠️
Erros comuns nesta aula:
• Confundir fragmentação externa da alocação contígua com a fragmentação de arquivo que desfragmentadores resolvem.
• Achar que SSTF é sempre o melhor — ele pode causar inanição de trilhas distantes.
• Aplicar SCAN/SSTF a SSDs achando que melhora — o ganho é desprezível sem seek.
• Esquecer a latência rotacional, contabilizando só o seek no HDD.
16 · Dicas

Como calcular movimento de cabeçote

Para somar o deslocamento total: liste a posição inicial e a fila de trilhas. Em FCFS, some as distâncias na ordem dada. Em SSTF, vá sempre à trilha mais próxima da posição atual. Em SCAN, escolha uma direção, atenda tudo até o extremo, inverta e atenda o resto. Some sempre valores absolutos das diferenças. Confira no simulador de disco — ele desenha o caminho do cabeçote.
17 · Interativo

Revele a resposta

Para a fila 98,183,37,122,14,124,65,67 com cabeçote em 53, qual o movimento total no SSTF?
Partindo de 53, o SSTF vai sempre à mais próxima: 53→65→67→37→14, depois sobe 14→98→122→124→183. As distâncias: 12+2+30+23+84+24+2+59 = 236 trilhas. (No FCFS, na ordem original, o total seria 640 trilhas — o SSTF reduz drasticamente o seek, mas teria adiado as trilhas 14 e 183 se novas requisições próximas chegassem, evidenciando o risco de inanição.)
18 · Flashcards

Revisão relâmpago

i-nodevirar
Estrutura com metadados e ponteiros (diretos e indiretos) para os blocos do arquivo.
Seekvirar
Tempo de mover o braço do HDD até a trilha certa; custo dominante do acesso.
SSTFvirar
Atende a trilha mais próxima primeiro; reduz seek, mas pode causar inanição.
SCANvirar
Algoritmo do elevador: varre numa direção, inverte e varre de volta.
Journalingvirar
Registrar operações antes de aplicá-las, para recuperar a consistência após quedas.
19 · Conexões

Para onde isso leva

O armazenamento conecta-se a várias frentes:

  • O swap da memória virtual (Aula 9) vive no disco e sofre os mesmos custos de seek.
  • A alocação de blocos retoma a fragmentação vista na memória (Aula 8).
  • O acesso ao disco usa DMA e buffering da E/S (Aula 10).
  • Flash com wear leveling é típica de embarcados (Aula 12).
20 · Síntese

Resumo da aula

🔑
O sistema de arquivos transforma blocos numerados em arquivos nomeados, guardando metadados e o mapa de blocos. A alocação pode ser contígua, encadeada ou indexada (i-node, com ponteiros diretos e indiretos). No HDD o seek domina, premiando o acesso sequencial e o escalonamento (SSTF, SCAN); no SSD o acesso é uniforme e esses algoritmos pouco importam. Journaling protege a consistência; embarcados usam sistemas de arquivos pensados para flash.
Mão na massa · colaborativo

Atividade em grupo · Movendo o cabeçote

Em trios, comparem algoritmos de disco na mesma fila de requisições.

⏱️ 25 min👥 trios🧩 laboratório

Roteiro

  1. Fila de trilhas: 98,183,37,122,14,124,65,67; cabeçote inicial em 53.
  2. Calculem o deslocamento total para FCFS, SSTF e SCAN à mão.
  3. Confiram no simulador de escalonamento de disco.
  4. Discutam: por que esses algoritmos importam menos em um SSD?
FCFS/SSTFcalcula os dois primeiros
SCANaplica o elevador
Conferentevalida no simulador
📤 Entrega: Deslocamento total por algoritmo + comentário sobre HDD vs. SSD.
Teste seu conhecimento

Mini-quiz · Aula 11

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 Resumo — leve isto para a prova

  • Sistemas de arquivos organizam dados, metadados e o mapa de blocos.
  • Alocação contígua, encadeada e indexada (i-node) têm trade-offs distintos.
  • No HDD o seek e a latência rotacional dominam; no SSD o acesso é quase uniforme.
  • SSTF e SCAN reduzem o movimento do cabeçote em HDDs; pouco importam em SSDs.
  • Journaling protege a consistência; embarcados usam sistemas de arquivos para flash.