Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas de arquivos, Aumentar o desempenho - Coggle Diagram
Sistemas de arquivos
Organização do disco
Disco:
Vetor de blocos com 512 bytes ou 4096 bytes
Estruturado em partições
MBR (Master Boot Record): tabela de partições + código
Partição:
Cada uma das áreas do disco
Possui um VBR (Volume Boot Record) no início
Organizada com um filesystem específico
Montagem de volume
Montagem: preparar volume/partição para ser usado
1 Acessar a tabela de partições (MBR do dispositivo)
2 Acessar o VBR e ler dados do volume
3 escolher ponto de montagem (árvore ou floresta)
4 Criar estruturas de memória para representar o volume
Blocos físicos e lógicos
Discos usam blocos físicos de 512 bytes ou 4.096 bytes
SOs usam blocos lógicos ou clusters
Cada bloco lógico usa 2n blocos físicos consecutivos
Blocos lógicos de 4K a 32 KBytes são típicos
Políticas de caching
Read-Through
O cache é consultado a cada leitura
Se o bloco não estiver no cache, ele é lido do disco
Blocos lidos são armazenados no cache
Read-Ahead
Ao ler um bloco do disco, traz mais blocos que o requerido
Blocos adicionais são lidos se o disco estiver ocioso
Benéfica em acessos sequenciais e com boa localidade
Write-Through
As escritas são encaminhadas diretamente ao driver
O processo solicitante é suspenso
Uma cópia dos dados é mantida em cache para leitura
Usual ao escrever metadados dos arquivos
Write-back ou write-behind
As escritas são feitas só no cache
O processo é liberado imediatamente
A escrita efetiva no disco é feita mais tarde
Melhora o desempenho de escrita
Risco de perda de dados (queda de energia)
Gerência de arquivos
Armazenar arquivos nos dispositivos de armazenamento
Implementar diretórios e atalhos
Implementar controle de acesso e travas
Oferecer interfaces abstratas e padronizadas
Alocação de arquivos
Um arquivo é conteúdo + metadados (Atributos: nome, data(s), permissões, etc. Controles: localização dos dados no disco, etc.). FCB (File Control Block) - Um descritor para cada arquivo armazenado
contém os metadados do arquivo, também deve ser armazenado no disco
Alocação contígua
Um arquivo é um grupo de blocos consecutivos:
Acessos sequencial e direto aos dados são rápidos
Boa robustez a falhas de disco
Baixa flexibilidade (conhecer o tamanho final do arquivo)
Forte risco de fragmentação externa
Estratégia pouco usada
Alocação encadeada simples
Um arquivo é uma lista encadeada de blocos:
Bloco contém dados e o número do próximo bloco
Mais flexibilidade na criação de arquivos
Elimina a fragmentação externa
Acesso sequencial é usualmente rápido
Acesso direto é lento (percorrer a lista de blocos)
Pouco robusto: blocos corrompidos “quebram” os arquivos
Alocação encadeada FAT
Armazenar ponteiros nos blocos é um problema:
Diminui tamanho útil dos blocos
Precisa ler blocos para percorrer lista
Solução: criar uma tabela de ponteiros:
FAT - File Allocation Table
Tabela de ponteiros armazenada nos blocos iniciais
Mantida em cache na memória RAM
Base dos sistemas FAT12, FAT16, FAT32, VFAT, ...
Alocação indexada simples
Ideia: um índice de blocos separado para cada arquivo
Index node (inode): estrutura com índice e metadados
Tabela de inodes mantida na área reservada do disco
Características:
Rápida para acessos sequenciais e diretos
Robusta para erros em blocos de dados
Inodes são pontos frágeis
Cópias da tabela de inodes espalhadas no disco
Alocação indexada multínivel
Problema:
inode tem tamanho fixo
Número de ponteiros limita o tamanho do arquivo
Exemplo:
inode com 64 ponteiros de blocos
Blocos de 4 Kbytes
Permite armazenar arquivos até 64 × 4 = 256 KBytes
Solução: Transformar o vetor de blocos em uma árvore
Gestão de espaço livre
Registro dos blocos livres:
Importante ao criar ou aumentar arquivos
Atualizado a cada operação em disco
Estratégias:
Mapa de bits na área reservada
Listas/árvores de blocos livres
Tabela de grupos de blocos livres contíguos
FAT
-