You are on page 1of 34

Armazenamento

Rodrigo Rafael Villarreal Goulart
Professor
Sistemas de Arquivos





































http://www.freesoftwaremagazine.com/files/www.freesoftwaremagazine.com/nodes/1252/phototree.jpg
Um sistema de arquivos é um
meio de armazenar informações
em dispositivos de forma
organizada de acordo com um
método pré-estabelecido ...
Quando formatamos um
disco estabelecemos esta
organização, e ela segue
alguns princípios ...
Hierarquia de dados Informação
 Bits são agrupados em
 bytes, palavras ou caracteres, onde:
 bytes: geralmente 8 bits
 palavra: são número de bits que um processador
opera 2 bytes (32 bits), 4 bytes (64bits)
 caracteres: é o mapeamento de grupos de bits
para símbolos (letras, números, pontuação, etc).

Hierarquia de dados Informação
 Padrões de conjuntos de bits definem
caracteres:
 ASCII: 8 bits ou 256 caracteres possíveis, não
suporta conjuntos de caracteres
internacionais
 EBCDIC: 8 bits, computadores de grande
porte (IBM)
 Unicode: 8, 16 e 32bits, suporta caracteres
internacionais, 8 bits (UTF-8) é igual ao ASCII
(tradução)
 Ex.: “Hello, World”
 UTF-8: 12 bytes, UTF-16: 24 bytes, UTF-32: 48 bytes
Hierarquia de dados Informação
 Campo é um grupo de caracteres, por exemplo, o
nome de uma pessoa)
 Um registro é grupo de campos, como nome,
endereço e telefone.
 Um arquivo é grupo de registros, como, por
exemplo, um arquivo de alunos contendo registros
de cada aluno desta turma.
 O sistema de arquivos são coleções de arquivos e
bancos de dados coleções de dados.
Hierarquia de dados Informação
 Campo é um grupo de caracteres, por exemplo, o nome
de uma pessoa)
 Um registro é grupo de campos, como nome, endereço
e telefone.
 Um arquivo é grupo de registros, como, por exemplo,
um arquivo de alunos contendo registros de cada aluno
desta turma.
 O sistema de arquivos são coleções de arquivos e
bancos de dados coleções de dados.
Programação convencional e
bancos de dados empregam
estes conceitos ...
Hierarquia de dados Informação
 Volume representa a unidade de armazenamento de
dados, por exemplo CDs, DVDs, discos rígidos
(HDs) e fitas.
 Volume físico é limitado a um dispositivo de
armazenamento (HD);
 Volume lógico pode estar disperso em vários dispositivos
(Sistemas de Arquivos Distribuídos) ou co-existir com outros
num mesmo dispositivo.
Hierarquia de dados Informação
 Volume representa a unidade de armazenamento de
dados, por exemplo CDs, DVDs, discos rígidos
(HDs) e fitas.
 Volume físico é limitado a um dispositivo de
armazenamento (HD);
 Volume lógico pode estar disperso em vários dispositivos
(Sistemas de Arquivos Distribuídos) ou co-existir com outros
num mesmo dispositivo.
Quando formatamos um computador ou
pendrive devemos estabelecer, pelo menos,
uma partição. Se for necessário é possível criar
mais de uma partição num mesmo dispositivo.
Ex.: 2 partições num único HD são acessadas
por dois drives quando usamos Windows...
Hierarquia de dados Informação
bits
bytes
arquivos
volumes
Podemos então organizar estes
princípios da seguinte forma ...
Hierarquia de dados Informação
bits
bytes
palavras
caracteres
arquivos
volumes
ASCII
EBCDIC
Unicode
campos
registros
sistema de
arquivos
HD
A partir daqui podemos identificar
quais operações e atributos
podem ser feitas com um arquivo
...
Conceitos sobre arquivos
 Operações com arquivos:
 abrir, fechar, criar, destruir, copiar, renomear,
listar
 Operações com o conteúdo de arquivos:
 ler, escrever, atualizar, inserir, apagar
 Atributos de arquivos:
 tamanho, localização, acessibilidade
(restrições), tipo (executável, dados),
volatilidade (freqüência das atualizações) e
atividade (percentagem de acessos a
registros por tempo)
Conceitos sobre arquivos
 Operações com arquivos:
 abrir, fechar, criar, destruir, copiar, renomear, listar
 Operações com o conteúdo de arquivos:
 ler, escrever, atualizar, inserir, apagar
 Atributos de arquivos:
 tamanho, localização, acessibilidade (restrições), tipo
