1 of 65

MC504 Sistemas Operacionais

Prof. Dr. Eng. Isaías Bittencourt Felzmann

isaias@ic.unicamp.br

​

Campinas, 2º ano/2026

Armazenamento e Arquivos

1/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

2 of 65

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/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

3 of 65

Sistemas de Armazenamento

  • Visão geral da estrutura de armazenamento em massa
  • Escalonamento de HDD
  • Estrutura de RAID

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

3/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

4 of 65

Objetivos

  • Descrever a estrutura física dos dispositivos de armazenamento secundário e o efeito dessa estrutura em seus usos
  • Avaliar algoritmos de escalonamento de E/S
  • Discutir os serviços fornecidos pelo Sistema Operacional para armazenamento em massa, incluindo RAID

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

4/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

5 of 65

Visão geral da estrutura de armazenamento em massa

  • A maior parte do armazenamento secundário dos computadores modernos é composta por unidades de disco rígido (HDDs) e dispositivos de memória não volátil (NVM)
  • HDDs giram pratos revestidos de material magnético sob cabeças móveis de leitura e escrita
    • As unidades giram de 60 a 250 vezes por segundo
    • A taxa de transferência é a velocidade com que os dados fluem entre a unidade e o computador
    • O tempo de posicionamento (tempo de acesso aleatório) é o tempo necessário para mover o braço do disco até o cilindro desejado (tempo de busca) e para que o setor desejado gire sob a cabeça do disco (latência rotacional)
    • Head crash ocorre quando a cabeça do disco toca sua superfície — isso é ruim
  • Os discos podem ser removíveis

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

5/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

6 of 65

Mecanismo de disco com cabeça móvel

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

6/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

7 of 65

A primeira unidade de disco comercial

1956

O computador IBM RAMDAC incluía o sistema de armazenamento em disco IBM Model 350

​

5M caracteres (7 bits)

50 pratos de 24”

Tempo de acesso < 1 segundo

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

7/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

8 of 65

Dispositivos de Memória Não Volátil

  • Quando têm formato de unidade de disco, são chamados discos de estado sólido (SSDs)
  • Outros formatos incluem unidades USB (thumb drives ou flash drives), substitutos de disco em DRAM, dispositivos montados na placa-mãe e armazenamento principal em smartphones
  • Podem ser mais confiáveis que HDDs
  • São mais caros por MB
  • Podem ter vida útil menor — exigem gerenciamento cuidadoso
  • Têm menor capacidade
  • Mas são muito mais rápidos
  • Os barramentos podem ser lentos demais → por exemplo, conexão direta ao PCI
  • Não possuem partes móveis; portanto, não há tempo de busca nem latência rotacional

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

8/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

9 of 65

Dispositivos de Memória Não Volátil

  • Apresentam desafios
  • Lidas e gravadas em unidades de “página” (análogas a setores), mas não podem ser sobrescritas no local
    • Devem ser apagadas antes; os apagamentos ocorrem em unidades maiores, os “blocos”
    • Só admitem um número limitado de apagamentos antes do desgaste — ~100.000
    • Vida útil medida em gravações da unidade por dia (DWPD)
      • Uma unidade NAND de 1TB classificada para 5DWPD deve gravar 5TB/dia durante a garantia sem falhar

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

9/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

10 of 65

Memória Volátil

  • DRAM é usada com frequência como armazenamento em massa
    • Não é tecnicamente armazenamento secundário, pois é volátil; ainda assim, pode ter sistemas de arquivos e atuar como armazenamento secundário rápido
  • Os RAM drives (também chamados RAM disks) aparecem como dispositivos de blocos brutos, geralmente formatados com sistema de arquivos
  • Computadores usam buffering e cache em RAM; por que usar RAM drives?
    • Caches e buffers são gerenciados por programador, Sistema Operacional ou hardware
    • RAM drives ficam sob controle do usuário
    • Disponíveis nos principais Sistemas Operacionais
      • Linux: /dev/ram; macOS: diskutil; Linux: /tmp com tmpfs
  • Usados como armazenamento temporário de alta velocidade
    • Programas compartilham dados lendo e gravando em RAM drives

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

10/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

11 of 65

