Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistema de Arquivos, * Métodos de Alocação de Espaço em Disco: - Coggle…
Sistema de Arquivos
Problemas
Todas as aplicações de computadores precisam armazenar e recuperar informações. Enquanto um processo está sendo executado, ele pode armazenar uma quantidade limitada de informações dentro do seu próprio espaço de endereçamento. No entanto,a capacidade de armazenamento está restrita ao tamanho do espaço do endereçamento virtual. Para algumas aplicações esse tamanho é adequado, mas, para outras, como reservas de passagens aéreas, bancos ou sistemas corporativos, ele é pequeno demais.
Requisitos
Deve ser possível armazenar uma quantidade
muito grande de informações.
As informações devem sobreviver ao término do
processo que as está utilizando.
Múltiplos processos têm de ser capazes de aces-
sá-las ao mesmo tempo.
Um segundo problema em manter informações dentro do espaço de endereçamento de um processo é que, quando o processo é concluído, as informações são perdidas. Para muitas aplicações (por exemplo, bancos de dados), as informações precisam ser retidas por semanas, meses, ou mesmo para sempre. Perdê-las quando o processo que as está utilizando é concluído é algo inaceitável. Além disso, elas não devem desaparecer quando uma falha no computador mata um processo.
Um terceiro problema é que frequentemente é necessário que múltiplos processos acessem (partes de) uma informação ao mesmo tempo. Se temos um diretório telefônico on-line armazenado dentro do espaço de um único processo, apenas aquele processo pode acessá-lo. A maneira para solucionar esse problema é tornar a informação em si independente de qualquer processo.
Arquivos
nomeação de arquivos
Um arquivo é um mecanismo de abstração. Ele fornece uma maneira para armazenar informações sobre o disco e lê-las depois. Isso deve ser feito de tal modo que isole o usuário dos detalhes de como e onde as informações estão armazenadas, e como os discos realmente funcionam
É provável que a característica mais importante de qualquer mecanismo de abstração seja a maneira como os objetos que estão sendo gerenciados são nomeados; portanto, começaremos nosso exame dos sistemas de arquivos com o assunto da nomeação de arquivos.
. Quando um processo cria um arquivo, ele lhe dá um nome. Quando o processo é concluído, o arquivo continua a existir e pode ser acessado por outros processos usando o seu nome.
Estrutura Interna dos Arquivos
Sequência desestruturada de bytes: O SO não se importa com o conteúdo; apenas enxerga bytes. Oferece máxima flexibilidade (usado por UNIX e Windows).
Sequência de registros de tamanho fixo: Comum em computadores de grande porte antigos (época de cartões perfurados).
Árvore de registros: Registros com campos-chave ordenados para permitir buscas rápidas por chaves específicas (usado em processamento comercial).
Tipos de Arquivos: Arquivos regulares (dados do usuário, ASCII ou binários), diretórios, arquivos especiais de caracteres (dispositivos de E/S seriais como terminais e impressoras) e arquivos especiais de blocos (discos).
Acesso aos Arquivos: Pode ser sequencial (ler do início ao fim em ordem) ou de acesso aleatório (essencial para bancos de dados, permitindo saltar para qualquer ponto através de ponteiros ou da chamada seek).
Atributos de Metadados: Informações como permissões de proteção, senhas, criador, proprietário, carimbos de data/hora (criação, acesso e modificação) e sinalizações (flags como somente leitura, oculto, sistema e arquivamento).
Principais Chamadas de Sistema: Incluem Create, Delete, Open, Close, Read, Write, Append, Seek, Get attributes, Set attributes e Rename.
Sistemas de Diretórios
Para gerenciar milhares ou milhões de arquivos, utiliza-se a abstração de diretórios (pastas).
* Evolução dos Diretórios:
* Nível Único: Um único diretório para todo o sistema. Simples e rápido para localizar arquivos, mas totalmente inviável para múltiplos usuários (usado apenas em dispositivos embarcados básicos).
* Hierárquicos (Árvore): Estrutura moderna em árvore onde diretórios contêm subdiretórios e arquivos, permitindo o agrupamento lógico por categorias, projetos ou usuários.
* Nomes de Caminhos (Pathnames):
* Absolutos: Iniciam obrigatoriamente na raiz do sistema (ex: /usr/ast/caixapostal no UNIX ou \usr\ast\caixapostal no Windows).
* Relativos: Partem do diretório de trabalho atual (current working directory) de cada processo.
* Atalhos Padrão: . aponta para o diretório atual e .. aponta para o diretório pai.
* Operações e Ligações (Links):
* Hard Links (Ligações Estritas): Múltiplas entradas de diretório apontam diretamente para a mesma estrutura interna/i-node de um arquivo, incrementando um contador de referências.
* Symbolic Links (Ligações Simbólicas): Arquivos especiais muito pequenos que contêm o caminho textual para outro arquivo, permitindo inclusive cruzar fronteiras de redes ou partições de discos diferentes.
* Métodos de Alocação de Espaço em Disco:
Esta seção aborda como o sistema operacional organiza fisicamente o espaço em disco e otimiza o desempenho.
* Layout de uma Partição de Disco:
* MBR (Master Boot Record): Setor 0 do disco que guarda a tabela de partições e identifica a partição ativa para inicialização.
* Bloco de Inicialização (Boot block): Carrega o sistema operacional da partição.
* Superbloco: Contém os parâmetros fundamentais do sistema de arquivos (número mágico identificador, quantidade total de blocos e dados administrativos).
* Área de gerenciamento de espaço livre, I-nodes, diretório-raiz e dados de arquivos.
Implementação do Sistema de Arquivos
* Alocação Contígua: Cada arquivo ocupa blocos consecutivos no disco.
* Vantagens: Extrema simplicidade (basta saber o bloco inicial e o tamanho) e desempenho máximo de leitura (apenas uma busca inicial).
* Desvantagens: Gera forte fragmentação ao longo do tempo e exige que o tamanho final do arquivo seja conhecido antecipadamente na criação (ainda amplamente útil em mídias de leitura/escrita única como CD-ROMs, DVDs e Blu-rays através do padrão UDF).
* Alocação por Lista Encadeada: Cada bloco de disco possui um ponteiro no início direcionando para o próximo bloco do arquivo.
* Vantagens: Nenhum espaço é perdido por fragmentação externa.
* Desvantagens: Acesso aleatório extremamente lento (precisa percorrer a lista sequencialmente desde o início) e menor eficiência no tamanho dos blocos devido ao espaço ocupado pelos ponteiros.
* Lista Encadeada com Tabela na Memória (FAT): Os ponteiros de encadeamento de todos os blocos do disco são retirados de dentro dos blocos e centralizados em uma tabela na memória RAM (File Allocation Table).
* Vantagens: Torna o acesso aleatório viável e eficiente sem varreduras no disco.
* Desvantagens: Consome muita memória RAM permanente para manter a tabela inteira carregada em discos muito grandes (foi o padrão do MS-DOS e base do FAT16/FAT32).
* I-nodes (Nós-índice): Cada arquivo é associado a uma estrutura de dados compacta chamada i-node, que armazena os atributos do arquivo e os endereços físicos dos seus blocos de disco.
* Vantagem Principal: Apenas os i-nodes dos arquivos abertos no momento precisam residir na memória RAM, tornando o consumo de memória proporcional ao número máximo de arquivos abertos simultaneamente, e não ao tamanho total do disco. Caso um arquivo cresça muito, o i-node utiliza blocos de indireção para armazenar mais ponteiros.