Sistemas de Arquivos

Propaganda
Sistemas de Arquivos
Sistemas de arquivos:
– Mecanismos para armazenamento
on-line e acesso de dados e
programas.
Sistemas de Arquivos

Um sistema de arquivos implica:
–
Conceituação de arquivos e diretórios
–
Estrutura de armazenamento das
informações em midia
–
Desempenho
–
Integridade das informações
armazenadas
Sistemas de Arquivos
 Existem
inúmeros tipos de sistemas de
arquivos hoje em dia:
Sistema Operacional
Sistema de Arquivos Nativo
Linux
Ext2FS, Ext3FS
Windows 9x/ME
FAT32, FAT16
Windows NT/2000/XP
NTFS
FreeBSD
UFS
Solaris
UFS
Sistemas de Arquivos - Conceito de
arquivo
 Arquivo:
–
–
–
unidade lógica de armazenamento
Um conjunto de dados relacionados que são
gravados em memória secundária.
Sistema operacional os mapeia nos dispositivos
físicos.
Definidos por estrutura interna, atributos e
operações.
Sistemas de Arquivos - Conceito de
arquivo
 Estrutura
–
interna
Múltiplas possíveis estruturas podem existir, tais
como:
 Organização
em registros sequenciais
 Formato de programa (arquivos executáveis)
 Organizado para acesso rápido (ex: árvore balanceada)
 Simples coleções de bytes sequenciais
Sistemas de Arquivos - Conceito de
arquivo
 Possíveis
–
estruturas internas
Conjuntos de registros variáveis ou fixos
Sistemas de Arquivos - Conceito de
arquivo
 Possíveis
–
estruturas internas
Conjuntos de dados indexados para rápida
localização
Sistemas de Arquivos - Conceito de
arquivo
 Estrutura
interna
–
Porém ... desvantajoso o sistema operacional
suportar diferentes estruturas.
–
Melhor deixar a cargo de bibliotecas em nível de
usuário.
Assim, abordagem usual é ... arquivos sem estrutura
interna, parecendo apenas um conjunto de bytes
empacotados
–
Sistemas de Arquivos - Conceito de
arquivo
 Atributos
–
–
Arquivos são referenciados por seus nomes.
Alguns atributos típicos:
Atributo
Significado
Nome
Identificação do arquivo
Tipo
Para determinar como manipulá-lo
Localização
Onde se localiza em midia
Tamanho
Quanto espaço ocupa
Proteção
Informação para controle de acesso
Datas
Datas para determinadas operações efetuadas
sobre o arquivo
Proprietário
Usuário e grupo donos do arquivo
Sistemas de Arquivos - Conceito de
arquivo
Arquivos
Arquivos no Linux (e Unix em geral) são repositórios de
dados, e possuem um número de atributos. Alguns
atributos são visíveis ao se executar o programa “ ls -l ”:
-rw-r--r-- 1 sobral users
permissões
780 2009-02-22 23:47 ip.c
usuário grupo tamanho
dono dono
ligações
data última
modificação
nome
Sistemas de Arquivos - Conceito de
arquivo
Arquivos
Visualização dos atributos de um arquivo com o programa
stat:
Sistemas de Arquivos - Conceito de
arquivo
Arquivos
Vendo as escritas
no disco com
vmstat, ao se
criar um arquivo
grande:
Repare também nisto ...
Sistemas de Arquivos - Conceito de
arquivo
Arquivos
Vendo as leituras
do disco com
vmstat, ao se ler
um arquivo
grande:
Repare também
nisto ...
Sistemas de Arquivos - Conceito de
arquivo
 Operações
Operação
Significado
Criação
Procedimentos necessários para a criação de arquivo
Remoção
Procedimentos necessários para a remoção de arquivo
Escrita
Gravação sequencial de informação no arquivo
Leitura
Leitura sequencial de informação no arquivo
Posicionamento
Posicionamento do ponteiro interno do arquivo, para
próxima operação de leitura ou escrita
Truncamento
Remoção de um pedaço do arquivo
Acesso a atributos
Leitura ou alteração de atributos
Bloqueio
Bloqueio e desbloqueio de todo um arquivo ou parte dele
Sistemas de Arquivos - Conceito de
arquivo
 Operações