Mapeamento de Endereços

  • As unidades de disco são endereçadas como grandes vetores unidimensionais de blocos lógicos, sendo o bloco lógico a menor unidade de transferência
    • A formatação de baixo nível cria blocos lógicos na mídia física
  • O vetor unidimensional de blocos lógicos é mapeado sequencialmente nos setores do disco
    • O setor 0 é o primeiro setor da primeira trilha do cilindro mais externo
    • O mapeamento percorre essa trilha, depois as demais trilhas do mesmo cilindro e, em seguida, os demais cilindros, do mais externo para o mais interno
    • O mapeamento de endereços lógicos para físicos deve ser simples
      • Exceto no caso de setores defeituosos
      • Número não constante de setores por trilha, com velocidade angular constante

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

11/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

12 of 65

Escalonamento de HDD

  • O Sistema Operacional é responsável pelo uso eficiente do hardware — para discos rígidos, isso significa obter baixo tempo de acesso e alta largura de banda
  • Minimizar o tempo de busca
  • Tempo de busca ≈ distância de busca
  • A largura de banda do disco é o número total de bytes transferidos dividido pelo tempo entre a primeira requisição de serviço e a conclusão da última transferência

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

12/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

13 of 65

Escalonamento de disco (cont.)

  • Os controladores de unidade possuem pequenos buffers e podem gerenciar uma fila de requisições de E/S com diferentes “profundidades”
  • Existem diversos algoritmos para escalonar o atendimento das requisições de E/S de disco
  • A análise é válida para um ou vários pratos
  • Ilustramos os algoritmos de escalonamento com uma fila de requisições (0–199)

� 98, 183, 37, 122, 14, 124, 65, 67

Posição inicial da cabeça: 53

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

13/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

14 of 65

FCFS

A ilustração mostra um movimento total da cabeça de 640 cilindros

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

14/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

15 of 65

SCAN

  • O braço do disco parte de uma extremidade e se move em direção à outra, atendendo às requisições até chegar ao extremo oposto; então, o movimento da cabeça é invertido e o atendimento continua.
  • O algoritmo SCAN também é chamado de algoritmo do elevador
  • A ilustração mostra um movimento total da cabeça de 208 cilindros
  • Se as requisições estiverem uniformemente distribuídas, a maior densidade estará no extremo oposto do disco; essas requisições terão a maior espera

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

15/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

16 of 65

SCAN (cont.)

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

16/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

17 of 65

C-SCAN

  • Oferece tempo de espera mais uniforme que o SCAN
  • A cabeça se move de uma extremidade do disco à outra, atendendo às requisições ao longo do caminho
    • Ao chegar à outra extremidade, retorna imediatamente ao início do disco, sem atender requisições no percurso de volta
  • Trata os cilindros como uma lista circular, que retorna do último cilindro ao primeiro
  • Número total de cilindros?

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

17/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

18 of 65

C-SCAN (cont.)

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

18/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

19 of 65

Escalonamento NVM

  • Não há cabeças de disco nem latência rotacional, mas ainda existe espaço para otimização
  • No RHEL 7, usa-se NOOP (sem escalonamento), mas requisições LBA adjacentes são combinadas
    • NVM é melhor para E/S aleatória; HDD, para E/S sequencial
    • A taxa de transferência pode ser semelhante
    • As operações de E/S por segundo (IOPS) são muito mais numerosas com NVM (centenas de milhares contra centenas)
    • Porém, a amplificação de escrita (uma escrita que provoca coleta de lixo e várias leituras e escritas) pode reduzir a vantagem de desempenho

​

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

19/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

20 of 65

Gerenciamento de Dispositivos de Armazenamento

  • Formatação de baixo nível, ou formatação física — divisão do disco em setores que o controlador pode ler e gravar
    • Cada setor pode conter informações de cabeçalho, dados e código de correção de erros (ECC)
    • Normalmente contém 512 bytes de dados, mas esse tamanho pode ser configurável
  • Para armazenar arquivos em um disco, o Sistema Operacional ainda precisa registrar nele suas próprias estruturas de dados
    • O disco é particionado em um ou mais grupos de cilindros, cada um tratado como um disco lógico
    • Formatação lógica ou criação de um sistema de arquivos
    • Para aumentar a eficiência, a maioria dos sistemas de arquivos agrupa blocos em clusters
      • A E/S de disco é realizada em blocos
      • A E/S de arquivos é realizada em clusters

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

