Beruflich Dokumente
Kultur Dokumente
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Plo Universitrio de Rio das Ostras - PURO
Sistema de Arquivos
Parte do Sistema Operacional mais visvel ao usurio Os arquivos de um sistema computacional so manipulados por meio de chamadas (system calls) ao Sistema Operacional;
Sistema de Arquivos
Sistema de Arquivos
Para atender a esses requisitos, informaes so armazenadas em discos (ou alguma outra mdia de armazenamento) em unidades chamadas arquivos; Processos podem ler ou escrever em arquivos, ou ainda criar novos arquivos;
Informaes armazenadas em arquivos devem ser persistentes, ou seja, no podem ser afetadas pela criao ou finalizao de um processo;
Sistema de Arquivos
Sistema de Arquivos
Arquivos:
Nomes; Estrutura; Tipos; Acessos; Atributos; Operaes;
Quando arquivos so criados, nomes so atribudos a esses arquivos, os quais passam a ser referenciados por meio desses nomes; Tamanho: at 255 caracteres;
Restrio: MS-DOS aceita de 1-8 caracteres;
especiais
podem
Caracteres permitidos: A-Z, a-z, 0-9, $, %, , @, {, }, ~, `, !, #, (, ), & Caracteres no permitidos: ?, *, /, \, , |, <, >, :
Alguns Sistemas Operacionais so sensveis a letras maisculas e minsculas (case sensitive) e outros no;
UNIX (e consequentemente, Linux) case sensitive:
Ex.: exemplo.c diferente de Exemplo.c;
Win95/Win98/WinNT/Win2000/WinXP/WinVista
No
herdaram
10
Uma extenso, geralmente, associa o arquivo a algum aplicativo (associao feita pelo aplicativo):
.doc Microsoft Word; .c Compilador C;
11
estruturados
de
c) rvores de registros (tamanho variado), cada qual com um campo chave em uma posio fixa:
SO decide onde colocar os arquivos;
13
a)
b)
c)
14
Arquivos regulares so aqueles que contm informaes dos usurios; Diretrios so arquivos responsveis por manter a estrutura do Sistema de Arquivos; Arquivos especiais de caracteres so aqueles relacionados com E/S e utilizados para modelar dispositivos seriais de E/S;
Ex.: impressora, interface de rede, terminais;
Binrio:
Todo arquivo no ASCII; Possuem uma estrutura interna conhecida pelos aplicativos que os usam; Ex.: programa executvel;
16
SOs mais antigos ofereciam apenas acesso sequencial no disco leitura em ordem byte a byte (registro a registro);
SOs mais modernos fazem acesso aleatrio aos arquivos, cujos bytes ou registros podem ser acessados em qualquer ordem;
Acesso feito por chave; Mtodos que podem ser usados para especificar onde iniciar leitura:
Operao Read posio do arquivo em que se inicia a leitura; Operao Seek a operao seek estabelece a posio atual; depois de um seek, o arquivo pode ser lido sequencialmente a partir de sua posio atual. Usado no Linux e Windows
17
Alm do nome e dos dados, todo arquivo tem outras informaes associadas a ele atributos; A lista de atributos varia de SO para SO, mas com algumas categorias, como os de proteo, so comuns a todos;
18
20
Data e hora que o arquivo foi criado Data e hora do ltimo acesso ao arquivo Data e hora da ltima modificao do arquivo
Tamanho Mximo
21
22
Alguns SOs permitem que arquivos sejam mapeados diretamente no espao de endereamento (virtual) de um processo em execuo acesso mais rpido; System Calls: Map e unmap;
em
sistemas
que
suportam
23
Problemas:
Difcil prever o tamanho de arquivos de sada; Compartilhamento de arquivos entre diferentes
24
25
26
Apenas um diretrio contm todos os arquivos diretrio raiz (root directory); Computadores antigos utilizavam esse mtodo, pois eram monousurios; Exceo: CDC 6600 supercomputador que utilizava-se desse mtodo, apesar de ser multiusurio; Vantagens:
Simplicidade; Eficincia;
27
Diretrio raiz
Desvantagens:
Sistemas multiusurios: Diferentes usurios podem criar arquivos como mesmo nome; Exemplo:
Usurios A e B criam, respectivamente, um arquivo mailbox;
Usurio B sobrescreve arquivo do usurio A
28
Diretrio raiz
Diretrio do usurio
A
A A
B
B C
C
C C
Arquivos
29
Hierarquia diretrios;
de diretrios
rvores
de
Usurios podem querer agrupar seus arquivos de maneira lgica, criando diversos diretrios que agrupam arquivos;
30
Diretrio do usurio
A B A B B B B C C C
C C C
C
Sub-diretrios do usurio
31
Links so criados;
32
33
34
Solues:
Primeira soluo: os endereos de disco no esto relacionados nos diretrios, mas em uma estrutura de dados (i-node) associada ao prprio arquivo. Assim, os diretrios apontam para essa estrutura; (UNIX)
Ligao Estrita (hard link); Problema com essa soluo: o dono do arquivo que est sendo compartilhado apaga o arquivo;
35
Segunda Soluo: Ligao Simblica B se liga ao arquivo de C criando um arquivo do tipo link e inserindo esse arquivo em seu diretrio;
Somente o dono do arquivo tem o ponteiro para o i-node; O arquivo link contm apenas o caminho do arquivo ao qual ele est ligado; Assim, remoes no afetam o arquivo; Problema: Sobrecarga; Geralmente um i-node extra para cada ligao simblica;
37
38
39
Caminho relativo utilizado em conjunto com o diretrio corrente; Usurio estabelece um diretrio como sendo o diretrio corrente; nesse caso caminhos no iniciados no diretrio raiz so tido como relativos ao diretrio corrente;
Exemplo:
cp /usr/ast/mailbox /usr/ast/mailbox.bak Diretrio corrente: /usr/ast cp mailbox mailbox.bak
40
41
Exemplos de operaes do sistema de arquivos: Create; Delete; Opendir; Closedir; Readdir; Rename; Link (para um arquivo aparecer em mais de um diretrio); Unlink;
42
Implementao do Sistema de Arquivos: deve estabelecer as formas e operaes para as seguintes operaes:
Como arquivos e diretrios so armazenados;
Como o espao em disco gerenciado; Como tornar o sistema eficiente e confivel;
43
Arquivos so armazenados em discos; Discos podem ser divididos em uma ou mais parties, com sistemas de arquivos independentes; Setor 0 do disco destinado ao MBR Master Boot Record; que responsvel pela a tarefa de boot do computador;
MBR possui a tabela de partio, com o endereo inicial e final de cada partio; BIOS l e executa o MBR;
44
MBR
(pode
variar
1 localizar a partio ativa; 2 ler o primeiro bloco dessa partio, chamado bloco de boot (boot block); 3 executar o bloco de boot ;
45
MBR
Gerenc. de Espao livre Arquivos Diretrios
Boot
Super bloco
I-nodes
Raiz
Contm parmetros (tipo do SA, nmero de blocos) sobre o sistema de arquivos e carregado na memria
46
MBR
Gerenc. de Espao livre Arquivos Diretrios
Boot
Super bloco
I-nodes
Raiz
Contm informaes sobre os blocos livres do disco (mapa de bits ou lista encadeada)
47
MBR
Gerenc. de Espao livre Arquivos Diretrios
Boot
Super bloco
I-nodes
Raiz
MBR
Gerenc. de Espao livre Arquivos Diretrios
Boot
Super bloco
I-nodes
Raiz
MBR
Gerenc. de Espao livre Arquivos Diretrios
Boot
Super bloco
I-nodes
Raiz
Alocao com lista encadeada utilizando uma tabela na memria (FAT); I-Nodes;
51
Alocao contnua:
Tcnica mais simples; Armazena arquivos de forma contnua no disco;
Ex.: em um disco com blocos de 1kb um arquivo com 50kb ser alocado em 50 blocos consecutivos;
52
Alocao contnua:
37 Blocos 4 3 6 5 12 6
Livre
Livre
53
Alocao contnua:
Vantagens:
Simplicidade: somente o endereo do primeiro bloco e nmero de blocos no arquivo so necessrios; Desempenho para o acesso ao arquivo: acesso sequencial;
54
55
Vantagem:
No se perde espao com a fragmentao externa;
56
Arquivo A
1 7 2 2 3 10 4 12
0
Blocos fsicos
Blocos do arquivo
Arquivo B
1 2 3
0
Blocos fsicos
11
14
57
Servio de diretrio responsvel por manter o incio do arquivo (bloco inicial); MS-DOS e famlia Windows 9x (exceto WinNT, Win2000 e WinXP - NTFS);
58
59
10 11 7 3 2 12 14 -1 -1
Arquivo A 4 7 2 10 12
Arquivo B 6 3 11 14
I-nodes:
Cada arquivo possui uma estrutura de dados chamada inode (index-node) que lista os atributos e endereos em disco dos blocos do arquivo;
Assim, dado o i-node de um arquivo possvel encontrar todos os blocos desse arquivo;
Se cada i-node ocupa n bytes e k arquivos podem estar aberto ao mesmo tempo o total de memria ocupada kn bytes; UNIX e Linux;
61
Desvantagem:
O tamanho do arquivo pode aumentar muito
Soluo: reservar o ltimo endereo para outros endereos de blocos;
62
Endereo do bloco 6
Endereo do bloco 7 Endereo do bloco de ponteiros Bloco com endereos adicionais
63
64
I-node 26 modo tamanho hora 406 Bloco 406 tem o sub-diretrio /usr/ant
I-node 72 modo tamanho hora 503 O arquivo texto.txt est no bloco 503
Quando um arquivo aberto, o Sistema Operacional utiliza o caminho fornecido pelo usurio para localizar o diretrio de entrada;
O diretrio de entrada prov as informaes necessrias para encontrar os blocos no disco nos quais o arquivo est armazenado:
Endereo do arquivo inteiro (alocao contnua);
O servio de diretrio responsvel por mapear o nome ASCII do arquivo na informao necessria para localizar os dados
66
O servio de diretrio tambm responsvel por manter armazenados os atributos relacionados a um arquivo:
a) Entrada do Diretrio: Diretrio consiste de uma lista de entradas com tamanho fixo (uma para cada arquivo) contendo um nome de arquivo (tamanho fixo), uma estrutura de atributos de arquivos, e um ou mais endereos de disco; MS/DOS e Windows;
67
a)
b)
69
- Cada nome do arquivo preenchido de modo a ser composto por um nmero inteiro de palavras - Quando no ocupar toda a palavra, preenche de modo a completar a palavra (parte sombreada); Problema: se arquivo removido, um espao em branco inserido e pode ser que o nome de outro arquivo no possua o mesmo tamanho
70
. . a)
Atributos A1
Ponteiro p/ nome A12 Atributos A2 p e b p o l r c u e n o t d r n j s e
HEAP
. . a)
. . b)
71
Busca em diretrio:
Linear lenta para diretrios muito grandes; Uma tabela Hash para cada diretrio:
O nome do arquivo submetido a uma funo hash para selecionar uma entrada na tabela hash; Cria-se uma lista encadeada para todas as entradas com o mesmo valor hash; Vantagem: busca mais rpida; Desvantagem: gerenciamento mais complexo;
73
Se for muito pequeno, um arquivo ir ocupar muitos blocos, tornando o acesso/busca lento (fragmentao externa);
Assim, o tamanho do bloco tem uma grande influncia na eficincia de utilizao do espao em disco e no tempo de acesso(desempenho);
74
Curva tracejada - Taxa de Dados x Tamanho do Bloco Curva contnua - Utilizao do disco x Tamanho do Bloco
75
Conflito entre performance (desempenho) e utilizao do disco blocos pequenos contribuem para um baixo desempenho, mas so bons para o gerenciamento de espao em disco;
76
Desvantagens:
Requer mais espao se existem muitos blocos livres (disco quase vazio); Dificulta alocao contnua; No ordenao;
77
78
Mapa de bits
79
Controle de cotas do disco: feito para que um usurio no ocupe muito espao do disco;
Idia o administrador do sistema atribui para cada usurio uma cota mxima de espao;
Na memria principal:
Tabela de arquivos abertos com ponteiro para uma tabela que mantm o registro de todas as cotas do usurio;
80
81
Desempenho:
Caching;
82
83
Backups
Cpia de um arquivo ou conjunto de arquivos mantidos por questo de segurana;
Mdia mais utilizada fitas magnticas;
84
85
Comprimir os dados antes de copi-los; Dificuldade em realizar backup com o sistema de arquivos ativo:
Deixar o sistema off-line: nem sempre possvel; Algoritmos para realizar snapshots no sistema: salvam estado atual do sistema e suas estruturas de dados;
86
87
Cuidados: Links devem ser restaurados somente uma vez; Como a lista de blocos livres no copiada, ela deve ser reconstruda depois da restaurao;
88
89
Fase 2 (b): desmarcar diretrios que no tenham arquivos/subdiretrios abaixo deles modificados;
Diretrios desmarcados: 10, 11, 14, 27, 29, 30;
Fase 3 (c): varrer os i-nodes (em ordem numrica) e copiar diretrios marcados;
Diretrios copiados: 1, 2, 5, 6, 7, 16, 18, 19, 20, 22, 23;
90
Consistncia dados no sistema de arquivos devem estar consistentes; Crtico: blocos de i-nodes, blocos de diretrios ou blocos contendo a lista de blocos livres/mapa de bits de blocos livres; Diferentes sistemas possuem diferentes programas utilitrios para lidar com inconsistncias:
UNIX: fsck; Windows: scandisk ;
92
93
b)
2 15 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1
Blocos em uso
Blocos livres
Blocos livres
c)
Blocos em uso
Blocos livres
Bloco 4 duplicado na lista de livres Soluo: reconstruir a lista; Essa situao s ocorre se existir uma lista encadeada de blocos livres ao invs de um mapa de bits.
95
Blocos livres
d)
5 15 0 1 1 0 1 0 2 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
Bloco 5 duplicado na lista de em uso (dois arquivos) Problemas: - Se um arquivo for removido, o bloco vai estar nas duas listas; - Se ambos forem removidos, o bloco vai estar na lista de livres duas vezes; Soluo: alocar um bloco livre, copiar para esse bloco o contedo do bloco 5 e atribuir esse bloco a um dos arquivos, avisando o administrador/usurio do problema;
96
97
Se for menor:
Problema: quando chegar em zero, o sistema marca o i-node como no usado e libera os blocos, mas ainda tem arquivo apontando para aquele i-node
Soluo para ambos: atribuir o valor do contador de arquivos contagem de ligaes do i-node;
98
FAT (diversas verses) e NTFS; I-node do Unix e NFS; Extended File System (EXT2, EXT3, EXT4), criado e 1992 como uma evoluo do Unix File System (UFS);
ReiserFS;
99
Limite de nome de arquivo 8 + 3 (8.3) caracteres; Hierarquia de diretrios rvore comea no diretrio raiz (root directory); No existe o conceito de diferentes usurios, portanto, todos os arquivos podem ser acessados por todos os usurios; Cada entrada de diretrio possui um tamanho fixo de 32 bytes;
100
Nome do arquivo
Extenso Atributos Hora* 5 bits para segundos; 6 bits para minutos; 5 bits para horas
Nmero do 1 bloco Data 5 bits para dia; 4 bits para ms; 7 bits para ano; Limite: 2107
Trs verses: FAT12, FAT16, FAT32 (VFAT), dependendo de quantos bits so utilizados para armazenar cada posio na FAT; FAT12:
Tamanho de bloco: 512bytes, 1K, 2K e 4K;
FAT16:
Tamanho de bloco: 8k, 16k e 32k; Tamanho de partio at 2Gb;
102
FAT32: iniciou-se com a segunda verso do Windows95 (Win95 OSR2 OEM Service Release 2)
Tamanho de bloco: 4k, 8k, 16k e 32k; Tamanho de partio 2Tb;
Controle de blocos livres feito utilizando a FAT; Windows98 utiliza FAT32 e permite arquivos com nomes longos (mais de 8 caracteres);
103
2 2
4
Tamanho
Nome do arquivo
Sec* Extenso Hora e data da ltima Atributos modificao Hora e data de criao ltimo acesso
00010011
106
8kb
16kb 32kb
512Mb
1024Mb (1Gb) 2048Mb (2Gb)
2Tb
2Tb 2Tb
107
108
109
essa
Windows2000 4Kb;
Baseado no conceito de transaes tarefa cumprida at o fim ou abortada; Suporte criptografia de arquivos driver EFS (encrypting file system); chave de 128 bits; Links simblicos;
110
111
112
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reservado
$Extend $Upcase $Secure $BadClus $Boot $Bitmap $ $AttrDef $Volume $LogFIle $MftMirr $Mft Extenses: cotas, etc. Tabela de converso de maisculas Descritor de Segurana p/ arquivos Lista blocos defeituosos Carregador de Boot Mapa de bits de blocos ocupados Diretrio-raiz Definies de Atributos Arquivo de Volume Arquivos de Log para recuperao Cpia espelho da MFT Tabela de arquivos-mestre
Metadados
113
Header registro
Info
Nome
0 9 20 4 64 2 80 3 Sem uso
114
Campo Info
Campo de tamanho fixo e obrigatrio, contendo:
Proprietrio do arquivo Informaes de segurana Marcadores de tempo Contador de ligaes Bits indicando se o arquivo apenas de leitura Etc
Campo Nome
Unicode Tamanho varivel
115
116
117
Sistemas de Arquivos
Caractersticas FAT16 DOS, Win9x, NT 2Gb 65000 Conjunto bsico No No FAT32 Win98, Win2000, WinXP, Win Vista 2Tb Ilimitado Conjunto bsico No No NTFS NT4, Win2000, WinXP, WinVista, 7, 8 Ilimitada Ilimitado Vrios Sim Sim
118
Sistemas
119
64
Sistemas de Arquivos
de arquivos
Ext2FS, Ext3FS, Ext4FS, Xia; CFS, TCFS, VFS, GFV, NFS, HPFS, SYSV; ReiserFS; JFS (IBM);
121
Sistemas de Arquivos
extFS (Extended File System - 1992); ext2FS (Second Extended File System 1993);
At Red Hat 7.2;
ext4FS
Mais uma atualizao do ext3
122
Tamanho de blocos: 1kb, 2kb, 4kb; Estrutura hierrquica de diretrios; Assim como o UNIX, o LINUX tambm utiliza a estrutura de i-nodes vinculada a cada arquivo; Controle de blocos livres mapa de bits; Tanto o mapa de bits quanto a tabela de i-nodes so armazenados no disco;
123
Kernel
ExtFS Ext2FS Cache Ext3FS
Drivers Controlador
Hardware
124
Caractersticas:
5% dos blocos so armazenados para o administrador do sistema (root); Permite atualizaes sncronas; (write-through do MS-DOS); Links simblicos; Controla o status do sistema de arquivos utilizando um Superbloco;
125
Limite de tamanho de partio: 4Tb; Limite de tamanho de nome de arquivos: 255 caracteres (podendo ser estendido para 1012);
126
Bitmap I-nodes
Tabela I-nodes
Blocos de dados
Tamanho e quantidade de blocos; Localizao dos i-nodes; Nmero de bloco livres; Apontador para o 1 i-node (/) ; Outras informaes;
127
Bitmap I-nodes
Tabela I-nodes
Blocos de dados
Estrutura de cada grupo; Nmero do bloco no qual est armazenado o bitmap para blocos ocupados; Nmero de diretrios do grupo;
128
Bitmap I-nodes
1 bloco
Tabela I-nodes
Blocos de dados
n blocos
n blocos
129
Os i-nodes so criados no momento da formatao lgica do dispositivo; Assim, possvel redimensionar o nmero de inodes de acordo com a capacidade do dispositivo e o tipo e tamanho de arquivos que sero nele armazenados;
131
O GNU/Linux mantm para cada sistema de arquivos montado uma cpia do superbloco em memria RAM; A chamada de sistema sync atualiza os dados dos superblocos que esto armazenados em cache para seus locais em disco, sincronizando as informaes sobre o sistema de arquivos;
Ext2 a cada 30 segundos;
132
Ext2FS possui uma baixa tolerncia falhas; Ext3FS: principal diferena journaling;
O sistema mantm logs dos eventos, permitindo uma recuperao rpida;
133
A introduo do "journal" em sistemas EXT3 modifica a abordagem de recuperao de sistemas de arquivos (fsck) e reduz o tempo de parada do sistema para valores muito baixos;
Uma rea reservada para a alocao do "journal" ou "log;
134
135
Trs modos:
Journaling (Registro de aes): Grava todas as mudanas e usa um arquivo de registros de aes maior.
o mais lento, mas possui maior capacidade de evitar perdas;
Ordered (Ordenado): Grava somente mudanas nos metadados (arquivos que possuem informaes sobre outros arquivos), mas registra as atualizaes nos arquivos de dados antes de fazer as mudanas associadas ao sistema de arquivos.
o padro do EXT3;
136
137
Criado por Hans Reiser e mantido pela NameSys (http://www.namesys.com); Arvores balanceadas e finitas (balanced tree) (B*) so usadas para organizar o sistema de arquivos (verso melhorada de rvores B+); Possui suporte a journaling; Tamanho de bloco padro: 4kbytes; Alto desempenho com arquivos pequenos, pois seus dados podem ser armazenados prximos aos metadados, ento, ambos podem ser recuperados com um pequeno movimento da cabea de leitura do disco;
138
O ReiserFS uma camada semntica com mtodos e funes que so referenciados para executar tarefas no sistema de arquivos; Trata toda a partio como se fosse uma nica tabela de banco de dados contendo diretrios, arquivos e metadados dentro de uma mesma rvore;
Tudo que est armazenado na rvore possui uma chave que facilita pesquisas;
139
Guarda apenas informaes sobre os metadados e no as informaes dos arquivos em si (como faz o Ext3);
Com isso, o journal armazena menos informaes, aumentando as chances de no recuperar dados que estavam sendo gravados no momento de uma falha; Mas melhora o desempenho de acesso;
Foi conhecido por ser utilizado pela distribuio Linux Suse, at 2006, que passou a utilizar o ext3 Desvantagem: alto consumo de CPU (no mnimo 7%) Cdigo fonte disponvel em www.kernel.org
140