Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cap 25 : Diretórios e atalhos - Coggle Diagram
Cap 25 : Diretórios e atalhos
Diretórios
Um diretório representa um contêiner de arquivos e outro diretórios, possuindo nomes e atributos
Cada sistema de arquivos possui um diretório principal chamado diretório raiz (root).
Sistema antigos possuíam apenas o diretório root. Sistemas atuais possuem vários níveis de diretórios
Os diretórios permitem organizar os arquivos em uma estrutura hierárquica em forma de árvore
Diretório de trabalho ou corrente: ao ser criado cada processo é associado a um diretório que será usado para ele como local padrão para criar novos arquivos. Cada processo herda o diretório de trabalho de seu pai
Caminhos de acesso
Para poder abrir e acessar um arquivo é preciso saber sua localização completo ao invés de somente seu nome
A posição de um arquivo dentro do sistema de arquivos é chamada de caminho de acesso, composto pela sequência de nomes de diretórios que levam até ele a partir da raiz
O caractere separador depende do sistema operacional
Um caminho de acesso pode conter elementos especiais, como ".." e "."
Referência direta: somente o nome do arquivo é informado. O arquivo está ou será criado no diretório de trabalho do processo
Referência absoluta: o caminho de acesso é indicado a partir do diretório raiz e não depende do diretório de trabalho do processo. O caminho mais curto a partir da raiz é chamado caminho canônico
Referência relativa: o caminho de acesso tem como início o diretório de trabalho do processo
Implementação de diretórios
Um diretório é implementado como um arquivo cujo conteúdo é uma tabela de arquivos normais ou especiais, outros diretórios e atalhos
Cada entrada contém o nome do arquivo, seu tipo e localização física
Um diretório não contém fisicamente os arquivos e diretórios dentro dele, apenas os relaciona
Em sistemas recentes um registro específico dentro dos blocos reservados aponta para o diretório raiz. Volume Boot Record em UNIX
Uma entrada "ponto" aponta para o próprio diretório e uma entrada "ponto-ponto" aponta para o diretório pai
A lista de ou índice do diretório pode ser implementado como uma tabela simples (baixo desempenho) ou como árvores e hashes (maior desempenho)
Atalhos
Pode ser necessário ter um mesmo arquivo ou diretório replicado em várias posições do sistema de arquivos
É mais econômico armazenar apenas uma instância do arquivo ou diretório e criar referências indiretas para as cópias. Essas referências indiretas são chamadas atalhos ou links
Atalhos criam múltiplos caminhos para acessar o mesmo conteúdo o que simplifica a organização do sistema de arquivos
Implementação de atalhos
Atalho simbólico (soft link): é implementado como um pequeno arquivo de texto contendo uma string com o caminho até o original. O alvo do atalho pode estar em outro dispositivo físico. O arquivo apontado e seu atalho são independentes : caso o arquivo seja removido o atalho quebra
Atalho físico (hard link): várias referências do arquivo no sistema de arquivos apontam para a mesma localização no dispositivo físico. Normalmente é mantido um contador de referências: somente quando esse número for zero o conteúdo pode ser removido. Só podem ser feitos em arquivos dentro do mesmo volume
Tradução dos caminhos de acesso
A estrutura de diretórios dificulta a implementação da abertura de arquivos pelo sistema operacional
É preciso percorrer o caminho de arquivo até encontrar sua localização em um procedimento denominado file lookup
Para isso cada diretório contido no caminho deve ser encontrado, ter sua permissão verificada e aberto para descobrir a localização do próximo diretório gerando muitos acessos ao disco
Para atenuar o custo de localização é mantido em memória um cache de entradas de diretório localizadas recentemente chamado cache de resolução de nomes. Cada entrada tem um nome e um i-node correspondente
Esse cache é geralmente organizado na forma de uma tabela hash e gerenciado usando LRU
A resolução de caminho de acesso para um atalho físico segue o mesmo procedimento. Se for um atalho simbólico é preciso ler o conteúdo do atalho antes de aplicar o procedimento