–
(cont.)
Algumas informações importantes são mantidas
para suporte às operações.
Informação
Significado
Ponteiro interno do arquivo
Indica em que byte, dentro da sequência lógica interna
do arquivo, se dará a próxima operação de leitura ou
escrita. Associado a arquivos abertos (cada arquivo
aberto possui um ponteiro interno).
Contagem de arquivos abertos
Para liberação de recursos em memória mantidos pelo
sistema operacional, os quais descrevem os arquivos em
uso.
Localização do arquivo em
memória secundária
Mantida em RAM para acelerar a localização do arquivo
em midia. Está associada a cada arquivo aberto.
Sistemas de Arquivos - Conceito de
diretório
 Diretórios: listas de arquivos, para organização
destes em midia
–
–
–
Contêm registros que descrevem os arquivos em disco.
Podem ser implementados com diferentes estruturas.
Comumente são também arquivos (porém ditos "especiais")
Sistemas de Arquivos - Conceito de
diretório
Exemplo de diretório em árvore
Sistemas de Arquivos - Conceito de
diretório
Estrutura da
árvore de
diretórios do
Linux
Sistemas de Arquivos - Conceito de
diretório
Uma pequena
parte da
estrutura de
diretórios do
Linux ...
Sistemas de Arquivos - Conceito de
diretório
 Estrutura
–
A estrutura de diretório tem como objetivos:
 Eficiência:
localização rápida de arquivos
 Nomeação: para conveniência de usuários
–
Dois usuários podem usar mesmo nome para arquivos
diferentes
–
Um arquivo pode ter diferentes nomes
 Agrupamento:
separar arquivos de acordo com uma
organização lógica (ex: programas, documentos, ...)
Sistemas de Arquivos - Conceito de
diretório
 Estrutura:
–
–
–
–
em árvore
A estrutura mais comum para diretórios
Permite a organização de arquivos de forma
hierárquica
A árvore possui uma raiz, e cada arquivo ou
subdiretório é endereçado por um caminho único
(pathname)
Usualmente implementados como arquivos
especiais.
Sistemas de Arquivos - Conceito de
diretório

Exemplo
de
diretório
em
árvore:
Sistemas de Arquivos - Alocação
de blocos a arquivos
A midia (discos pricipalmente) possui uma divisão
intrínseca de sua área de armazenamento:
Disco-rígido (HD):
Pratos divididos em trilhas
Trilhas divididas em setores
Setor típico: 512 bytes
Sistemas de Arquivos - Alocação
de blocos a arquivos
Todas transferências entre computador e midia feitas
em blocos:
– Bloco = um ou mais setores agrupados
Os conteúdos dos arquivos são armazenados em
sequências de blocos
– As sequências lógicas de blocos podem ser diferentes
das sequências físicas dos blocos.
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
–
contígua
Cada arquivo ocupa uma sequência de blocos
contíguos em disco.
A
sequência física de blocos é a mesma que a sequência
lógica, a não ser pelo primeiro bloco.
–
–
Para identificar a sequência de blocos, basta
conhecer o primeiro bloco e o tamanho do arquivo
Provê um bom desempenho nas operações de E/S
sobre o arquivo.
 Minimiza-se
o número de posicionamentos em disco.
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
contígua
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Estrutura
simplificada do sistema de
arquivos ISO9660 em disco:
Volume descriptor
Path Table
Diretório raiz
Blocos de dados (arquivos e diretórios)
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
–
contígua
Problemas:
 Dificuldade
–
para aumentar tamanho de arquivos
Se não houver espaço livre contíguo ao final do arquivo,
deve-se removê-lo e recriá-lo em outro lugar.
 Fragmentação
–
–
externa
Exige compactação periódica do sistema de arquivos
Eficiente para sistemas de arquivos somente leitura:
 Ex:
ISO 9660 (CD e DVD)
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
–
–
–
–
com lista encadeada
A sequência lógica de blocos pode ser totalmente
diferente da sequência física
Cada bloco contém o número do próximo bloco da
sequência.
Deve-se conhecer o primeiro bloco e o tamanho do
arquivo ou o último bloco
Não há fragmentação externa
 Um
