Instituto de Informática
-U
FRGS
Sistemas Operacionais
Sistemas de arquivos
Diretórios
Aula 11
Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons.
Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/ Instituto
d
e Informática
-UFRGS
Introdução
Sistemas de arquivos (visão do usuário):
Método para organizar e armazenar arquivos em um dispositivo de memória
secundária
Formado por dois componentes básicos:
Coleção de arquivos (armazenamento de dados)
Estrutura de diretórios que organiza e provê informações de todos os
arquivos do sistema Sistemas Operacionais 2 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Diretório
Arquivo especial do sistema de arquivos
Serve para armazenar informações relativas a todos os arquivos que
compõem o sistema de arquivo (incluindo os próprios diretórios)
Definem um registro
Cada arquivo (e diretório) é associado a uma entrada (registro) no diretório
O arquivo de diretório possui uma organização interna
Forma pela qual os registros são armazenados e localizados
Operações em diretório
Buscar arquivo, criar arquivo, remover arquivo, renomear arquivo, listar
conteúdo do diretório, “navegar” no sistema de arquivos
Sistemas Operacionais 3 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Implementação de diretório (visão simplificada)
Diretórios são arquivos no disco
Diretório raiz: armazenado em local conhecido do disco (ou partição)
Subdiretórios: local de armazenamento informado a partir de outro (sub)diretório
Sistemas Operacionais 4 A. C arissimi -24-avr.-1 8
Nome Flag Local. .... Atributos d: diretório a: arquivo l: link b: bloco c: caractere permissões Arquivo de diretório d1 (raiz)
n 0 1 2 ... Localização do arquivo diretório raiz Entrada do diretório (registro) k 0 1 2 ... Arquivo de diretório d2 (sudiretório)
Instituto d e Informática -UFRGS
Implementação de diretórios
Sistema de arquivos armazena arquivos de diferentes usuários
Duas prerrogativas importantes a respeitar:
Liberdade para nomear os arquivos
Habilidade para compartilhar os arquivos
A noção de estrutura de diretório busca atender essas prerrogativas
Estratégias de estruturação : plana (linear), dois níveis e árvore.
Questão associada: implementação do diretório em si
Lembrando que um diretório é um tipo de arquivo
Sistemas Operacionais 5 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Diretório em um único nível
Todos os arquivos são mantidos em um único diretório
Diretório raiz ou mestre (Master File Directory – MFD)
Problemas:
Organização quando há muitos arquivos
Nomeação (colisão): nomes devem ser únicos
Fatores agravados em ambientes multiusuário
Ainda: aspectos de proteção
Solução:
Empregar uma estrutura hierárquica
Diretórios em dois níveis
Estruturados em árvores ou grafos
Sistemas Operacionais 6 A. C arissimi -24-avr.-1 8
Não atende a prerrogativa de liberdade para nomear arquivosNão atende a prerrogativa de liberdade para nomear arquivos
...
MFD
texto.doc aula10.pdf notas.xls cthreads.c
Instituto
d
e Informática
-UFRGS
Diretório de dois níveis
Criação de um diretório para cada usuário (user file directory - UFD)
Conceito de diretório home do usuário
Existem dentro de um diretório raiz (master file directory – MFD)
Define uma árvore de altura dois
Atende a primeira prerrogativa (liberdade de nomear)
Resolve o problema de colisão de nomes entre usuários
Segunda prerrogativa (compartilhamento)
Permitir um usuário indicar arquivo no diretório de outro usuário
Envolve questões de autorizações e permissões
No login o sistema posiciona o UFD em função do usuário autenticado e isola
sua estrutura de arquivos dos demais
A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Caminhos em sistemas de dois níveis
Um arquivo é localizado no sistema através de
MFD + UFD + Nome do arquivo
Arquivos do sistema operacional e de uso comum (compiladores,
bibliotecas, etc)
Criar um usuário especial que mantém todos esses arquivos (UFD sistema)
Sequência de acesso
Busca no UFD local e, se não encontrar, busca no UFD sistema
Caminho de busca: sequência de diretórios pesquisados na procura de
um arquivo (caminho: MFD+UFD)
A. C arissimi -24-avr.-1 8 ... asc
texto.doc aula10.pdf notas.xls cthreads.c
... sistema
gcc libcthread.a
Instituto d e Informática -UFRGS
Diretórios em árvore
Generalização da árvore de dois níveis
Permite que usuários criem subdiretórios
Necessidade de indicar se uma entrada de diretório está relacionada com um
arquivo ou com um diretório
Uso de um flag indicativo como um atributo do arquivo
Existência de uma hierarquia de diretórios organizados na forma de “pai-filho”
Um “filho” é um subdiretório do diretório “pai”
Sistemas Operacionais 9 A. C arissimi -24-avr.-1 8 ... asc redes sisop ... sistema bin lib MFD ... ...
aula10.pdf notas.xls aula10.pdf notas.xls Instituto
d
e Informática
-UFRGS
Noção de diretório corrente, caminho relativo e absoluto
Diretório corrente (atual ou de trabalho)
No login é o home do usuário
Arquivos são acessados considerando que estão no diretório corrente
Em Unix é empregado a notação (./)
Necessário indicar um caminho ou mudar o diretório atual para acessar
arquivos que estão em outros diretórios
Caminho (pathname)
Identificação unívoca de um arquivo
Duas formas:
Relativo: a partir do diretório corrente
Ex.: ../../sisop/pdf/aula23.pdf; ../pdf/aula23.pdf
Absoluto: a partir do diretório raiz (MFD)
Ex.: /home/asc/public_html/sisop/pdf/aula23.pdf Sistemas Operacionais 10 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Diretórios como grafos direcionados acíclicos (DAGs)
Características da organização em árvore
Cada arquivo (inclui arquivos de diretório) tem apenas um diretório pai
Liberdade para nomeação (prerrogativa 1)
Compartilhamento implica em fornecer caminhos para os arquivos
Podem ser arbitrariamente longos
Diferentes nomes (i.é. Caminho relativo +nome) para um mesmo arquivo
Problema sob o ponto de vista do usuário (não conveniente)
Solução: emprego de grafos acíclicos
Permite o acesso ao arquivo por “caminhos alternativos”
Implica em haver mais de um ascendente (diretório pai) para um arquivo
Conceito de vínculo (link)
Sistemas Operacionais 11 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Vínculos (link)
Vínculo ou link (ou ainda, ligação)
Conexão direcionada entre dois arquivos existentes na estrutura de diretório
link é um tipo de arquivo e sua entrada no diretório indica isso
Resolução do link: localização do caminho real
Genericamente fornecido por uma tupla
<from_file_name; to_file_name; link_name>
Sistemas Operacionais 12 A. C arissimi -24-avr.-1 8
Diretório Diretório ou arquivo
(x; x/software/web; guest) guest x software web A partir do diretório x: ./guest ./software/web
Instituto d e Informática -UFRGS Sistemas Operacionais 13 A. C arissimi -24-avr.-1 8
Problema: remoção de arquivos (original do apontamento)
Duas opções:
Opção I: remover a entrada do diretório e remover o arquivo
Torna a Referência inválida para os demais ascendentes
Opção 2: remover a entrada do diretório e remover o arquivo apenas se não
houver mais ninguém apontando para ele
Adicionar um contador de referência
Sistemas operacionais ofecerem essas opções através de
Opção I: vínculos simbólicos (softlinks)
Opção II: Vinculos estritos (hardlinks)
Instituto d e Informática -U FRGS Sistemas Operacionais 14 A. C arissimi -24-avr.-1 8
Vínculo simbólico ou softlink
Permite um arquivo possuir vários ascendentes, mas apenas um
deles mantém o registro do arquivo com seus atributos (original)
Arquivo original (acesso “oficial”): proprietário do arquivo
Vínculo (acesso “secundário”): registro com caminho para acesso ao arquivo
Semântica de remoção:
Remover o link implica em remover apenas a sua entrada na estrutura de diretório, não o arquivo que aponta
Vínculos entre diretórios gera ciclo
D5 D6 D4 D3 D2 D7 F5 F4 F1 F2 F3 F7 F6 F8 F9 F5 F4 D1 D2 D4 D3 D6 D5 D2 F11 F10 D7 softlink softlink FX FX Instituto d e Informática -UFRGS
Vínculos estritos (hardlink)
Um arquivo possui múltiplos ascendentes e todos apontam para o
registro do arquivo e com seus atributos
Se perde a noção de quem é o original e quem é o vínculo
Na remoção emprega o contador de referência
Incrementado a cada criação de caminho ao arquivo (original e vínculos)
Decrementado na remoção (se zero remove o arquivo e a entrada no
diretório, senão remove apenas a entrada)
A. C arissimi -24-avr.-1 8 d1 d2 d1 d2 Inexistente (removido) a b a remover d1/b d1 d2 a b NÃO pode!!
Solução: remover só a entrada inválido Mantém enquanto houve apontamentos Instituto d e Informática -UFRGS
Problema adicional: presença de ciclos
Contador de referência só funciona bem se não tiver ciclos
Ciclos acontecem sempre que o caminho alternativo for para um diretório
A. C arissimi -24-avr.-1 8 A realtime vprojects projects (count=2) beta main pgm A realtime vprojects projects (count=1) beta main pgm (a partir do diretório A) %rm projects Inacessível!!
X
Instituto
d
e Informática
-UFRGS
Solução para os problemas com ciclos
Problemas causados por ciclos e suas soluções
Desempenho: atravessar uma região compartilhada mais de uma vez
Não varrer links (se sabe pela entrada no diretório)
Pesquisa contínua (fica preso no ciclo)
Não varrer links (se sabe pela entrada no diretório)
Arquivos inacessíveis com contagem de referências diferente de zero
Garbage collection (procedimento custoso)
Solução simples e eficaz:
Impedir a existência de ciclos na estrutura de diretórios proibindo que sejam
feitos vínculos estritos (hardlinks) entre diretórios
Apenas esses geram arquivos inacessíveis (subárvores)
Sistemas Operacionais 17 A. C arissimi -24-avr.-1 8 Instituto d e Informática -UFRGS
Exemplo: implementação de vínculos no Windows (NTFS)
Hardlinks
Permitidos apenas para arquivos no mesmo volume NTFS
Jonctions
Permitidos apenas para diretórios, podendo estar em volumes diferentes,
desde que estejam localmente na mesma máquina
Fornece caminho absoluto
Softlinks (shortcuts ou atalhos)
Permitidos para arquivos e diretórios, podendo estar em volumes diferentes
tanto local à máquina como remotamente
Aceita caminhos absolutos ou relativos
Sistemas Operacionais 18 A. C arissimi -24-avr.-1 8
Volume = disco lógico (partição) formatado em NTFS
Instituto d e Informática -UFRGS Sistemas Operacionais 19 A. C arissimi -24-avr.-1 8
Exemplo: implementação de vínculos no Unix
Hardlinks
Só é permitido com arquivos que não sejam diretórios
Ao ser removido apaga-se apenas o ponteiro; o objeto apontado só é
efetivamente removido se não houver mais referências a ele
Softlinks
Soft link é equivalente ao shortcut (microsoft)
%ln index hlink %ln -s index slinl %ls -l
-rw- - - 2 chavez chem 5228 Mar 12 11:36 index -rw- - - 2 chavez chem 5228 Mar 12 11:36 hlink lrwx rwx rwx 1 chavez chem 5 Mar 12 11:36 slinkindex
Contador de referências Instituto d e Informática -UFRGS Sistemas Operacionais 20 A. C arissimi -24-avr.-1 8
Implementação de diretório (formato interno)
Um diretório nada mais é que uma tabela
Três implementações bastante utilizadas:
Lista (ordenada e não ordenada)
Tabela de dispersão (tabela hash)
Estruturas em árvore (e.g. árvores B+)
Relação custo versus desempenho
Simplicidade versus desempenho
Em tabelas, tempo médio é n/2
Em árvores a complexidade está na inserção e remoção de entradas, mas
Instituto d e Informática -UFRGS Sistemas Operacionais 21 A. C arissimi -24-avr.-1 8
Exemplo: implementação de diretórios UNIX
Berkeley File System (BFS ou UFS)
Vetor linear de entradas de tamanho variável
Registro (i-node, tipo (diretório ou regular), nome simbólico, “buraco”)
“buraco” surge da fragmentação gerada pela remoção de entradas
Pode receber uma nova entrada
Cada entrada possui um tamanho máximo limitado pelo fato do
nome simbólico ter até 255 caracteres
l1 l2 tipo abc inode “buraco” entrada i-node = descritor Instituto d e Informática -U FRGS
Exemplo: implementação de diretório no NTFS
Cada arquivo e diretório é representa em um registro de 1 KB
Registro MFT (Master File Table): possui os atributos e localização do arquivo
Diretório é organizado de duas formas:
Pequenos: lista nome do arquivo e um índice do descritor de arquivo (MFT)
Grandes: emprega MFTs adicionais (runs) organizados em uma B tree+
Sistemas Operacionais 22 A. C arissimi -24-avr.-1 8 base 2º run 1º run Instituto d e Informática -UFRGS A. C arissimi -24-avr.-1 8
Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Sagra-Luzzato, 2001.
Capítulo 8, seções 8.1, 8.2, e 8.3