(executável, dados), volatilidade (freqüência das
atualizações) e atividade (percentagem de acessos a
registros por tempo)
Muitos destes atributos não
foram concebidos originalmente
em sisops para computação
pessoal … pois eles não eram
sisops de rede nativos (ex.:
Windows 3.11, DOS ...)
Conceitos sobre arquivos
 Operações com arquivos:
 abrir, fechar, criar, destruir, copiar, renomear, listar
 Operações com o conteúdo de arquivos:
 ler, escrever, atualizar, inserir, apagar
 Atributos de arquivos:
 tamanho, localização, acessibilidade (restrições), tipo
(executável, dados), volatilidade (freqüência das
atualizações) e atividade (percentagem de acessos a
registros por tempo)
Para que se então possa utilizar os arquivos em
um HD, por exemplo, estas operações e atributos
devem ser disponibilizadas pelo sisop, neste caso,
um subsistema chamado, sistema de arquivos
(serviço do sistema)
Sistemas de arquivos
 Um sistema de arquivos organiza os arquivos e
gerencia o acesso aos dados
 Gerenciamento de arquivos: dispõe de mecanismos para o
armazenamento, acesso (nome, localização, etc),
compartilhamento e segurança dos arquivos;
 Gerenciamento de armazenamento auxiliar: aloca espaço
para arquivos em dispositivos secundários e terciários (CD,
DVDs, etc.)
Sistemas de arquivos
 Um sistema de arquivos organiza os arquivos e
gerencia o acesso aos dados
 Mecanismos de integridade de arquivo: viabilizar a garantia
de que as informações armazenadas num arquivo não
sejam corrompidas
 Métodos de acesso: como os dados podem ser acessados
 Sequencial
 Direto
Diretórios
 Sistema de arquivo de
 nível único
 estruturado
hierarquicamente
/
↳usuarios
↳rodrigo
↳pastaA
↳relatorioA1.doc
↳pastaB
↳relatorioB1.doc
↳rafael
↳sistema
Um sistema de arquivos pode
ser organizado
hierarquicamente (como vemos
no windows explorer que
usamos diariamente) mas
também como num nível único
(sem pastas) em dispositivos
simples como celulares ...
 Nomes de caminhos
 diretório de trabalho
(./relatorioA1.doc)
 relativo
(../pastaB/relatorioB1.doc)
 absoluto
(/usuarios/rodrigo/pastaA/rel
atorioA1.doc)
/
↳usuarios
↳rodrigo
↳pastaA
↳relatorioA1.doc
↳pastaB
↳relatorioB1.doc
↳rafael
↳sistema
Podemos fazer referência à
arquivos de diferentes formas.
Quem utiliza scripts faz muito
uso de referências...
Diretórios
URIs também utilizam esse
conceito. Que faz páginas para
Web as utiliza ...
Diretórios
• Ligação ou link: entrada de diretório que se refere a um
outro arquivo ou diretório
– Flexível, simbólica (UNIX), atalho (Windows) ou apelido
(MacOS): determina o caminho até a entrada do arquivo ou
diretório
– Estrita: indica a localização física do arquivo ou diretório
Outra forma de fazer referências
é por meio de links. Ele pode ser
de dois tipos ...
Com todos esses conceitos e
informações para gerenciar um
sistema de arquivos, o sisop
precisa de uma estrutura de
dados para mantê-las … são so
metadados...
Metadados
 Metadados são informações sobre o sistema de
arquivos e protegem a integridade do mesmo por não
fornecer acesso direto ao usuários.
 Por exemplo: a localização de espaço livre no
dispositivo de armazenamento, horário da última
alteração de um arquivos, etc.
 Todo dispositivo de armazenamento deve ser
formatado, e essa operação é dependente do
sistema e:
 divide o espaço de armazenamento em blocos lógicos
 verifica o dispositivo em busca
de áreas inutilizáveis;
 apagar dados (hard);
 cria um diretório raiz;
 cria um superbloco.
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Metadados
Metadados
 O superbloco contém:
 Identificador do sistema de arquivos (tipo: NTFS, FAT, ext);
 O número de blocos do sistema de arquivos
 A localização dos blocos livres
 A localização do diretório raiz
 Data e horário que o sistema foi modificado pela última vez
 Informações indicando que o sistema deve ser verificado
Metadados
 Descritores de arquivos são registros mantidos em
memória (principal) contendo informações sobre os
arquivos abertos. A finalidade é contribuir para o
melhor desempenho do sistema.
Organização (interna) de arquivos
 Seqüencial: registros armazenados em ordem física;
 Direto: registros são acessados diretamente por
uma aplicação específica
Uma organização com acesso
direto significa que, ou a
aplicação que utiliza o arquivo
sabe como ler registros nele
(ex.: SGBD) ou é um arquivo de
dados sequencial (ex.: MP3)
Sistemas de arquivos
 Direto




 Sequencial
