Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementação do Sistema de Arquivo, Implementação do Sistema de Arquivos …
Implementação do Sistema de Arquivo
Estrutura do Sistema de Arquivos
O acesso ocorre em unidades de blocos. Cada bloco contém um ou mais setores
Bloco é uma unidade lógica definida pelo Sistema de Arquivos. É configurável no momento da formatação
Setor é uma unidade física, definida pelo dispositivo (normalmente 512 bytes ou 4vKB). É fixa, imutável.
A estruturação dos sistemas de arquivos normalmente é organizada em camadas, composta por diversos níveis.
Princípio básico: Cada nível do projeto usa os recursos dos níveis mais baixos para criar novos recursos a serem usados pelos níveis mais altos.
Sistema de Arquivos Lógico: Gerencia metadados e mecanismos de proteção
Módulo de Org. de Arquivos: Lida com a“tradução” de blocos lógicos para blocos físicos e controla os blocos livres
Sistema de Arquivos Básico: Emite comandos genéricos para o driver e gerencia buffers e caches de memória
Controle de I/O: drivers de dispositivo e manipuladores de interrupção. Instruções de baixo nível para o hardware
Implementação de Diretórios
Lista linear
Simples de programar mas demorado para executar
Tabela de Dispersão (Tabela Hash)
Diminui tempo de busca de diretório. Inserção e exclusão também são mais simples
tem que administrar colisões, situações onde dois nomes de arquivos referem-se ao mesmo local.
Métodos de Alocação
Alocação Contígua
O acesso é bastante simples.
Seu principal problema é a alocação de novos arquivos nos espaços livres
Consiste em armazenar um arquivo em blocos sequencialmente dispostos
Ocorre a fragmentação externa
Alocação Encadea
Cada arquivo é uma lista encadeada de blocos de disco
O arquivo pode ficar espalhado no disco, o que aumenta muito o tempo de acesso
Desperdício de espaço nos blocos com armazenamento de ponteiros
A confiabilidade é problemática
Alocação Encadeada usando Tabela de Alocação de Arquivos
Uma seção de disco no começo de cada volume é reservada para conter a tabela (FAT)
Tempo de acesso aleatório é melhorado
Alocação Indexada
Coloca todos os ponteiros de um arquivo juntos em uma locação: o bloco de índices
Cada arquivo tem seu próprio bloco de índices
O diretório contém o endereço do bloco de índices
Suporta acesso direto sem sofrer fragmentação externa
Há desperdício de espaço ao armazenar os ponteiros
Desempenho depende se tem mais acesso sequencial ou mais acesso aleatório
Gerenciamento do Espaço Livre
O sistema mantém uma lista de espaços livres.
Vetor de bits (também chamado de Mapa de bits)
Simplicidade e eficiência
O mapa inteiro precisa ser mantido da memória por questões de eficiência.
Lista Encadeada
Consiste em encadear todos os blocos livres no disco, mantendo um ponteiro para o primeiro bloco livre
Esse esquema não é eficiente; para percorrer a lista, devemos ler cada bloco
Recuperação
Uma queda do sistema pode causar inconsistências entre estruturas de dados do sistema de arquivos em disco
Cada SO tem seu verificador de consistência, que é um programa que compara os dados na estrutura de diretórios com os blocos de dados em disco
Sistemas de Arquivos Estruturados em Log (ou journaling)
Registra cada atualização no
sistema de arquivos como uma transação
Todas as alterações de metadados são gravadas sequencialmente em um log.
Implementação do Sistema de Arquivos
Estruturas comumente usada
Uma estrutura de diretório (por sistema de arquivos)
Um bloco de controle de inicialização (por volume)
Um bloco de controle de volume (por volume)
Um FCB por arquivo contendo muitos detalhes sobre o arquivo
Tipo de estruturas usadas no gerenciamento do sistema de arquivos e na melhoria do desempenho usando cache
Uma tabela de montagens em memória contém informações sobre cada volume montado
Um cache em memória da estrutura de diretórios mantém as informações referentes aos diretórios acessados recentemente
A tabela de arquivos abertos contém uma cópia do FCB de cada arquivo, assim como outras informações.
A tabela de arquivos abertos por processo contém um ponteiro para a entrada apropriada na tabela de arquivos abertos
Buffers mantêm blocos do sistema de arquivos quando eles estão sendo lidos ou gravados
Partições e Montagem
Um disco pode ser dividido em múltiplas partições, ou um volume pode se estender por múltiplas partições em múltiplos discos (como num RAID).
Cada partição pode ser:
O disco bruto é utilizado onde um sistema de arquivos não é apropriado
“acabada”, contendo um sistema de arquivos (“formatada”).
A partição raiz, que contém o kernel do sistema operacional e às vezes outros arquivos do sistema, é montada em tempo de inicialização
As informações de inicialização são, usualmente, uma série sequencial de blocos, carregada como uma imagem na memória.
O carregador de inicialização conhece suficientemente a estrutura do sistema de arquivos para ser capaz de encontrar e carregar o kernel,
Sistemas de Arquivos Virtual (VFS)
Usa se técnicas de OO para simplificar, organizar e modularizar a implementação
Separa operações genéricas do sistema de arquivos de sua implementação definindo uma interface VFS limpa
Fornece um mecanismo para a representação exclusiva de um arquivo em toda a rede