Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementação do Sistemas de Arquivos - Coggle Diagram
Implementação do Sistemas de Arquivos
Estrutura do Sistema de Arquivos
reside no armazenamento secundário (discos)
permite armazenamento, localização e recuperação de arquivos
Ex: Windows - FAT/FAT32 e NTFS
Ex: Linux - XFS, JFS, ReiserFS
Ex: UNIX - UFS
Estrutura em Camadas do Sistema de Arquivos
Logical File System: gerencia toda a estrutura de arquivos
File-Organization Module: traduz os blocos lógicos para blocos físicos, controla os blocos livres
Basic File System: emite comandos genéricos para o driver
I/O Control: drivers de dispositivo, instruções de baixo nível para o hardware
Estruturas Usadas
Boot Control Block: contém informações da carga do SO, costuma ser o primeiro bloco
Volume Control Block: detalhes do volume ou partição
Estrutura de diretórios: usada pra organizar os arquivos
Um FCB por arquivo: contém permissões e local dos blocos de dados
Criando um novo arquivo
aplicação chama o sistema de arquivos lógico
ele conhece o formato das estruturas de diretório e aloca um novo FCB
sistema lê o diretório apropriado pra memória, atualiza o nome do arquivo, FCB escreve de volta no disco
depois de criado
pode ser usado pra E/S
precisa ser aberto; ao ser fechado, as operações são desfeitas
Sistemas de Arquivos Virtuais
System Calls: open(), close(), read(), write()
VFS (Virtual File System): separa as funções genéricas da sua implementação, cada sistema de arquivos possui uma VFS
Usada por estrutura em camadas
Implementação do Diretório
Lista Linear dos nomes com ponteiro para os blocos de dados
simples de programar
demorado para executar
Tabela de Hash
lista linear com estrutura de dados em hash
diminui tempo de busca de diretório
colisões: situações onde dois nomes de arquivos se referem ao mesmo local
Métodos de Alocação
Alocação Contígua
armazena um arquivo em blocos dispostos em sequência
o sistema localiza um arquivo através do endereço do primeiro bloco
acesso simples
alocação de novos arquivos nos espaços livres é o principal problema
Alocação Interligada (por Lista Encadeada)
arquivo é organizado como um conjunto de blocos ligados no disco
cada bloco possui um ponteiro pro bloco seguinte
aumenta o tempo de acesso ao arquivo
o disco precisa ser desfragmentado periodicamente
alocação só permite acesso sequencial
Alocação por Lista Encadeada usando Tabela na Memória
mantém os ponteiros dos blocos de arquivos em uma única estrutura denominada Tabela de Alocação de Arquivos (FAT)
permite o acesso direto aos blocos
não mantém informações de controle dentro dos blocos de dados
Alocação Indexada
método que armazena todos os ponteiros no bloco de índice
Desempenho depende de como o sistema será usado
muito acesso sequencial
muito acesso aleatório
Gerenciamento do Espaço Livre
necessário manter a informação de blocos livres e ocupados
métodos básicos
mapa de bits (vetor de bits)
vantagem: simplicidade e eficiência
desvantagem: o mapa inteiro precisa ser mantido da memória
lista de blocos livres
os dois métodos básicos consideram que os blocos são numerados sequencialmente
Sistemas de Arquivos Estruturados em Log (Journaling)
registram cada atualização no sistema de arquivos como uma transação
todas as transações são gravadas em um log
é confirmada depois de gravada no log
porém o sistema de arquivos pode ainda não estar atualizado
as transações no log são gravadas assincronamente no sistema de arquivos
se o sistema de arquivos falhar, todas as transações restantes no log ainda precisam ser realizadas
se o sistema de arquivos for modificado, a transação é removida do log