ScholarGate
Assistente

Sistemas de Arquivos

Um sistema de arquivos é o componente do sistema operacional que organiza dados persistentes em arquivos e diretórios nomeados em dispositivos de armazenamento, gerenciando como os dados são dispostos, localizados, protegidos e mantidos consistentes.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Um sistema de arquivos é o método e as estruturas de dados que um sistema operacional utiliza para armazenar, organizar, nomear, recuperar e proteger dados persistentes em um dispositivo de armazenamento, apresentando arquivos e diretórios a aplicações enquanto gerencia o layout e a consistência no dispositivo.

Scope

Este tópico abrange a abstração e interface de arquivos, estruturas de diretórios, métodos de alocação (contígua, encadeada, indexada) e gerenciamento de espaço livre, estruturas de metadados como inodes, journaling e consistência em caso de falha, e o cache de buffer. Ele trata de como o sistema operacional transforma o armazenamento bruto em um namespace confiável e nomeado. Exclui os próprios dispositivos de armazenamento físico (dispositivos de armazenamento secundário) e o gerenciamento da memória principal do sistema operacional (gerenciamento de memória).

Core questions

  • Como os arquivos são nomeados, organizados em diretórios e acessados?
  • Como os dados de um arquivo são alocados e localizados no dispositivo de armazenamento?
  • Quais metadados o sistema de arquivos mantém e como o espaço livre é gerenciado?
  • Como o sistema de arquivos se mantém consistente em caso de falhas?

Key concepts

  • abstração e interface de arquivos
  • diretórios e namespaces
  • inodes e metadados
  • métodos de alocação (contígua, encadeada, indexada)
  • gerenciamento de espaço livre
  • journaling e consistência em caso de falha
  • cache de buffer
  • controle de acesso e permissões

Key theories

Consistência em caso de falha
Como uma falha pode interromper atualizações em várias etapas, os sistemas de arquivos utilizam técnicas como journaling (registrando as alterações pretendidas antes de aplicá-las) ou copy-on-write para garantir que, após uma falha, o sistema de arquivos possa ser restaurado a um estado consistente.

Mechanisms

Um sistema de arquivos mapeia o fluxo de bytes lógico de cada arquivo para blocos no dispositivo, registrando o mapeamento e os atributos em estruturas de metadados, como inodes e diretórios. Os métodos de alocação determinam como os blocos são atribuídos e rastreados, e as estruturas de espaço livre registram os blocos disponíveis. Um cache de buffer mantém blocos usados recentemente na memória, e o journaling ou copy-on-write garante que atualizações interrompidas deixem o sistema de arquivos em um estado recuperável e consistente.

Clinical relevance

Os sistemas de arquivos são a forma como quase todos os dados persistentes são armazenados e recuperados, portanto, seu desempenho e confiabilidade são críticos para bancos de dados, aplicações e usuários. As escolhas de design em torno de metadados, cache e consistência em caso de falha determinam a durabilidade e a recuperação após falhas, e sistemas de arquivos amplamente utilizados, como ext4, NTFS e ZFS, incorporam décadas desses trade-offs.

History

Sistemas de arquivos hierárquicos com diretórios e o modelo de inode foram estabelecidos pelo UNIX por volta de 1970. O Berkeley Fast File System melhorou o layout e o desempenho, e o journaling e os designs log-structured na década de 1990 abordaram a consistência em caso de falha e o desempenho de escrita. Sistemas de arquivos copy-on-write, como ZFS e Btrfs, integraram posteriormente somas de verificação e snapshots para uma integridade mais robusta.

Debates

Journaling versus copy-on-write para consistência
O journaling registra as alterações pretendidas antes de aplicá-las, enquanto o copy-on-write escreve novos dados em locais novos e troca atomicamente os ponteiros; cada um oferece consistência em caso de falha com diferentes trade-offs de desempenho, espaço e integridade, e ambos são usados em sistemas modernos.

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Marshall Kirk McKusick
  • Abraham Silberschatz

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

O que é um inode?
Um inode é uma estrutura de metadados que descreve um arquivo: seu tamanho, propriedade e permissões, carimbos de data/hora e ponteiros para os blocos de armazenamento que contêm seus dados. Os diretórios mapeiam nomes legíveis por humanos para inodes, separando o nome de um arquivo de sua representação no dispositivo.
Como o journaling protege contra falhas?
Antes de modificar as estruturas do sistema de arquivos, um sistema de arquivos com journaling registra as alterações pretendidas em um log. Se uma falha interromper a atualização, ao reiniciar, o sistema reproduz ou descarta as alterações registradas, restaurando um estado consistente em vez de deixar o sistema de arquivos corrompido.

Methods for this concept

Related concepts