Si t
O
i
i
F
RGS
Sistemas Operacionais
c
a
-U
F
Diretórios
o
rmáti
c
d
e Inf
o
tituto
d
Ins
t
Aula 18
Introdução
ç
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
ã d
t t
d di tó i b
t d
ti
U
FRGS
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
rmática
-U
Questão associada: implementação do diretório em si
Lembrando que um diretório é um tipo de arquivo
-15 u to de Info a rissimi -20-mai Instit u Sistemas Operacionais 2 A. C a
Implementação de diretório (visão simplificada)
p
ç
(
p
)
É um arquivo especial
Armazenado em um local conhecido do disco (partição)
Diretório especial: raiz
Arquivo de diretório d1 (raiz) Localização do arquivo
diretório raiz
Entrada do diretório
U
FRGS
Nome Flag Local Atributos permissões 0 1 2 diretório raiz rmática -U -15
Nome Flag Local. ....
d: diretório permissões n ... u to de Info a rissimi -20-mai a: arquivo l: link
Se flag=diretório, “local” fornece a localização de um outro arquivo
Instit
u
A. C
a Se flag diretório, local fornece a localização de um outro arquivo
diretório (d2) que tem sua próprias entrada. Nesse caso, d2 é um subdiretório de d1.
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
U
FRGS
Nomeação (colisão): nomes devem ser únicos Fatores agravados em ambientes multiusuário
Ainda: aspectos de proteção Não atende a prerrogativa de Não atende a prerrogativa de
rmática
-U p p ç
Solução:
Empregar uma estrutura hierárquica
-15
Não atende a prerrogativa de liberdade para nomear arquivos
Não atende a prerrogativa de liberdade para nomear arquivos
u
to de
Info Diretórios em dois níveis
Estruturados em árvores ou grafos
a rissimi -20-mai Instit u A. C a
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
E i t d t d di tó i i ( t fil di t MFD) Existem dentro de um diretório raiz (master file directory – MFD) Define uma árvore de altura dois
Atende a primeira prerrogativa
U
FRGS
Atende a primeira prerrogativa
Resolve o problema de colisão de nomes entre usuários
Segunda prerrogativa
rmática
-U
Segunda prerrogativa
Permitir um usuário indicar arquivo no diretório de outro usuário Envolve questões de autorizações e permissões
-15
u
to de
Info No login o sistema posiciona o UFD em função do usuário autenticado e isola
sua estrutura de arquivos dos demais
a rissimi -20-mai Instit u Sistemas Operacionais 5 A. C a
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)
U
FRGS
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
rmática
-U , ,
Caminho de busca: sequência de diretórios pesquisados na procura de um arquivo (caminho: MFD+UFD)
-15 u to de Info a rissimi -20-mai Instit u Sistemas Operacionais 6 A. C a
Diretórios em árvore
Generalização de uma á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 mais um atributo do arquivo
U
FRGS
Uso de um flag indicativo como mais 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”
rmática -U -15 u to de Info a rissimi -20-mai Instit u A. C a
Noção de diretório corrente, caminho relativo e absoluto
ç
,
Diretório corrente
No login é o home do usuário
A i ã d id d tã di tó i t
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
U
FRGS
Necessário indicar um caminho ou mudar o diretório atual para acessar arquivos que estão em outros diretórios
Caminho (pathname)
rmática
-U
Identificação unívoca de um arquivo Duas formas:
R l ti ti d di tó i t
-15
u
to de
Info Relativo: a partir do diretório corrente
Ex.: ../../sisop/pdf/aula23.pdf; ../pdf/aula23.pdf Absoluto: a partir do diretório raiz (MFD)
a
rissimi -20-mai
Instit
u Absoluto: a partir do diretório raiz (MFD)
Ex.: /home/asc/public_html/sisop/pdf/aula23.pdf
A. C
Diretórios como grafos direcionados acíclicos (DAGs)
g
(
)
Características da organização em árvore
Cada arquivo (inclui arquivos de diretório) tem apenas um diretório pai
Lib d d ã ( ti 1)
Liberdade para nomeação (prerrogativa 1) Compartilhamento implica em fornecer caminhos
Podem ser arbitrariamente longos
U
FRGS
Podem ser arbitrariamente longos
Diferentes nomes (i.é. caminho+nome) para um mesmo arquivo Problema sob o ponto de vista do usuário (não conveniente)
rmática
-U
Solução: emprego de grafos acíclicos
Permitir que um arquivo tenha vários diretórios pais (múltiplos ascendentes)
-15
u
to de
Info Conceito de vínculo (link)
a rissimi -20-mai Instit u Sistemas Operacionais 9 A. C a
Vínculos (link)
(
)
Vínculo ou link (ou ainda, ligação)
Conexão direcionada entre dois arquivos existentes na estrutura de diretório li k é ti d i t d di tó i i di i
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
U
FRGS
Genericamente fornecido por uma tupla
<from_file_name; to_file_name; link_name>
(c; c/software/web; guest) c
rmática
-U
-15
Diretório Diretório ou arquivo guest
software A partir do diretório c: u to de Info a
rissimi -20-mai web
./guest ./software/web Instit u Sistemas Operacionais 10 A. C a
to_file_name pode ser acessado como se fosse nomeado link_name no diretório from_file_name
Problema: remoção de arquivos (original do apontamento)
ç
q
( g
p
)
Opção I: apagar a entrada do diretório sempre que for solicitada por
um de seus ascendentes (caminho)
R f ê i i álid d i d t
Referência inválidas para os demais ascendentes
Opção II: remover a entrada apenas no ascendente (caminho)
origem da solicitação de remoção
U
FRGS
origem da solicitação de remoção
Contador de referência
Número de caminhos alternativos para um arquivo
rmática
-U
-15
p q
Arquivo é efetivamente removido quando o contador de referência for zerado
Sistemas operacionais ofecerem essas opções através de
u
to de
Info
a
rissimi -20-mai
Vínculos simbólicos (softlinks) Vinculos estritos (hardlinks)
Instit
u
A. C
a
Vínculo simbólico ou softlink
Permite um arquivo possuir vários ascendentes (caminhos de
acesso), mas apenas um deles é o proprietário do arquivo
A i i i l ( “ fi i l”) i tá i d i
Arquivo original (acesso “oficial”): proprietário do arquivo
Vínculo (acesso “secundário”): forma alternativa de acesso ao arquivo
b D1 U FRGS l r t c n a b a D1 D2 D3 p softlink
rmática -U -15 Semântica de remoção:Remover o link implica em remover apenas a sua entrada na estrutura
m k n h k e f F1 F2 F3 D4 D5 D6 u to de Info a rissimi -20-mai
apenas a sua entrada na estrutura de diretório, não o arquivo que aponta F7 F6 F8 F9 F5 F4 n a q D7
softlink Instit u A. C a F11 F10Vínculos estritos (hardlink)
(
)
Um arquivo possui múltiplos ascendentes sem distinguir quem é o
original e quem é o vínculo
Solução: remove só a entrada
d1 d2 d1 d2
b
remove d1/b
d1 d2
Solução: remove só a entrada
U FRGS
Semântica da remoção
Inexistente (removido) a b a a b NÃO pode!! rmática -USemântica da remoção
Manter um contador de referências nos atributos dos arquivos
Arquivo só é apagado efetivamente quando o contador for igual a zero
-15
u
to de
Info Contador de referência é igual a 1 na criação do arquivo
Incrementado a cada criação de vínculo (link)
Decrementado na remoção (se zero remove o arquivo e a entrada no
a
rissimi -20-mai
Instit
u Decrementado na remoção (se zero remove o arquivo e a entrada no
diretório, senão remove apenas a entrada)
Sistemas Operacionais 13
A. C
a
Problema adicional: presença de ciclos
p
ç
Contador de referência só funciona bem se não tiver ciclos
(a partir do diretório A) A j ( 2) A j t ( t 1) %rm projects U FRGS l i projects2 projects (count=2) lti projects2 projects (count=1) rmática -U 0-mai-15 realtime beta main realtime beta main u to de Info A. Carissimi -2 main pgm main pgm Inacessível!! Instit u Sistemas Operacionais 14
Solução para os problemas com ciclos
ç p
p
Problemas de ciclos e soluções
Desempenho: atravessar uma região compartilhada mais de uma vez
Nã li k ( b l t d di tó i )
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)
U
FRGS
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)
rmática
-U
Solução simples e eficaz:
Impedir a existência de ciclos na estrutura de diretórios proibindo que sejam f it í l t it (h dli k ) t di tó i
-15
u
to de
Info feitos vínculos estritos (hardlinks) entre diretórios
Apenas esses geram arquivos inacessíveis (subárvores)
a rissimi -20-mai Instit u A. C a
Exemplos de implementação de vínculos
p
p
ç
Microsoft windows
Implementa vínculos simbólicos através dos atalhos (shortcuts)
Atalhos são ponteiros para arquivos ou diretórios que podem ser copiados e Atalhos são ponteiros para arquivos ou diretórios que podem ser copiados e
movidos entre diretórios
Remover um shorcut consiste em apagar apenas esse ponteiro
R bj t t d h t t i álid
U
FRGS
Remover o objeto apontado gera um shortcut inválido
UNIX
Implementa aliases simbólicos (soft link) e múltiplos ascendentes (hard link)
rmática
-U
-15
Implementa aliases simbólicos (soft link) e múltiplos ascendentes (hard link) Soft link é equivalente ao shortcut (microsoft)
Hard link só é permitido com arquivos que não sejam diretórios
u
to de
Info
a
rissimi -20-mai
Diretório tem apenas um ascendente, mas pode ser referenciado via soft link Ao ser removido apaga-se apenas o ponteiro; o objeto apontado só é
efetivamente removido se não houver mais referências a ele
Instit
u
A. C
Exemplo UNIX: soft e hard links
p
%ln index hlink %ln -s index slinl
%ls -l Contador de referências
%ls l
-rw- - - 2 chavez chem 5228 Mar 12 11:36 index -rw- - - 2 chavez chem 5228 Mar 12 11:36 hlink
l 1 h h 5 M 12 11 36 li k i d
U
FRGS
lrwx rwx rwx 1 chavez chem 5 Mar 12 11:36 slinkindex Diretório
inode arquivo index
rmática
-U
-15
index hlink
inode arquivo index inode arquivo slink
Localização do arquivo em disco u to de Info a rissimi -20-mai slink ode a qu o s @index Instit u Sistemas Operacionais 17 A. C a
inode = estrutura UNIX que descreve os blocos lógicos do disco que formam um arquivo
Implementação de diretório
p
ç
É um arquivo especial do sistema operacional que mantém
informações sobre arquivos
Pode ser visto como uma tabela com cada entrada possuindo
atributos de um arquivo
ex : nome tipo localização tamanho proteção contador de referências
U
FRGS
ex.: nome, tipo, localização, tamanho, proteção, contador de referências...
Atributos interessantes:
Contador de referência: número de entradas que apontam ao arquivo
rmática
-U Contador de referência: número de entradas que apontam ao arquivo
flags: serve para diferenciar diferentes tipos de entrada ex.: l (link), d (diretório), c (caracter), b (bloco)
-15
u
to de
Info lock: acesso exclusivo
a rissimi -20-mai Instit u Sistemas Operacionais 18 A. C a
Operações em diretórios
p
ç
Operações típicas
Pesquisa (search): mais comum
C i ã ã d i
Criação e remoção de arquivos Atualização na chamada close( ) Listar o conteúdo
U
FRGS
Listar o conteúdo Remover o diretório
Envolve pesquisar, inserir e remover entradas em uma estrutura de
rmática
-U
p q
,
dados que representa o diretório
-15 u to de Info a rissimi -20-mai Instit u A. C a
Implementação de tabelas
p
ç
Um diretório nada mais é que uma tabela
Três implementações mais utilizadas:
Lista (ordenada e não ordenada) Tabela de dispersão (tabela hash) Estruturas em árvore (e g árvores B+)
U
FRGS
Estruturas em árvore (e.g. árvores B+)
Relação custo versus desempenho
Simplicidade versus desempenho
rmática
-U
-15
Simplicidade versus desempenho Em tabelas, tempo médio é n/2
Em árvores a complexidade está na inserção e remoção de entradas, mas
u
to de
Info
a
rissimi -20-mai
o desempenho de acesso é bom
Instit
u
A. C
Exemplo: implementação de diretórios UNIX
p
p
ç
Berkeley File System (BFS ou UFS)
Vetor linear de entradas de tamanho variável
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
U
FRGS
Pode receber uma nova entrada
Cada entrada possui um tamanho máximo limitado pelo fato do
nome simbólico ter até 255 caracteres
rmática
-U
-15
nome simbólico ter até 255 caracteres
entrada i node = descritor u to de Info a rissimi -20-mai l1 l2 tipo abc inode i-node = descritor Instit u Sistemas Operacionais 21 A. C a “buraco”
Exemplo: implementação de diretórios Windows 2000
p
p
ç
New Technologie File System (NTFS)
Cada arquivo e diretório é representado por um descritor de 1 Kbyte
Diretório é organizado de duas formas:
Pequenos: lista nome do arquivo e um indice do descritor do arquivo
U
FRGS
Entradas do diretório cabem no 1 Kbyte
Grandes: descritores adicionais (runs) organizados em uma B-tree+
1 kb t 1 kb t rmática -U -15 D1 abc desc 1 kbyte b D1 p2 1 kbyte p1 a u to de Info a rissimi -20-mai abc d c c Nome do arquivo Instit u Sistemas Operacionais 22 A. C a
abc desc xyz desc
e seu descritor
Leituras complementares
p
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Sagra-Luzzato, 2001.
C ít l 8 õ 8 1 8 2 8 3 Capítulo 8, seções 8.1, 8.2, e 8.3