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

Sistemas de arquivos

A abstração de armazenamento persistente: arquivos, diretórios e atributos, métodos de alocação de blocos e gerência do espaço livre.

📚 Sistemas Operacionais📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Definir arquivo, seus atributos e operações.

2

Descrever a organização em diretórios e os tipos de caminho.

3

Comparar métodos de alocação e de gerência de espaço livre.

1 · Motivação

Onde ficam os dados quando o computador desliga

A RAM se apaga ao desligar. Então como seus arquivos, fotos e programas continuam lá no dia seguinte? O sistema de arquivos é a camada do SO que organiza o armazenamento persistente.

Ele transforma um disco bruto — apenas uma sequência enorme de blocos numerados — em algo utilizável: arquivos com nomes, pastas, permissões e datas.

2 · Mapa

As três grandes questões

Arquivos e
atributos
DiretóriosAlocação de
blocos
Espaço
livre

Veremos o que é um arquivo, como os diretórios os organizam, como os blocos físicos são atribuídos a cada arquivo e como o SO sabe quais blocos estão livres.

3 · Conceito 1

O que é um arquivo

Arquivo. Coleção nomeada de dados relacionados, armazenada de forma persistente. É a abstração que esconde os detalhes do dispositivo físico.

Para o usuário, o arquivo é uma unidade lógica contínua; para o SO, são blocos possivelmente espalhados pelo disco.

4 · Atributos e operações

O que o SO guarda e o que se pode fazer

Atributos comuns: nome, tipo, tamanho, dono, permissões, datas (criação, modificação, acesso). Operações: criar, abrir, ler, escrever, reposicionar (seek), fechar e excluir.

💡
O SO mantém uma tabela de arquivos abertos para não relocalizar os metadados a cada acesso. No Unix, o i-node guarda os atributos e os ponteiros para os blocos.
5 · Exemplo

Permissões no Unix

As permissões Unix aparecem em três grupos (dono, grupo, outros) com leitura/escrita/execução:

# saída de ls -l -rw-r--r-- 1 ana alunos 2048 jun 19 10:00 prova.txt # dono: rw- (lê/escreve) | grupo: r-- | outros: r--

Esses bits, junto com dono e grupo, formam a base do controle de acesso a arquivos.

6 · Interativo

Stepper: abrir e ler um arquivo

Passo 1
O processo chama open("doc.txt"): o SO percorre os diretórios para achar o arquivo.
Passo 2
Encontra o i-node, lê os metadados e verifica as permissões.
Passo 3
Cria uma entrada na tabela de arquivos abertos e devolve um descritor (fd).
Passo 4
O processo chama read(fd, ...): o SO usa os ponteiros do i-node para achar os blocos.
Passo 5
Os blocos são lidos do disco (via cache, se possível) e copiados para o buffer do processo.
7 · Conceito 2

Diretórios

Diretório. Estrutura que mapeia nomes a arquivos (e a outros diretórios), permitindo organizar e localizar os dados.

A organização mais comum é a árvore de diretórios: uma raiz e ramificações hierárquicas.

8 · Caminhos

Absolutos, relativos e links

/ (raiz)/home/home/ana/home/ana/doc.txt
💡
Caminhos absolutos partem da raiz (/); relativos partem do diretório atual. Estruturas em grafo acíclico permitem compartilhar um arquivo em vários diretórios via links (hard links e symlinks).
9 · Analogia

O arquivo de aço e o catálogo

🗄️ Analogia
O disco é um enorme arquivo de aço com gavetas numeradas (blocos). O i-node é a ficha que diz, para cada documento, em quais gavetas suas folhas estão. O diretório é o catálogo que traduz nomes ("Contrato 2024") na ficha correta — você não precisa saber os números das gavetas.
10 · Comparação

Métodos de alocação de blocos

MétodoComo funcionaTrade-off
ContíguaBlocos consecutivos no discoAcesso rápido; fragmentação externa; difícil crescer
EncadeadaCada bloco aponta para o próximoSem fragmentação externa; acesso aleatório lento
IndexadaUm bloco de índice lista todos os blocosBom acesso aleatório; overhead do índice
11 · Fluxo

O i-node e os ponteiros indiretos

O i-node do Unix combina ponteiros diretos e indiretos para suportar arquivos pequenos e grandes com eficiência:

i-nodePonteiros
diretos
Indireto
simples
Indireto
duplo/triplo
💡
Arquivos pequenos usam só ponteiros diretos (rápido). Arquivos grandes acionam blocos de índice indiretos, escalando o tamanho máximo sem desperdiçar espaço nos pequenos.
12 · Aprofundamento

Gerência de espaço livre

O SO precisa saber quais blocos estão livres para alocar. Duas técnicas clássicas:

  • Mapa de bits: um bit por bloco (0 = livre, 1 = ocupado). Fácil de achar sequências livres; ocupa espaço proporcional ao disco.
  • Lista encadeada de livres: cada bloco livre aponta para o próximo livre. Não desperdiça espaço extra, mas é ruim para achar blocos contíguos.