20/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

21 of 65

Estrutura RAID

  • RAID — arranjo redundante de discos independentes
    • Várias unidades de disco fornecem confiabilidade por meio de redundância
  • Aumenta o tempo médio até a falha
  • Tempo médio para reparo — período de exposição em que outra falha pode causar perda de dados
  • Tempo médio até a perda de dados com base nos fatores acima
  • Se os discos espelhados falharem de forma independente, considere um disco com 100.000 horas de �tempo médio até a falha e tempo médio para reparo de 10 horas
    • O tempo médio até a perda de dados é 100.0002 / (2 ∗ 10) = 500 ∗ 106 horas, ou 57.000 anos!
  • Frequentemente combinado com NVRAM para melhorar o desempenho de gravação
  • Diversas melhorias nas técnicas de uso de discos envolvem vários discos trabalhando de forma cooperativa

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

21/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

22 of 65

RAID (cont.)

​

  • O striping de discos usa um grupo de discos como uma única unidade de armazenamento
  • O RAID é organizado em seis níveis diferentes
  • Os esquemas RAID melhoram o desempenho e a confiabilidade do sistema de armazenamento ao manter dados redundantes
    • O espelhamento ou shadowing (RAID 1) mantém uma cópia de cada disco
    • Espelhamento com striping (RAID 1+0) ou stripes espelhados (RAID 0+1) oferecem alto desempenho e alta confiabilidade
    • A paridade intercalada por blocos (RAID 4, 5, 6) usa muito menos redundância
  • Um array RAID ainda pode falhar se o próprio array falhar; por isso, é comum a replicação automática dos dados entre arrays
  • Alguns discos hot spare ficam não alocados; substituem automaticamente discos com falha e recebem os dados reconstruídos

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

22/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

23 of 65

Níveis RAID

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

23/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

24 of 65

Conceito de Arquivo

  • Espaço de endereçamento lógico contíguo
  • Tipos:
    • Dados
      • Numérico
      • Caractere
      • Binário
    • Programa
  • Conteúdo definido pelo criador do arquivo
    • Muitos tipos
      • arquivo de texto,
      • arquivo fonte,
      • arquivo executável

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

24/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

25 of 65

Atributos do Arquivo

  • Nome – apenas informações mantidas em forma legível para humanos
  • Identificador – tag única (número) identifica o arquivo dentro do sistema de arquivos
  • Tipo – necessário para sistemas que suportam diferentes tipos
  • Localização – apontador para a localização do arquivo no dispositivo
  • Tamanho – tamanho atual do arquivo
  • Proteção – controla quem pode fazer leitura, escrita e execução
  • Hora, data e identificação do usuário – dados para proteção, segurança e monitoramento de uso
  • As informações sobre arquivos são mantidas na estrutura de diretórios, que é mantida no disco
  • Muitas variações, incluindo atributos de arquivo estendidos, como a soma de verificação de arquivos
  • Informações mantidas na estrutura de diretórios

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

25/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

26 of 65

Estrutura do Diretório

  • Uma coleção de nós contendo informações sobre todos os arquivos

​

​

​

​

​

​

​

​

​

​

  • Tanto a estrutura de diretórios quanto os arquivos residem no disco

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

26/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

27 of 65

Operações de Arquivo

  • Criar
  • Escrita – na localização do ponteiro de escrita
  • Leitura – localização do ponteiro de leitura
  • Reposicionamento dentro do arquivo - seek
  • Excluir
  • Truncar
  • Abrir (Fi) – procurar na estrutura de diretórios do disco a entrada Fi e mover o conteúdo da entrada para a memória
  • Fechar (Fi) – mover o conteúdo da entrada Fi na memória para a estrutura de diretórios no disco

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

27/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

28 of 65

Arquivos Abertos

  • Vários dados são necessários para gerenciar arquivos abertos:
    • Tabela de arquivos abertos: acompanha arquivos abertos
    • Ponteiro de arquivo: ponteiro para a última localização de leitura/gravação, por processo que tenha o arquivo aberto
    • Contagem de arquivos abertos: contador do número de vezes que um arquivo é aberto – para permitir a remoção de dados da tabela de arquivos abertos quando o último processo a fecha
    • Localização do arquivo em disco: cache das informações de acesso aos dados
    • Direitos de acesso: informações sobre modos de acesso por processo

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

