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
Problema 1: definir aparência para usuário
Problema 2: criar estrutura de dados para mapear sistema de arquivos lógicos para disp. físicos
Fornecem acesso eficiente e conveniente ao disco
Organizada em camadas, princípio da abstração
Cada nível usa recursos de níveis mais baixos para criar novos recursos
Níveis altos utilizam recursos de níveis baixos
Sistema de Arquivos Lógico: gerencia metadados e responsável por mecanismos de proteção
Módulo de Org. de Arquivos: traduz blocos lógicos para blocos físicos e controla os livres
Sistema de Arquivos Básico: emite comandos genéricos para drive e gerencia memórias e caches
Controle de I/O: drivers, manipuladores de interrupção e intruções de baixo nível
Implementação
Partições e Montagem
Carregador de inicialização: conhece estrutura do sistema de arquivos para encontrar/carregar/iniciar kernel
Partição raiz: contém kernel do SO e alguns arquivos
Disto bruto: usado onde sistema de arquivos não são apropriados
Cada partição pode ser bruta (sem sistema de arquivos) ou acabada (com sistema)
Sistemas de Arquivos Virtual
Separa operações genéricas do sistema de sua implementação
Fornece mecanismo para representação exclusiva de um arquivo em toda rede
Ativa operações específicas do sistema de arquivos para manipular solicitações locais
Método óbvio: escrever rotinas de diretório e de arquivos de cada tipo
Método melhor: usar técnicas de OO para simplificar/organizar a implementação
Método melhor permite que diferentes sistemas de arquivos sejam implementados dentro da mesma estrutura
Visão Geral
Bloco de controle de volume
Contém detalhes do volume (número de blocos, tamanho, blocos livres)
Estrutura de diretório
Usada para organizar arquivos
Bloco de controle de inicialização
Pode conter informações requeridas pelo sistema
FCB por arquivo
Possui número identificador exclusivo para permitir entrada do diretório
Tabela de montagens
Contém informações sobre cada volume montado
Cache em memória
Mantém informações referentes aos diretórios acessados recentemente
Tabela de arquivo aberto no sistema
Contém uma cópia do FCB de cada arquivo aberto
Tabela de arquivo aberto por processo
Ponteiro para a entrada apropriada na tabela de arquivo aberto no sistema
Buffers
Mantém blocos do sistema de arquivos enquanto lidos/gravados em disco
Implementação de Diretórios
Lista Linear
Simples de programar
nomes exclusivos de arquivos com ponteiro para blocos de dados
Execução demorada
Criar arquivo: pesquisa diretório e adiciona nova entrada ao final do mesmo
Excluir arquivo: pesquisa pelo nome e liberação do espaço alocado
Tabela de Dispersão (Hash)
Toma valor calculado a partir de nome de arquivo
Retorna um ponteiro para nome de arquivo na lista linear
Estrutura de dados em hash
Diminui tempo de busca
Inserção e exclusão mais simples
Tem que administrar colisões (nomes de arquivo referindo ao mesmo local)
Métodos de Alocação
Encadeada
Cada arquivo é uma lista encadeada de blocos de disco
Cada bloco tem um ponteiro para o próximo
Resolve problemas de alocação contígua
Arquivo pode ficar espalhado no disco, aumentando tempo de acesso
Não há fragmentação externa
Desvantagem 1: ineficiente em acesso direto
Desvantagem 2: desperdício de espaço nos blocos com armazenamento de ponteiros
Desvantagem 3: confiabilidade problemática por conta de ponteiros espalhados no disco
Usando tabela de alocação de arquivos: tempo de acesso aleatório é melhorado
Indexada
Utiliza bloco de índices como locação
Melhora acesso direto com ponteiros de arquivo juntos
Cada arquivo tem seu próprio bloco de índices
Suporta acesso direto sem fragmentação externa
Bloco de índice insuficiente: encadeamento de blocos e índices multiníveis
Contígua
Acesso bastante simples
Problema: alocação de novos arquivos em espaços livres
Armazena arquivo em blocos sequenciais
Ocorre fragmentação externa
Pré-alocação: superestimar o tamanho é ineficiente
Possibilidade: alocação com blocos de extensão
Desempenho
Depende muito de como o sistema será usado
Muito acesso sequencial
Muito acesso aleatório
Gerenciamento de Espaço Livre
Vetor de Bits
0 = ocupado
1 = livre
Simples e eficiente
Mapa inteiro mantido na memória
Lista Encadeada
Mantendo ponteiro para primeiro bloco livre
Não é eficiente
Para percorrer lista, deve-se ler cada bloco
Encadear todos os blocos livres em disco
Sistema mantém uma lista de espaços livres
Para criar arquivo, busca-se espaço na lista de espaços
Ao excluir arquivo, espaço em disco é adicionado à lista
Recuperação
Sistemas de Arquivos Estruturadas em Log
Registram cada atualização no sistema como uma transação
Alterações de metadados são gravadas sequencialmente em um log
Chamada de sistema pode retornar ao processo do usuário
Se sistema cair, log conterá zero ou mais transações
Qualquer transação contida no log não estará concluída para o sistema de arquivos
Transações devem ser completadas