arquivo pode crescer enquanto houver blocos livres
 Não é necessário fazer compactação peíódica do sistema
de arquivos
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
com
lista encadeada
–
Problema: funciona
bem somente para
acesso sequencial,
pois para posicionar
num bloco N, deve ler
os blocos anteriores.
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Alocação
–
–
indexada
Um aperfeiçoamento da lista encadeada
Resolve o problema de precisar ler os blocos
anteriores para posicionar em um bloco N.
 Os
números dos blocos que compõem as sequências de
blocos ficam armazenados numa estrutura em separado.
 A estrutura mapeia os número de blocos lógicos para os
correspondentes blocos físicos.
 Basicamente existem dois tipos de estrutura para
indexação de blocos:
FAT (File Allocation Table): Tabela de alocação de arquivos
– I-Nodes (Index-Nodes): nó de indexação
–
Sistemas de Arquivos - Alocação
de blocos a arquivos
 FAT
–
–
–
Uma tabela que possui uma entrada para cada
possível bloco de dados do sistema de arquivos
Cada entrada na FAT fornece o número do próximo
bloco físico da sequência.
Nos diretórios, para cada arquivo ali contido há o
número do primeiro bloco físico da sequência, e o
tamanho do arquivo, além de outros atributos do
arquivo.
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Sistema
de arquivos FAT em disco:
Sistemas de Arquivos - Alocação
de blocos a arquivos
 FAT
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Inodes
–
–
–
Estrutura em disco que contém atributos de um
arquivo, e informação sobre a localização de seus
blocos de dados.
Inodes são armazenados em uma tabela em disco,
e referenciados por suas posícões nesta tabela
Uma pequena tabela, parte do inode, indexa os
blocos físicos que compõem o arquivo.
 Para
arquivos grandes, usam-se blocos de indexação
indiretos, que são usados para guardar mais ponteiros
para blocos.
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Estrutura
em disco de um sistema de
arquivos com Inodes:
Superbloco
Bitmaps
Tabela de inodes (milhares deles ...)
Blocos de dados (arquivos e diretórios)
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Um
inode
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Inodes
–
–
–
Diretórios são implementados como listas de
associações nome:no inode
Cada associação é chamada de link (hard link).
Pode haver mais um link para um mesmo inode
 Inodes
–
possuem um atributo contador de links.
O diretório em si também é um arquivo, e portanto é
descrito por um inode.
O
diretório raiz é descrito por um inode predeterminado
(ex: em Ext2FS, o inode 2 corresponde ao diretório raiz)
Sistemas de Arquivos - Alocação
de blocos a arquivos
 Inodes
–
Exemplo de
diretório
Sistemas de Arquivos – Eficiência e
Desempenho

Tamanho de bloco
–
Existe uma relação da velocidade de acesso e
aproveitamento de espaço em função do tamanho de
bloco
Sistemas de Arquivos – Eficiência e
Desempenho
 Cache
–
–
–
Existe localidade nas referências aos blocos em
midia.
Uma cache poderia acelerar enormemente as
operações, mantendo cópias de blocos.
Memória RAM livre é usada normalmente como
cache de disco.
A
capacidade da cache varia, então, em função da
memória livre.
Sistemas de Arquivos – Eficiência e
Desempenho
 Cache
–
–
Quando enche a cache, faz-se necessário dela
retirar blocos
Devem-se retirar blocos de forma a minimizar o
impacto no desempenho
 Blocos
muito acessados devem permanecer em cache
 Devem-se descartar prioritariamente blocos que não foram
modificados, para evitar a operação de escrita em disco
–
O algoritmo LRU (Least Recently Used) é
apropriado para a manutenção da cache.
Sistemas de Arquivos – Eficiência e
Desempenho
 Cache
–
Para padrões de acesso sequenciais, outros
algoritmos são mais eficientes.
 Read-ahead:
lê blocos em adiantamento ao solicitado,
mantendo-os em cache.
 Write-behind (lazy-write): retarda a escrita de blocos.