28/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

29 of 65

Estrutura do Arquivo

  • Nenhuma - sequência de palavras, bytes
  • Estrutura simples de registros
    • Linhas
    • Comprimento fixo
    • Comprimento variável
  • Estruturas Complexas
    • Documento formatado
    • Arquivo de carregamento relocável
  • Pode simular os dois últimos com o primeiro método inserindo caracteres de controle apropriados
  • Quem decide:
    • Sistema operacional
    • Programa

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

29/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

30 of 65

Acesso Sequencial

  • Operações
    • Leia em seguida
    • Escreva em seguida
    • Reiniciar

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

30/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

31 of 65

Acesso Direto

  • Operações
    • leia n
    • Escreva n
    • posição para n
      • Leia em seguida
      • Escreva em seguida
      • reescrever n

n = número relativo de blocos

  • Números relativos de blocos permitem que o SO decida onde o arquivo deve ser colocado

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

31/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

32 of 65

Uma organização típica de sistema de arquivos

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

32/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

33 of 65

Operações realizadas no diretório

  • Buscar por um arquivo

​

  • Criar um arquivo

​

  • Excluir um arquivo

​

  • Listar um diretório

​

  • Renomear um arquivo

​

  • Percorra o sistema de arquivos

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

33/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

34 of 65

Diretório de Nível Único

  • Um diretório único para todos os usuários

​

​

​

​

​

  • Problema de nomeação
  • Problema de agrupamento

​

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

34/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

35 of 65

Diretório de Dois Níveis

  • Diretório separado para cada usuário
  • Nome do caminho
  • Pode ter o mesmo nome de arquivo para usuários diferentes
  • Busca eficiente
  • Sem capacidade de agrupamento

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

35/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

36 of 65

Diretórios Estruturados em Árvore

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

36/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

37 of 65

Diretórios em Grafo Acíclico

  • Compartilhar subdiretórios e arquivos
  • Exemplo

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

37/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

38 of 65

Diretórios em Grafo Acíclico (cont.)

  • Dois nomes diferentes (aliasing)
  • Se o diretório excluir w/list ⇒ ponteiro pendente

Soluções:

    • Ponteiros reversos, para que possamos excluir todos os ponteiros.
      • Registros de tamanho variável são um problema
    • Ponteiros reversos organizados em cadeia
    • Solução com contagem de referências da entrada
  • Novo tipo de entrada de diretório
    • Link – outro nome (ponteiro) para um arquivo existente
    • Resolver o link – seguir o ponteiro para localizar o arquivo

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

38/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

39 of 65

Diretório em Grafo Geral

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

39/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

40 of 65

Proteção

  • O proprietário/criador do arquivo deve ser capaz de controlar:
    • O que pode ser feito
    • Por quem
  • Tipos de acesso
    • Leitura
    • Escrita
    • Execução
    • Exclusão (escrita?)
    • Listagem

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

40/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

41 of 65

Permissões Unix

41/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

42 of 65

Estrutura do Sistema de Arquivos

  • Estrutura de arquivos
    • Unidade de armazenamento lógica
    • Coleção de informações relacionadas
  • O sistema de arquivos reside em armazenamento secundário (discos)
    • Fornece uma interface de usuário para armazenamento, mapeando lógica para física
    • Proporciona acesso eficiente e conveniente ao disco ao permitir que os dados sejam armazenados, localizados e facilmente recuperados
  • O disco oferece reescrita no local e acesso aleatório
    • Transferências de E/S realizadas em blocos de setores (geralmente 512 bytes)
  • Bloco de controle de arquivo (FCB) – estrutura de armazenamento composta por informações sobre um arquivo
  • O driver do dispositivo controla o dispositivo físico
  • Sistema de arquivos organizado em camadas

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

42/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

43 of 65

Sistema de Arquivos em Camadas

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

43/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

44 of 65

Camadas do Sistema de Arquivos

  • Drivers de dispositivo gerenciam dispositivos de E/S na camada de controle de E/S

Dados comandos como

Unidade de leitura 1, cilindro 72, faixa 2, setor 10, para a localização de memória 1060