Registro
0
Registro
1
Registro
2
Registro
n
Deslocamento de
dois registros
Alocação de arquivos
 Alocação contígua de arquivos
 CDs, DVDs não regraváveis
 Alocação não contígua de arquivos por lista
encadeada
 Alocação tabular não contígua
 sistema de arquivos FAT
 Alocação não contígua indexada
 UNIX e NTFS
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Quando criamos, apagamos,
procuramos arquivos e
informações num dispositivo de
armazenamento, exitem
diferentes formas de alocar o
espaço...
Como dito anteriormente (na
formatação) qualquer dispositivo
de armazenamento é dividido
em blocos. Um arquivo pode ser
armazenado em 1 ou mais
blocos no dispositivo ...
Alocação de arquivos
 Alocação contígua de arquivos
 CDs, DVDs não regraváveis
 Alocação não contígua de arquivos por lista
encadeada
 Alocação tabular não contígua
 sistema de arquivos FAT
 Alocação não contígua indexada
 UNIX e NTFS
Nem sempre um arquivo consegue ser armazenado de forma
sequencial, como no HD por exemplo, isso significa que um
arquivo pode estar espalhado pelo disco. Isso fragmenta o disco e
deixa mais lento o sistema. Por isso, desfragmentamos o disco.
Mas isso é dependente das técnicas para a alocação dos blocos
que um arquivo ocupa. São elas ...
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Alocação não contígua de
arquivos por lista encadeada
Arquivo Localização
Diretório do usuário
Nesta forma de alocação temos
uma tabela (metadado) mantido
pelo sisop com uma lista de
nomes de arquivos e sua
localização no dispositivo...
Dados
A partir dela encontramos uma
porção inicial de um arquivo, que
por sua vez indica a próxima
porção, e assim por diante ...
Alocação não contígua de
arquivos por lista encadeada
Arquivo Localização
Diretório do usuário
Dados
Dados
Dados
Dados
Dados
nulo
O problema é que se quisermos
uma informação na última
porção temos que percorrer
todas as porções anteriores, o
que demanda tempo em um
dispositivo lento como um HD...
Alocação tabular não contígua
Arquivo Localização
Diretório do usuário
00
01
02
03
04
05
06
07
08
09
10
11
12
2
nulo
8
livre
livre
9
nulo
10
7
6
nulo
livre
livre
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Blocos físicos
Tabela de alocação
de blocos
Neste tipo de alocação temos
uma tabela que indica onde um
bloco está localizado, assim
resolvemos o problema anterior,
pois basta percorrer este
“índice” para encontrar o local

Arquivo Localização
Diretório do usuário
00
01
02
03
04
05
06
07
08
09
10
11
12
2
nulo
nulo
8
livre
livre
9
nulo
10
7
6
6
nulo
00
livre
livre
01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Blocos físicos
Tabela de alocação
de blocos
Alocação tabular não contígua
Os problemas desta abordagem
são:
1) a lista pode ficar
incrivelmente grande
2) se ela for corrompida (falha
física ou lógica), muita
informação pode ser perdida ...
Alocação não contígua indexada
Arquivo Localização
Diretório do usuário
Bloco de
índice
Blocos
de dados
Temos então a seguinte idéia:
utilizarmos blocos no dispositivo
que são índices para os blocos
que armazenam os dados
Se o índice ficar cheio, não há
problema ...
Bloco de
continuação
de índices
Blocos
de dados
Estas idéias são para implementar a
alocação de espaços (então
ocupados) no dispositivo … mas
como gerenciamos os espaços
livres... ? Veremos dois métodos ...
Gerenciamento de espaço livre
 Os dois métodos mais comuns para controlar o
espaço livre são:
 Lista de livres
 lista encadeada de blocos livres.
 Mapa de bits
 mapa de bits para cada bloco livre (zero) ou em uso (um)
Lista de livres
Bloco de
índice
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Este método é
semelhante ao
último método de
alocação ...
Bloco de
continuação
da lista
de livres
Mapa de bits
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
0 1 1 1
1 0 0 0
1 1 1 1
1 0 0 1
Mapa de bits
Neste método temos uma
estrutura de dados que
armazena bits, cada bit nesta
estrutura representa um bloco
no dispositivo … se ela estiver
em 0 o bloco está livre, caso
contrário esta ocupado ...
A grande vantagem deste
método é que ele utiliza pouca
memória e é rápido … é
amplamente utilizado ...
Buenas, como
sugestão deixo a
todos a tarefa de
identificar os
metadados aqui
apresentados no
sisop do seu
computador …
mas cuidado para
não corrompê-los
;-)