Sistemas de Arquivos – Integridade

Inconsistências
–
Existe informação redundante no sistema de arquivos
 Ex:
inodes indicam os blocos alocados a cada arquivo, e o
bitmap indica que blocos estão livres
–
Há também relacionamentos entre as estruturas em
disco
 Ex:
Na FAT informam-se as sequências de blocos que
compõem os arquivos, e nos diretórios relacionam-se os
arquivos com as sequências descritas na FAT.
–
Sob certas circunstâncias, as informações em uma
estrutura podem não estar em acordo com aquelas
contidas em outra estrutura.
Sistemas de Arquivos – Integridade
 Inconsistências
–
As inconsistências podem ser causadas por
desligamento súbito da máquina.
 Operações
em andamento ficam incompletas
 O uso de cache incrementa o problema, pois muitas
operações ficam armazenadas em RAM, e são perdidas
se esta for desenergizada antes que a midia seja
sincronizada com a cache.
–
O estado do sistema de arquivos deve sempre ser
verificado ao se iniciar a utilização deste.
Sistemas de Arquivos – Integridade
 Inconsistências
–
Possíveis inconsistências podem ser detectadas
através de uma flag no sistema de arquivos
 Ao
se tentar iniciar o uso (montar) do sistema de arquivos,
a flag deve ter o valor 1
 Se neste momento tiver valor 0, o sistema de arquivos
deve ser verificado à procura de inconsistências
 A flag tem seu valor colocado em 0 assim que o sistema
de arquivos inicia o seu uso
 A flag somente volta para 1 quando se encerra
normalmente o uso (desmonta-se) do sistema de arquivos
Sistemas de Arquivos – Integridade

Inconsistências
–
Ocupação do espaço

Inodes podem estar inconsistentes com bitmap
Inodes
Bitmap
Consequência
Correção
Bloco em uso
Bloco livre
Destruição de
informação do arquivo
que usa o bloco
O bitmap deve indicar que
o bloco está em uso
Bloco livre
Bloco em uso
Desperdício de espaço
O bitmap deve indicar que
o bloco está livre
Arquivos envolvidos
têm informações
destruídas
Copiar o conteúdo do
bloco para outro bloco
livre, e fazer com que um
dos inodes aponte a cópia
Bloco em uso por
mais de um inode
-
Sistemas de Arquivos – Integridade

Inconsistências
–
Ocupação do espaço
Sistemas de Arquivos – Integridade

Inconsistências
–
Diretórios

Diretórios podem estar inconsistentes com inodes
Inodes
Diretórios
Consequência
Correção
Há N links
Há < N links
Arquivo nunca será
removido
O contador de links do
inode deve ser corrigido
Há N links
Há > N links
Arquivo pode ser
removido
prematuramente
O contador de links do
inode deve ser corrigido
Há pelo menos um
link
Não há links
Arquivo perdido, ou
desperdício de espaço
Cria-se uma entrada em
diretório que aponte o
inode (diretório
lost+found)
Sistemas de Arquivos – Integridade

Inconsistências
–
Diretórios
A
FAT e os diretórios podem estar inconsistentes
FAT
Diretórios
Consequência
Correção
Há uma determinada
sequência de blocos
Nenhuma
entrada aponta
a sequência
Espaço desperdiçado,
ou arquivo perdido
Cria-se um arquivo que
aponte a sequência (ex:
arquivos .CHK)
Sequência de N
blocos
O tamanho do
arquivo é maior
que N blocos
Erro em acessos ao
arquivo.
O tamanho do arquivo
deve ser corrigido
Arquivos envolvidos
podem ser
corrompidos
Fazer cópias dos blocos
das sequências, e
desvinculá-las.
Duas sequências se
misturam
-
Sistemas de Arquivos – Integridade

Inconsistências
–
Programas especiais fazem a verificação das
inconsistências
 Cada
tipo de sistema de arquivo possui seu verificador
 Ex: fsck (File System Checker) para sistemas de arquivos em
sistemas operacionais tipo Unix
 Ex: chkdsk para sistemas de arquivo em sistemas
operacionais Windows NT e sucessores
Download