🔑
Sistemas modernos usam variações (agrupamento, contagem) para equilibrar velocidade e espaço.
13 · Interativo

Check: escolha o método

Você precisa de acesso aleatório rápido a qualquer parte de arquivos que crescem com o tempo. Qual método de alocação é mais adequado?

A alocação indexada permite acesso aleatório direto (via bloco de índice) e lida bem com crescimento, ao custo do overhead do índice.
14 · Caso prático

Por que o ext4 usa extents

Sistemas modernos como o ext4 (Linux) e o NTFS (Windows) usam extents: em vez de listar cada bloco, registram intervalos contíguos (início + comprimento). Isso reduz drasticamente os metadados de arquivos grandes e melhora o desempenho sequencial.

É uma combinação prática das ideias vistas: aproveita a contiguidade quando possível (como a contígua), mas mantém um índice flexível (como a indexada).

15 · Erros comuns

Confusões a evitar

⚠️
Cuidado:
  • Confundir i-node (metadados + ponteiros) com a entrada de diretório (nome → i-node).
  • Achar que excluir um arquivo apaga os dados: em geral só remove a referência e libera os blocos.
  • Misturar caminho absoluto (começa em /) com relativo (a partir do diretório atual).
  • Supor que a alocação encadeada permite acesso aleatório rápido — ela exige percorrer a cadeia.
16 · Dicas

Boas práticas e analogias úteis

Dicas:
  • Pense no i-node como o "PCB do arquivo": guarda tudo, menos o nome.
  • Hard links apontam para o mesmo i-node; symlinks guardam um caminho de texto.
  • O mapa de bits é ótimo para visualizar o estado do disco em exercícios.
17 · Interativo

Reveal: por que o nome não fica no i-node?

Por que o nome do arquivo fica no diretório, e não no i-node?
Separar o nome (na entrada de diretório) do conteúdo/metadados (no i-node) permite que o mesmo arquivo tenha vários nomes em lugares diferentes — os hard links. Cada entrada de diretório aponta para o mesmo número de i-node; um contador de referências no i-node controla quantos nomes existem, e o arquivo só é removido de fato quando o contador chega a zero.
18 · Flashcards

Revisão relâmpago

i-nodevirar
Estrutura Unix com atributos e ponteiros para os blocos de um arquivo.
Caminho absolutovirar
Caminho que começa na raiz (/) do sistema de arquivos.
Alocação indexadavirar
Um bloco de índice lista todos os blocos do arquivo; bom acesso aleatório.
Mapa de bitsvirar
Um bit por bloco indicando livre (0) ou ocupado (1).
19 · Conexões

Ligações com o curso

  • E/S e disco (aula 12): ler blocos espalhados aciona o escalonamento de disco.
  • Memória (aula 9): os métodos de alocação ecoam contígua/indexada da memória; mapeamento de arquivos em memória usa paginação.
  • Proteção (aula 13): permissões de arquivo são um caso da matriz de acesso.
  • Processos (aula 3): a tabela de arquivos abertos faz parte do contexto de cada processo.
20 · Síntese

O essencial sobre sistemas de arquivos

🔑
Síntese: o arquivo é a abstração de dados persistentes, com atributos e operações; os diretórios o organizam em árvore com caminhos absolutos/relativos e links. A alocação de blocos pode ser contígua, encadeada ou indexada (o Unix usa i-nodes com ponteiros diretos/indiretos; o ext4 usa extents). O espaço livre é gerenciado por mapa de bits ou lista encadeada.
Mão na massa · colaborativo

Atividade em grupo · Projetando um mini sistema de arquivos

Em trios, escolham métodos para um pequeno disco.

⏱️ 25 min👥 trios🧩 design

Roteiro

  1. Suponham um disco de 16 blocos e 4 arquivos de tamanhos variados.
  2. Escolham um método de alocação (contígua, encadeada ou indexada) e justifiquem.
  3. Desenhem como cada arquivo ocupa os blocos.
  4. Mostrem o mapa de bits do espaço livre resultante.
Arquitetoescolhe o método de alocação
Desenhistamapeia os blocos
Contadormonta o mapa de bits
📤 Entrega: Esboço da alocação dos 4 arquivos + mapa de bits do espaço livre.
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

  • Arquivo é a abstração de dados persistentes, com atributos e operações; o i-node guarda metadados e ponteiros.
  • Diretórios organizam arquivos em árvore; caminhos podem ser absolutos ou relativos, e links permitem compartilhamento.
  • Alocação pode ser contígua (rápida, fragmenta), encadeada (sem acesso aleatório) ou indexada (índice).
  • O ext4/NTFS usam extents; o Unix usa i-nodes com ponteiros diretos e indiretos.
  • O espaço livre é gerenciado por mapa de bits ou lista encadeada de blocos livres.