Envia comandos específicos de hardware de baixo nível para o controlador de hardware

  • Sistema de arquivos básico traduz comandos como "retrieve block 123" e envia ao driver de dispositivo
  • Também gerencia buffers de memória e caches (alocação, liberação, substituição)
    • Buffers armazenam dados em trânsito
    • Caches armazenam dados frequentemente usados
  • O módulo de organização de arquivos entende arquivos, endereços lógicos e blocos físicos
    • Traduz o bloco lógico # para bloco físico #
    • Gerencia espaço livre, alocação de disco

​

​

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

44/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

45 of 65

Camadas do Sistema de Arquivos

  • Sistema de arquivos lógico gerencia informações de metadados
    • Traduz o nome do arquivo em número de arquivo, descritor de arquivo, localização mantendo blocos de controle de arquivos (inodes no UNIX)
    • Gestão de diretórios
    • Proteção
  • A sobreposição é útil para reduzir complexidade e redundância, mas adiciona sobrecarga e pode diminuir o desempenho
  • Camadas lógicas podem ser implementadas por qualquer método de codificação, de acordo com o projetista do sistema operacional

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

45/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

46 of 65

Camadas do Sistema de Arquivos

  • Muitos sistemas de arquivos, às vezes muitos dentro de um sistema operacional
    • Cada um com seu próprio formato:
    • CD-ROM é ISO 9660;
    • Unix possui UFS, FFS;
    • O Windows tem FAT, FAT32, NTFS, além de disquete, CD e DVD Blu-ray,
    • Linux possui mais de 130 tipos, com ext3 e ext4 na frente; além de sistemas de arquivos distribuídos, etc.)
    • Novos ainda estão chegando – ZFS, GoogleFS, Oracle ASM, FUSE

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

46/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

47 of 65

Bloco de Controle de Arquivo (FCB)

  • O sistema operacional mantém o FCB por arquivo, que contém muitos detalhes sobre o arquivo
    • Normalmente, número de inode, permissões, tamanho, datas
    • Exemplo

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

47/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

48 of 65

Estruturas do Sistema de Arquivos em Memória

  • Tabela de montagem que armazena montagens do sistema de arquivos, pontos de montagem, tipos de sistema de arquivos
  • A tabela de arquivos abertos do sistema contém uma cópia do FCB de cada arquivo e outras informações
  • A tabela de arquivos abertos por processo contém ponteiros para entradas apropriadas na tabela de arquivos abertos de todo o sistema, bem como outras informações

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

48/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

49 of 65

