FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Sistema de Arquivos
Introdução
Requisitos para armazenamento de informação:
• armazenar quantidade grande de informação
• manter informação após o fim de um processo
• múltiplos processos podem acessar informações
concorrentemente
Arquivos:
• persistente – não é afetada pela criação ou
término de processos
• gerenciada pelo SO
Todas as aplicações precisam armazenar e recuperar informações. O espaço de endereçamento virtual pode ser pequeno demais para aplicações como reservas de passagens aéreas
ou bancos. Além disso, as informações mantidas na memória são
perdidas com o término do processo e múltiplos processos não
acessam a mesma informação ao mesmo tempo.
A solução para armazenar a informação em discos é criar arquivos. A informação deve ser persistente, ou seja, um arquivo
desaparecerá quando for removida explicitamente. O sistema de
arquivos (parte do SO) é responsável pelo modo como arquivos
são estruturados, nomeados, acessados, usados, protegidos e implementados.
O arquivo pode também ser estruturado como uma árvore de registros, cada um contendo um campo-chave e a árvore é ordenada
por esse campo, facilitando a busca eficiente (figura (c)). Esse
último tipo de arquivo é utilizado em computadores de grande
porte.
Extension Meaning
file.bak
Backup file
file.c
C source program
Compuserve Graphical Interchange Format image
file.gif
file.hlp
Help file
file.html
World Wide Web HyperText Markup Language document
Still picture encoded with the JPEG standard
file.jpg
file.mp3
Music encoded in MPEG layer 3 audio format
file.mpg
Movie encoded with the MPEG standard
Object file (compiler output, not yet linked)
file.o
file.pdf
Portable Document Format file
file.ps
PostScript file
Input for the TEX formatting program
file.tex
file.txt
General text file
file.zip
Compressed archive
Tipos de arquivos
• regulares
• diretórios
Arquivos
• caracter
• nome, extensão de arquivos
– terminais, impressoras e rede
• estrutura de arquivos:
1 Byte
• bloco
1 Record
Cat
Cow
Dog
Hen
(a)
Ant
Fox
Pig
Goat
Lion
Owl
Ibis
(b)
– discos
Pony
Rat
Worm
Lamb
(c)
As regras exatas para nomear um arquivo variam de sistema
para sistema. Muitos sistemas permitem nomes com até 255
caracteres permitindo dı́gitos e caracteres especiais. A extensão
do arquivo é separada do nome através de um “.” (ponto). O
compilador C exige que os arquivos a serem compilados terminem
com .c. Algumas extensões tı́picas estão na tabela a seguir.
O arquivo pode ser uma seqüencia desestruturada de bytes
e o SO não sabe o que o arquivo contém, o que proporciona
maior flexibilidade (figura (a)). Unix e Windows utilizam esta
estratégia. O arquivo também pode ser estruturado como uma
seqüência de registros de tamanho fixo que podem ser lidos ou sobrescritos, mas nenhum sistema atual funciona assim (figura (b)).
Profa. Tiemi Christine Sakata
Muitos SO suportam vários tipos de arquivos. Os arquivos
regulares são aqueles que contem informação do usuário. Os
diretórios são arquivos do sistema que mantém a estrutura do
sistema de arquivos. Os arquivos especiais de caracteres são relacionados a E/S e para modelar dispositivos de E/S. Os arquivos
especiais de blocos são usados para modelar discos.
Arquivos regulares são, em geral, ou ASCII ou binários. Os
arquivos ASCII são constituı́dos de linhas de texto e podem ser
mostrados e impressos da mesma forma que são editados. Os arquivos binários possuem uma estrutura interna conhecidos pelos
programas que o usam.
1
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Tipos de Arquivos
16 Bits
Magic number
Atributos de Arquivos
Module
name
Header
Text size
Header
Data size
Date
BSS size
Symbol table size
Object
module
Owner
Protection
Entry point
Size
Flags
Header
Text
Object
module
Data
• Tipo – necessárias para sistemas que suportam tipos
diferentes de arquivo
• Posição – ponteiro para posição do arquivo no
dispositivo
• Tamanho – tamanho atual do arquivo
Header
• Proteção – controle de acesso (RWX)
Relocation
bits
Symbol
table
• Nome – informação mantida de forma legı́vel para o
usuário
• Hora, data e identificação de usuário – mantidas para
proteção, segurança e monitoração de uso.
Object
module
(a)
(b)
Na figura (a), temos um arquivo binário executável com 5
partes: cabeçalho (número mágico, que identifica o arquivo como
executável; tamanho das partes do arquivo, endereço inicial de
execução e alguns bits de sinalização), texto, dados, bits de relocação (para ser carregado na memória) e tabela de sı́mbolos
(para depuração).
Na Figura (b) temos um exemplo de repositório (archive) do
Unix. Consiste em uma coleção de procedimentos de bibliotecas compilados, mas não ligados. Cada um possui um cabeçalho
com nome, data da criação, proprietário, código de proteção e
tamanho.
Acesso aos Arquivos
• acesso seqüencial – lê todos os bytes a partir
do inı́cio (fita magnética)
• acesso aleatório (relativo) – bytes lidos em
qualquer ordem:
– read – indica a posição inicial para leitura
do arquivo
– seek – atualiza a posição atual. Após um
seek a leitura pode ser feita a partir da
posição atual
O acesso seqüencial foi muito utilizado quando o meio de armazenamento era a fita magnética e atualmente continua sendo
usado pela maioria dos editores de texto e compiladores. Um
processo poderia ler todos os bytes ou registros de um arq. inclusive poderia voltar ao ponto de partida, mas nunca saltando
ou lendo fora de ordem.
Quando os discos começaram a ser usados para armazenar
arquivos, tornou-se possı́vel ler bytes ou registros em qualquer
ordem (acesso aleatório). Duas operações são utilizadas para especificar o ponto inicial da leitura: read (indica a posição inicial
para leitura do arquivo) e seek (atualiza a posição atual). São
úteis para acesso imediato a grandes quantidades de informações
(banco de dados).
Profa. Tiemi Christine Sakata
Attribute
Meaning
Protection
Who can access the file and in what way
Password
Password
needed
to
access
file
the
Creator
ID
of
the
person
who
created
the
file
Owner
Current owner
Read-only
flag
0
for
read/write;
1
for
read
only
Hidden
flag
0for
normal;
1for
do
not
display
in
listings
System flag
0 for normal files; 1 for system file
flag
0for
has
been
backed
up;
1for
needs
to
be
backed
up
Archive
ASCII/binary
flag
0for
ASCII
file;
1for
binary
file
Random access flag 0 for sequential access only; 1 for random access
flag
0for
normal;
1for
delete
file
on
process
exit
Temporary
Lock
flags
0for
unlocked;
nonzero
for
locked
Record length
Number of bytes in a record
position
Offset
ofthe
key
within
each
record
Key
Key
length
Number
of
bytes
in
the
key
field
Creation time
Date and time the file was created
oflast
access
Date
and
time
the
file
was
last
accessed
Time
Time
of
last
change
Date
and
time
the
file
has
last
changed
Current size
Number of bytes in the file
Maximum
size
Number
of
bytes
the
file
may
grow
to
Operações com Arquivos
1. Create
7. Append
2. Delete
8. Seek
3. Open
9. Get attibutes
4. Close
10. Set attributes
5. Read
11. Rename
6. Write
1. Arquivo criado sem dados.
2. Remoção do arquivo e liberação de espaço em disco.
3. Carrega na memória os atributos e a lista de endereços de
disco. Chamada sempre antes do uso do arq.
4. Libera espaço na tabela interna. Força a escrita do último
bloco do arq.
5. Dados são lidos do arquivo.
6. Dados são escritos no arquivo.
7. Adiciona dados no final do arquivo.
8. Acesso aleatório aos arquivos.
9. Verifica os atributos de um arquivo.
10. Altera atributos de um arquivo.
11. Altera o nome de um arquivo existente.
2
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Diretório em Dois Nı́veis
Estrutura de Diretórios
Root directory
Diretórios ou pastas:
User
directory
• em muitos sistemas são também arquivos
A
• residem no disco
• Informações: nome, tipo, endereço, tamanho
atual, tamanho máximo, data do último
acesso, data da última atualização, id do
criador, proteção
A
B
A
C
C
B
C
C
Files
• facilidade na localização de arquivos
Para controlar os arquivos, os sistemas de arquivos têm em
geral, diretórios ou pastas que em muitos sistemas também são
arquivos. Tanto os arquivos quanto os diretórios residem no
disco. O dispositivo de diretório registra informações como nome,
tipo, endereço, tamanho atual, tamanho máximo, data do último
acesso, data da última atualização, id do criador e proteção.
Organizar os arquivos em diretórios pode melhorar a eficiência,
pois os arquivos podem ser localizados rapidamente. Além disso,
dois usuários podem ter o mesmo nome para arquivos diferentes
ou podemos ter cópias do mesmo arquivo.
Oferece a cada usuário, um diretório privado. Assim, os nomes
escolhidos por um usuário não interferem nos nomes escolhidos
por outro usuário. Essa estrutura pode ser usado em um computador multiusuário ou em uma rede simples (com um servidor
comum de arquivos).
Neste tipo de estrutura, é necessário um procedimento de
identificação, no qual cada usuário especifica um nome ou identificador. Assim, por exemplo, open("x"), abre o arquivo x do
usuário.
Muitas vezes, um usuário pode precisar ter acesso a outros
arquivos além dos seus próprios. Por exemplo, os arquivos executáveis podem ficar em um diretório sem a necessidade de ter
cópias desses arquivos para todos os usuários. Para permitir
acesso de arquivos entre os diferentes usuários, pode ser feita
uma extensão fornecendo alguma indicação sobre o proprietário
do arquivo (open("tiemi/x")).
Diretório de Um Nı́vel
Diretórios Hierárquicos
• Um diretório contendo todos os arquivos
• Simples
Root directory
• Usuários diferentes não podem usar o mesmo
nome
Root directory
A
B
A
A
4 arquivos
3 proprietários
A
User
directory
C
B
B
B
C
B
B
Profa. Tiemi Christine Sakata
C
C
C
User subdirectories
C
A maneira mais simples de sistema de diretório é ter um diretório contendo todos os arquivos. A vantagem desse sistema
é a simplicidade na busca (feita em um único local). O problema é que usuários diferentes não podem dar o mesmo nome
para arquivos diferentes pois haverá sobrescrita de arquivo. Conseqüentemente, esse esquema não é utilizado em sistemas multiusuário.
C
C
C
C
User file
O sistema de diretório em dois nı́veis elimina o conflito de
nomes entre usuários, mas não é satisfatório para usuários com
um número muito grande de arquivos. É comum aos usuários
querer agrupar seus arquivos assumindo critérios lógicos.
A capacidade dos usuários criar um número arbitrário de subdiretórios propicia uma ferramenta poderosa de estruturação para
organizar seu trabalho. Quase todos os modernos sistemas de arquivos são organizados assim.
3
FACENS - Faculdade de Engenharia de Sorocaba
Caminhos
Sistemas Operacionais
Operações Realizados no Diretório
/
bin
Root directory
etc
lib
1. Procurar um arquivo
usr
tmp
bin
etc
lib
usr
tmp
ast
2. Criar um arquivo
3. Excluir um arquivo
jim
lib
4. Listar um diretório
ast
lib
jim
dict.
/usr/jim
5. Renomear um arquivo
6. Percorrer o sistema de arquivos
Em sistemas de arquivos organizados em forma de árvore, o
nome dos arquivos pode ser especificados de duas formas: caminho absoluto (formado pelo caminho entre o diretório raiz e o
arquivo) e caminho relativo (os nomes que não começam com o
diretório raiz são assumidos como relativos ao diretório atual).
Caminhos
• Caminho absoluto:
– Windows: \usr\ast\caixapostal
– Unix: /usr/ast/caixapostal
– MULTICS: >usr>ast>caixapostal
• Caminho relativo:
– Unix: cp caixaposta caixapostal.bak
· – diretório atual
·· – diretório acima (pai)
1. Pesquisar uma estrutura de diretórios para encontrar um
arquivo.
2. Criar novos arquivos e adicioná-los em um diretório.
3. Remoção de um arquivo do diretório.
4. Listar os arquivos em um diretório e o conteúdo da entrada
no diretório para cada arquivo na lista
5. renomear um arquivo talvez permita que a sua posição dentro da estrutura de diretório seja alterada.
6. percorrer todos os arquivos de todos os diretórios.
Operações com Diretórios
1. Create – cria um diretório
2. Delete – remove um diretório
3. Opendir – lê diretórios
4. Closedir – fecha um diretório
5. Readdir – retorna próx. entrada do dir. aberto
6. Rename – renomeia o nome do diretório
7. Link – ligação de arquivos em dirs. diferentes
8. Unlink – remove a ligação
A forma relativa é muitas vezes mais conveniente, porém, alguns programas podem necessitar ter acesso a um arquivo sem
se preocupar qual o diretório atual de trabalho. Um corretor ortográfico por exemplo, pode precisar ler /usr/lib/dicionario
e se o caminho absoluto for utilizado, a leitura funcionará independente do diretório atual.
Cada processo tem seu diretório atual de trabalho. Assim, um
processo pode alterar seu diretório atual e depois sair sem afetar
outros processos.
Profa. Tiemi Christine Sakata
1. Cria um diretório vazio.
2. Remove um diretório vazio.
3. O diretório deve ser aberto antes de ser lido (analogamente
a leitura de arquivos).
4. Diretório lido deve ser fechado para liberar espaço na tabela
interna.
5. Retorna a próxima entrada em um diretório aberto.
6. Os diretórios podem ter seu nome trocado.
7. A ligação de arquivos permite que um arquivo apareça em
mais de um diretório.
8. Se o arquivo sendo desligado estiver presente em apenas um
diretório, ele será removido do sistema de arquivos. Caso
contrário, somente o nome do caminho especificado será
removido.
4
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Existem outras operações como, por exemplo, para gerenciar
a informação de proteção associada ao diretório.
Layout
Entire disk
Disk partition
Partition table
MBR
Links
/
/
bin
dev
etc
lib
tmp
usr
bin
dev
etc
lib
tmp
usr
fred
lisa
a
b
c
x
y
z
Boot block
(a)
I-nodes
Root dir
Files and directories
• Tabela de partições
lisa
Link
Free space mgmt
• MBR (Master Boot Record)
fred
a
b
c
x
Super block
x
y
z
(b)
Na figura acima, o arquivo x pode ser encontrado no diretório
do usuário fred e do usuário lisa. Quando o link é feito, não
existe uma cópia do arquivo x.
Existem dois tipos de link: hard link (aponta para o local
de armazenamento do disco) e simbolic link (contem apenas o
caminho de onde o arquivo está). Ao apagar um hard link, o
arquivo será excluı́do, porém se apagar um simbolic link apagará
somente o link.
• Boot block
O sistema de arquivos é armazenado em disco. O setor 0 é
chamado de MBR e é usando para iniciar o computador. O fim
do MBR contém a tabela de partição (endereços iniciais e finais
de cada partição). Uma das partições é marcada como ativa.
Quando o computador é ligado, a BIOS executa o MBR que localiza a partição ativa e lê e executa seu primeiro bloco (bloco
de boot). O bloco de boot carrega o sistema operacional.
O superbloco contém todos os principais parâmetros sobre o
sistema de arquivos (tipo de sistema de arquivos, número de blocos no sistema de arquivos, etc.). As informações sobre espaços
livres podem ser na forma de mapa de bits ou lista de ponteiros.
Os i-nodes contém informações dos arquivos.
Alocação contı́nua
File A
(4 blocks)
File E
(12 blocks)
File C
(6 blocks)
File G
(3 blocks)
…
Questões de Implementação
• Como os arquivos são armazenados
File D
(5 blocks)
File B
(3 blocks)
File F
(6 blocks)
(a)
(File A)
(File E)
(File C)
(File G)
…
• Como o espaço livre é gerenciado
File B
5 Free blocks
6 Free blocks
(b)
• Eficiência
• Confiabilidade
Os usuários se preocupam em como mudar os nomes de arquivos, quais operações são permitidas, como é a árvore de diretórios e questões sobre interface. Os implementadores estão
interessados em como os arquivos e diretórios são armazenados,
como o espaço em disco é gerenciado e como fazer tudo funcionar
eficiente e confiavelmente.
Profa. Tiemi Christine Sakata
O esquema mais simples de alocação é armazenar cada arquivo
em blocos contı́guos de disco. O disco é dividido em blocos de
mesmo tamanho. Se um arquivo ocupa um bloco e meio, a outra
metade do bloco é desperdiçada.
Vantagens: simples de implementar (basta armazenar o endereço do primeiro bloco e o número de blocos do arquivo) e bom
desempenho de leitura (arquivo é lido em uma única operação –
um seek para o primeiro bloco).
Desvantagem: os arquivos não podem crescer e há fragmentação do disco. A compactação do disco é custoso e
reaproveitar as lacunas requer saber de antemão o tamanho do
arquivo. Na edição de um texto, seria inviável o usuário informar o tamanho do texto (ainda não digitado). Atualmente, os
arquivos contı́guos são utilizados em mı́dias somente para escrita
(CD-ROMs, DVD).
5
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Lista ligada de blocos
I-node
File A
File Attributes
0
File
block
0
File
block
1
File
block
2
File
block
3
Address of disk block 0
File
block
4
Address of disk block 1
Address of disk block 2
Address of disk block 3
Physical
block
4
7
2
10
12
Address of disk block 4
Address of disk block 5
File B
Address of disk block 6
0
File
block
0
File
block
1
File
block
2
File
block
3
6
3
11
14
Physical
block
Os arquivos podem ser mantidos como uma lista encadeada
de blocos de disco. A primeira palavra de cada bloco é usada
como ponteiro para um próximo. O restante do bloco é usado
para dados.
Neste método não há fragmentação externa e para manter
uma entrada de diretório é suficiente armazenar apenas o endereço em disco do primeiro bloco. Por outro lado, o acesso
aleatório é extremamente lento, pois para chegar ao bloco n de
um arquivo, o SO, a partir do inı́cio, deve ler os n − 1 blocos
antes dele.
Address of disk block 7
Address of block of pointers
Disk block
containing
additional
disk addresses
O i-node é uma estrutura de dados associado a cada arquivo
que relaciona os atributos e os endereços em disco dos blocos de
arquivo. Dado o i-node, é possı́vel encontrar todos os blocos do
arquivo. A grande vantagem desse esquema é que o i-node só
precisa estar na memória quando o arquivo estiver aberto.
Um problema do i-nodes é que é necessário reservar o último
endereço de disco para o endereço de um bloco contendo mais endereços de blocos de discos. Assim, mesmo que a estrutura i-node
contenha um número fixo de endereços, não haveria problema se
um arquivo crescesse além do limite.
File Allocation Table (FAT)
Physical
block
0
1
2
10
3
11
4
7
File A starts here
6
3
File B starts here
7
2
Implementação de diretórios
5
8
9
10
12
11
14
12
-1
13
14
games
attributes
games
mail
attributes
mail
news
attributes
news
work
attributes
work
-1
15
Unused block
As desvantagens da alocação por lista encadeada pode ser
eliminada colocando-se cada palavra de ponteiro de cada bloco
de disco em uma tabela na memória. Usando essa organização
todo bloco fica disponı́vel para dados e o acesso aleatório se
torna mais fácil. Para encontrar um bloco de um arquivo, é
necessário percorrer o encadeamento, porém, como a tabela está
na memória, a localização do bloco pode ser feita rapidamente.
Como no método anterior, um simples inteiro é suficiente para
representar a entrada de diretório.
A principal desvantagem deste método é que a tabela deve
estar na memória o tempo todo. A tabela pode ser alocada em
memória paginada, mas mesmo assim, ocuparia muito espaço de
memória virtual e de espaço em disco gerando tráfego extra de
paginação.
Profa. Tiemi Christine Sakata
(a)
Windows
(b)
Data structure
containing the
attributes
Unix
Todo sistema de arquivos mantém atributos como proprietário
e hora de criação dos arquivos. Esses atributos podem ser armazenados diretamente na entrada do diretório, na forma de
lista encadeada (Figura (a)). Para sistemas que usam i-nodes, os
atributos podem ser armazenados no próprio i-node (Figura (b)).
6
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Cópias de Segurança
• não é preciso copiar o sistema de arquivos todo
Bitmaps e dumping
• cópias incrementais – cópias de arquivos
alterados
(a)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
• compressão das informações – deve ser feita de
forma cuidadosa
(b)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
(c)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
• difı́cil fazer uma cópia de segurança enquanto
o sistema de arquivos estiver sendo utilizado
(d)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
• problemas técnicos – onde guardar a fita?
A destruição de um sistema de arquivos é muitas vezes pior do
que a destruição do computador, pois se o sistema de arquivos
estiver irrecuperável, a restauração das informações será muito
difı́cil e em muitos casos impossı́vel.
Cópias de segurança permitem que arquivos removidos possam ser restaurados. Porém, fazer uma cópia de segurança leva
muito tempo e ocupa muito espaço.
O algoritmo de cópia mantém um mapa de bits indexado pelo
número do i-node com vários bits por i-node. O algoritmo opera
em 4 fases:
1. começa a partir do diretório inicial e verifica todas as entradas. Para cada arquivo modificado, seu i-node é marcado
no mapa de bits. Todos os diretórios são também marcados.
2. percorre novamente a árvore desmarcando os diretórios que
não tenham arquivos ou diretórios modificados dentro dele.
3. copiar todos os diretórios marcados para cópia.
4. copiar todos os arquivos marcados para cópia.
Para restaurar um sistema, basta começar criando um sistema
vazio no disco e restaurar inicialmente uma cópia completa. Em
seguida, as cópias incrementais são restauradas.
Confiabilidade
• cópia fı́sica
• cópia lógica
Consistência do sistema de arquivos
1
2
3
4
Directory
that has not
changed
5
16
18
6
17
19
7
8
Root directory
10
9
11
12
13
20
14
21
15
File that
has changed
27
29
28
31
23
24
25
26
32
File that has
not changed
Para copiar um disco para uma fita, podem ser adotadas duas
estratégias: cópia fı́sica (dump fı́sico) ou cópia lógica (dump
lógico).
A cópia fı́sica inicia-se no bloco 0, escreve em ordem todos os
blocos na fita e termina após copiar o último bloco. Vantagens:
simplicidade e rapidez. Desvantagens: incapacidade de saltar diretórios especı́ficos, permitir cópias incrementais e restaurar arquivos individuais.
A cópia lógica é feita a partir de um ou mais diretórios especificados e copia recursivamente todos os arquivos modificados
desde uma data especificada.
Profa. Tiemi Christine Sakata
Block number
0 1 2 3 4 5 6 7 8 9 101112131415
1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use
1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use
0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks
0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks
(a)
30
22
Block number
0 1 2 3 4 5 6 7 8 9 101112131415
(b)
0 1 2 3 4 5 6 7 8 9 101112131415
0 1 2 3 4 5 6 7 8 9 101112131415
1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use
1 1 0 1 0 2 1 1 1 0 0 1 1 1 0 0 Blocks in use
0 0 1 0 2 0 0 0 0 1 1 0 0 0 1 1 Free blocks
0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks
(c)
(d)
(a) consistente
(b) bloco faltando
(c) duplicação na
(d) duplicação nos
lista de livres
dados
O sistema pode estar inconsistente se o sistema cair antes que
todos os blocos alterados sejam escritos (leitura – modificação –
escrita). O Unix utiliza o fsck e o Windows o scandisk para
verificar a consistência do sistema de arquivos.
Para verificar a consistência do bloco, constrói-se 2 tabelas:
uma para monitorar quantas vezes o bloco está presente em cada
arquivo e outra para registrar os blocos livres. A partir do i-node é
possı́vel construir uma lista de todos os blocos usados no arquivo
correspondente. Além disso, o sistema de diretórios também é
checado, comparando as informações contidas nos i-nodes com
a inspeção feita na árvore de diretórios.
7
FACENS - Faculdade de Engenharia de Sorocaba
Sistemas Operacionais
Distribuição da informação no disco
Caching
Hash table
Front (LRU)
Disk is divided into
cylinder groups, each
with its own i-nodes
I-nodes are
located near
the start
of the disk
Rear (MRU)
Cylinder group
(a)
Cache de buffer é a técnica mais utilizada para reduzir o
acesso a disco. Uma cache é uma coleção de blocos mantidas na
memória para fins de desempenho.
O modo usual para verificar se um bloco está na cache é mapear o dispositivo e o endereço de disco em uma tabela hash.
Além disso, os blocos são ligados por uma lista biderecional,
sendo o bloco menos recente no inı́cio da fila e o mais recentemente usada no final da fila.
(b)
Outra técnica para melhorar o desempenho consiste em reduzir a quantidade de movimentos do braço do disco, colocando
os blocos mais sujeitos a mais acessos em seqüência, próximos
uns aos outros. O armazenamento do disco pode ser feita em
grupos de blocos consecutivos.
Em sistemas que usam i-nodes, a leitura de um arquivo pequeno requer 2 acessos ao disco: um para o i-node, outra para o
bloco. Ao invés de manter os i-nodes no inı́cio do disco, pode-se
colocá-los no meio do disco reduzindo o posicionamento entre o
i-node e o primeiro bloco do arquivo. Outra idéia consiste em
dividir o cilindro em grupos, cada qual com seus próprios i-nodes,
blocos e listas livres.
Block Read Ahead
• Lê um bloco antes de ele ser solicitado
• Acesso seqüencial - bom
• Acesso aleatório - piora o desempenho
Outra técnica para melhorar o desempenho do sistema de arquivos é tentar transferir os blocos para a cache antes que eles
sejam necessários. Quando um bloco k é solicitado, verifica-se
se o bloco k + 1 já está lá e se não estiver, a leitura de k + 1 já
será escalonada.
Esta estratégia funciona apenas para arquivos que estejam
sendo lidos seqüencialmente. Para verificar se vale a pena fazer
uma leitura antecipada, o sistema de arquivos pode monitorar os
padrões de acesso de cada arquivo aberto.
Profa. Tiemi Christine Sakata
8
Download

Sistema de Arquivos