Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementação do Sistema de Arquivos - Coggle Diagram
Implementação do Sistema de Arquivos
Estrutura do Sistema de Arquivos
Sistema de arquivos
Permite um acesso eficaz e
conveniente ao disco
Permite o armazenamento, localização e recuperação dos arquivos com facilidade.
Blocos
Reside no armazenamento secundário(disco)
A menor unidade de alocação em disco é um
bloco
Cada
bloco
possui um ou mais setores (setor = 32 a
4096 bytes | 512 bytes é o mais comum)
Normalmente, o Sistema de Arquivos é composto de
muitos níveis diferentes
Estrutura em camadas do Sistema de Arquivos
Logical file system
Gerencia metadados
É todo baseado em
FCB
(File Control Block), que contém informações sobre o arquivo (atributos)
File-organization module
Lida com a “tradução” de blocos lógicos para blocos físicos. Controla também 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 HW.
Implementação do Sistema de Arquivos
Estruturas usadas
Boot control block
Pode conter informações necessárias a carga do SO. Costuma ser o primeiro bloco.
UFS: boot block; NTFS: partition book sector
Volume control block
Detalhes do volume ou partição (quantidade de blocos, tamanho dos blocos, contador e ponteiros dos blocos livres, contador e ponteiros FCB’s.
UFS: superbloco; NTFS: MTF (Master File Table)
Estrutura de diretórios
Usada para organizar os arquivos.
UFS: nomes de arquivos e números de inode’s associados
NTFS: MTF (Master File Table)
Um FCB por arquivo
Contém muitos detalhes do arquivo (metadados, permissões e local dos blocos de dados)
UFS: inode
NTFS: dentro da própria MTF, usando um esquema de banco de dados relacional com uma linha
Criando um novo arquivo...
Aplicação chama o sistema de arquivos lógico.
Sistema de arquivos lógico conhece o formato das
estruturas de diretório e aloca um novo FCB
Sistema lê o diretório apropriado para a memória e atualiza-o com o novo nome de arquivo e FCB e escreve-o de volta no disco.
Depois de criado o arquivo...
O arquivo pode ser usado para E/S.
Primeiramente ele precisa ser aberto.
Ao fechar o arquivo, todas as operações descritas são
desfeitas.
Sistemas de arquivo virtuais
Os usuários de um SO não precisam ter conhecimento sobre os diferentes sistemas de arquivos em uso em seu computador.
Uma estrutura em camadas é usada
VFS (Virtual File System)
Separa as funções genéricas da sua implementação. Cada sistema de arquivos possui uma VFS
Implementação do diretório
Lista Linear
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 o tempo de busca do diretório
Colisões
– situações onde dois nomes de
arquivos referem-se ao mesmo local
Métodos de Alocação
Alocação Contígua
Consiste em armazenar um arquivo em blocos
sequencialmente dispostos
O sistema localiza um arquivo através do endereço do
primeiro bloco e da sua extensão em blocos
O acesso é bastante simples
Seu principal problema é a alocação de novos arquivos nos
espaços livres
Como determinar o espaço
necessário a um
arquivo que possa se estender
depois da sua criação?
Pré-Alocação(Fragmentação interna)
Alocação Interligada (lista encadeada)
O arquivo é organizado como um conjunto de blocos
ligados no disco
Cada bloco deve possuir um ponteiro para o bloco seguinte
Aumenta o tempo de acesso ao arquivo, pois o disco deve
deslocar-se diversas vezes para acessar todos os blocos
É necessário que o disco seja desfragmentado
periodicamente
Só permite acesso sequencial
Há desperdício de espaço nos blocos com armazenamento de
ponteiros
Alocação por Lista Encadeada
usando Tabela na Memória
Mantém os ponteiros de todos os blocos de arquivos na
Tabela de Alocação de Arquivos
(FAT)
Vantagens
Permitir o acesso direto aos blocos
Não mantém informações de controle dentro dos blocos de dados
FAT: Esquema usado pelo MS-DOS (FAT-16), Win95,
Win98 (FAT-32) em diante
Alocação indexada
Método que armazena todos os ponteiros num único local: o bloco de índice.
Desempenho
O desempenho do sistema de alocação depende muito de como o sistema será usado
Muito acesso sequencial
Muito acesso aleatório
Os métodos de alocação variam em sua eficiência de armazenamento e nos tempos de acesso
aos blocos de dados.
Gerenciamento do espaço livre
Vetor de bits
Para cada bloco:
1 = livre
0 = ocupado (já alocado)
Vantagens
Simplicidade e eficiência (em localizar
blocos consecutivos).
Desvantagens
O mapa inteiro precisa ser mantido da memória
Lista interligada
Encadear todos os blocos livres no disco, mantendo um ponteiro para o primeiro bloco livre em uma locação especial no disco e armazenando em cache na memória
O primeiro bloco contém um ponteiro para o próximo bloco livre no disco, e assim por diante.
Desvantagem
Não é eficiente.
Para percorrer a lista, deve-se ler cada bloco, o que requer um tempo de I/O significativo.
Sistemas de arquivos estruturados
em log
Registram cada atualização no sistema de arquivos como uma
transação
Todas as transações são gravadas em um
log
Uma transação é considerada 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 gravada assincronamente no sistema de arquivos
Quando o sistema de arquivos é modificado, a transação é
removida do log
Se o sistema de arquivos falhar, todas as transações restantes no log ainda precisam ser realizadas