Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementação do Sistema de Arquivos/1 - Coggle Diagram
Implementação do Sistema de Arquivos/1
Estrutura do Sistema de
Arquivos
Os Discos fornecem a maior parte da memória secundária em que os sistemas de arquivos são mantidos
Um disco pode ser regravado in loco
é possível ler um bloco do disco, modificar o
bloco e gravá-lo de volta no mesmo local
pode acessar diretamente qualquer bloco de informações que ele contém
SSD’s são também chamados de “discos”
Usam basicamente os mesmos sistemas de arquivos
Tem desempenho aleatório e latência MUITO melhores que os HDs
o acesso ocorre em unidades de blocos
Cada bloco
contém um ou mais setores
acesso eficiente e conveniente ao disco
sistema de arquivos apresenta dois problemas de projeto bem diferentes
definição da aparência que o sistema de arquivos deve ter para o usuário
criação de algoritmos e estruturas de dados para mapear o sistema de arquivos lógico para os dispositivos físicos de memória secundária
organizada em camadas, composta por diversos níveis
Sistema de Arquivos Lógico
Gerencia metadados
também responsável pelos mecanismos de
proteção
Módulo de Org. de Arquivos
Lida com a “tradução” de blocos lógicos para blocos físicos
Controla também os blocos livres
Sistema de Arquivos Básico
Emite comandos genéricos para o driver (ler/gravar blocos físicos em disco)
Também 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 do Sistema de
Arquivos
SO’s provém duas chamadas
básicas
open()
close()
Visão Geral
Um bloco de controle de inicialização
pode conter as informações requeridas pelo sistema para inicializar um sistema operacional
Um bloco de controle de volume
contém detalhes do volume
número de blocos na partição, o tamanho dos blocos, uma contagem de blocos livres e ponteiros para blocos livres
Uma estrutura de diretório
é usada para organizar arquivos
Um FCB por arquivo
contendo muitos detalhes sobre o arquivo
possui um número identificador exclusivo para permitir a associação a uma entrada do diretório
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 em todo o sistema
contém uma cópia do FCB de cada arquivo aberto, 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 em todo o sistema,
Buffers
mantêm blocos do sistema de arquivos quando eles estão sendo lidos de disco ou gravados em disco
Depois de criado o arquivo, ele pode ser usado para E/S
Primeiramente ele precisa ser aberto
open(): pesquisa na tabela de arquivos abertos de todo o sistema
open() retorna um ponteiro para a entrada para a tabela de arquivos abertos por processo
Ao fechar o arquivo, todas as operações descritas são desfeitas
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)
Partição pode ser “bruta”, não contendo sistema de arquivos
ou “acabada”, contendo um sistema de arquivos (“formatada”)
O disco bruto é utilizado onde um sistema de arquivos não é apropriado
As informações de inicialização são uma série sequencial de blocos, carregada como uma imagem na memória
A execução da imagem começa em uma locação predefinida, tal como o primeiro
byte
O carregador de inicialização é capaz de encontrar e carregar o kernel
A partição raiz (ex: Windows C:), que contém o kernel do sistema operacional e às
vezes outros arquivos do sistema
é montada em tempo de inicialização
Sistemas de Arquivos Virtual (VFS)
múltiplos tipos de sistemas de arquivos sejam integrados em uma estrutura de diretório?
Método óbvio: escrever rotinas de
diretório e de arquivo para cada tipo
Método melhor: usar técnicas de OO para simplificar, organizar e modularizar a implementação
VFS
VFS tem duas funções importantes
Ele separa operações genéricas do sistema de arquivos de sua
implementação definindo uma interface VFS limpa
a fornece um mecanismo para a representação exclusiva de um arquivo em toda a rede
VFS ativa operações específicas dos sistemas de arquivos para manipular
solicitações locais
chama os procedimentos do protocolo NFS (Network File System) para
solicitações remotas