Método de Alocação Contígua

  • Um método de alocação refere-se a como blocos de disco são alocados para arquivos:
  • Cada arquivo ocupa um conjunto de blocos contíguos
    • Melhor desempenho na maioria dos casos
    • Simples – apenas a localização inicial (bloco #) e o comprimento (número de blocos) são necessários
    • Os problemas incluem:
      • Encontrar espaço no disco para um arquivo,
      • Saber o tamanho do arquivo,
      • Fragmentação externa, necessidade de compactação offline (causa inatividade) ou online

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

49/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

50 of 65

Alocação Contígua (cont.)

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

50/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

51 of 65

Alocação Encadeada

  • Cada arquivo é uma lista encadeada de blocos
  • Arquivo termina em um ponteiro nil
  • Sem fragmentação externa
  • Cada bloco contém ponteiro para o próximo bloco
  • Sem compactação nem fragmentação externa
  • Sistema de gerenciamento de espaço livre é chamado quando um novo bloco é necessário
  • Melhora a eficiência ao agrupar blocos em grupos, mas aumentando a fragmentação interna
  • Confiabilidade pode ser um problema
  • Localizar um bloco pode exigir muitas operações de E/S e buscas no disco

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

51/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

52 of 65

Exemplo de Alocação Encadeada

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

52/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

53 of 65

Método de Alocação FAT

  • O início do volume possui uma tabela, indexada pelo número do bloco
  • Muito parecido com uma lista encadeada, mas mais rápida no disco e cacheável
  • Nova alocação de blocos simples

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

53/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

54 of 65

Exemplo de FAT

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

54/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

55 of 65

Método de Alocação Indexada

  • Cada arquivo possui seu próprio bloco de índice de ponteiros para seus blocos de dados
  • Visão lógica

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

55/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

56 of 65

Exemplo de Alocação Indexada

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

56/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

57 of 65

Alocação Indexada – Esquema de Dois Níveis

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

57/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

58 of 65

Esquema Combinado: UNIX

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

58/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

59 of 65

Desempenho

  • O melhor método depende do tipo de acesso ao arquivo
    • Contíguo, ótimo para sequenciais e aleatórios
  • A alocação encadeada é boa para acesso sequencial, não aleatório
  • Declarar tipo de acesso na criação
    • Escolha entre contíguo ou encadeado
  • Indexado mais complexo
    • O acesso de bloco único pode exigir 2 leituras de bloco índice e depois leitura de blocos de dados
    • Clustering pode ajudar a melhorar o throughput, reduzir a sobrecarga da CPU
  • Para NVM, não há cabeçote do disco, então são necessários algoritmos e otimizações diferentes
    • Usar algoritmos antigos usa muitos ciclos de CPU tentando evitar movimentos inexistentes do cabeçote
    • O objetivo é reduzir os ciclos de CPU e o caminho geral necessário para E/S

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

59/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

60 of 65

Gerenciamento de Espaço Livre

  • Sistema de arquivos mantém lista de espaço livre para acompanhar blocos disponíveis
  • Vetor de bits ou mapa de bits (n blocos)

​

​

​

​

  • Mapa de bits requer espaço extra
    • Exemplo:

tamanho do bloco = 4KB = 212 bytes

tamanho do disco = 240 bytes (1 terabyte)

n = 240/212 = 228 bits (ou 32MB)

se clusters de 4 blocos -> 8MB de memória

​

  • Fácil obter arquivos contíguos

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

60/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

61 of 65

Lista Encadeada de Espaço Livre

  • Lista encadeada (lista livre)
    • Não é possível obter espaço contíguo facilmente
    • Sem desperdício de espaço
    • Não precisa percorrer toda a lista (se # blocos livres forem gravados)

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

61/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

62 of 65

TRIM de Blocos Não Utilizados

  • HDDs sobrescrevem no local, então só precisam de lista livre
  • Blocos não são tratados especialmente quando liberados
    • Mantém seus dados, mas sem nenhum ponteiro de arquivo, até serem sobrescritos
  • Dispositivos de armazenamento que não permitem sobrescrever (como o NVM) sofrem muito com o mesmo algoritmo
    • Devem ser apagados antes de serem escritos, os apagamentos feitos em grandes blocos (blocos, compostos por páginas) e são lentos
    • TRIM é um mecanismo mais recente para o sistema de arquivos informar ao dispositivo de armazenamento NVM que uma página está livre
      • A página pode ser coletada por um garbage colletor ou, se todo o bloco estiver livre, o bloco pode ser apagado

​

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

62/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

63 of 65

Recuperação

  • Verificação de consistência – compara dados na estrutura de diretórios com blocos de dados no disco e tenta corrigir inconsistências
    • Pode ser lento e às vezes falha
  • Use programas do sistema para fazer backup de dados do disco para outro dispositivo de armazenamento (fita magnética, outro disco magnético, óptico)
  • Recuperar arquivo ou disco perdido restaurando dados a partir de backup

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

63/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

64 of 65

Sistemas de Arquivos com Log

  • Sistemas de arquivos estruturados em log (ou journaling) registram cada atualização de metadados do sistema de arquivos como uma transação
  • Todas as transações são gravadas em um log
    • Uma transação é considerada confirmada quando é escrita no log (sequencialmente)
    • Às vezes para um dispositivo ou seção de disco separado
    • No entanto, o sistema de arquivos pode ainda não ter sido atualizado
  • As transações no log são escritas de forma assíncrona nas estruturas do sistema de arquivos
    • Quando as estruturas do sistema de arquivos são modificadas, a transação é removida do log
  • Se o sistema de arquivos falhar, todas as transações restantes no log ainda devem ser realizadas
  • Recuperação mais rápida de crash elimina a possibilidade de inconsistência nos metadados

​

​

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10th Edition

64/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais

65 of 65

Bibliografia

Capítulo 4.

Capítulos 11, 13 e 14.

65/65

2s/2026

IC/UNICAMP – MC504 Sistemas Operacionais