Você está na página 1de 15

Sistema de Arquivos

O sistema de arquivos a parte do sistema operacional mais visvel para os


usurios. Durante o tempo todo, usurios manipulam arquivos contendo textos, planilhas,
desenhos, figuras, jogos, etc. Os arquivos so normalmente implementados a partir de
discos magnticos. Como um acesso a disco demora cerca de !!!! ve"es mais tempo do
que um acesso # mem$ria principal, so necessrias estruturas de dados e algoritmos que
otimi"em os acessos ao disco. % importante o&servar que os sistemas de arquivos
implementam um recurso em soft'are que no existe no hard'are. O hard'are oferece
simplesmente espa(o em disco, na forma de setores que podem ser acessados )gravados e
lidos* individualmente, em ordem aleat$ria. O conceito de arquivo, muito mais +til que o
simples espa(o em disco, uma a&stra(o criada pelo ,O.
8.1 O Conceito de Arquivo
-m arquivo pode ser genericamente definido como uma cole(o de dados relacionados
entre si. .ormalmente, arquivos contm programas )tanto fonte como o&jeto* ou dados.
/rquivos so referenciados atravs de nomes. /lm de um nome, cada arquivo
possui tam&m outros atri&utos, tais como0 tipo, momento da cria(o, identifica(o do
criador, tamanho, etc.
Tipos de arquivos
Diferentes tipos de informa(o podem ser arma"enados em um arquivo0 programas fonte,
programas o&jeto, texto, dados numricos, registros de funcionrios, som, imagem, etc.
Cada arquivo possui uma estrutura interna, conforme sua aplica(o. 1or exemplo, um
arquivo texto uma seq23ncia de caracteres organi"ados em linhas e pargrafos4 um
programa executvel uma seq23ncia de &5tes representando instru(6es em c$digo de
mquina4 um programa fonte uma seq23ncia de caracteres que representam comandos de
uma linguagem de programa(o )normalmente estes arquivos so do tipo 7somente texto8,
no admitindo qualquer tipo de formata(o especial*.
-ma questo importante at que ponto o ,O deve conhecer a estrutura interna
dos arquivos. 1ara ter esse conhecimento, o ,O vai ser maior e mais complexo. /lm
disso, para evoluir, dever permitir a defini(o de novos tipos de arquivos, uma ve" que
novas aplica(6es podem expor novas demandas, e com elas, tipo de arquivos diferentes.
9sto invia&ili"a a preten(o de conhecer a estrutura interna dos arquivos, na prtica. :m
geral, o conhecimento do ,O se limita #s informa(6es contidas no registro descritor do
arquivo. 9sto j lhe permite &loquear algumas opera(6es invlidas. 1or exemplo, pode
recusar;se a imprimir um arquivo que contenha um programa executvel.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
Sistemas "aseados em fita
Os primeiros sistemas eram &aseados em fita magntica. .o incio, cada arquivo era
mapeado para uma +nica fita. 9sso ocasionava um enorme desperdcio de espa(o, porque
cada fita )de ?@!! ps, cerca de AB! m* era capa" de arma"enar B giga&5tes, mas a maioria
dos arquivos era pequena )alguns C&*. 1or outro lado, havia o pro&lema dos arquivos
muito grandes, que poderiam superar a capacidade de uma +nica fita.
O pro&lema dos arquivos grandes foi resolvido com o sistema de arma"enamento
multi-volume. O desperdcio de espa(o foi resolvido permitindo a grava(o de diversos
arquivos em uma +nica fita. Como resultado, passou a ser necessrio sa&er em que
posi(o da fita cada arquivo estava arma"enado. / solu(o foi adicionar # fita um
diret#rio$ onde cada entrada continha um nome de arquivo e sua posi(o na fita. =ais
diret$rios tam&m arma"enavam informa(6es adicionais so&re os arquivos.
Passos para a %eitura de um arquivo em fita&
. >ocali"ar e carregar a fita indicada pelo usurio
?. >ocali"ar no diret$rio a entrada correspondente ao arquivo
D. 1osicionar a fita no ponto correspondente ao incio do arquivo
@. 9niciar a leitura
B. =erminar a leitura quando encontrar marca de fim de arquivo.
1ara um programa poder tra&alhar simultaneamente com dois arquivos, eles
tinham que estar em fitas diferentes.
Sistemas "aseados em disco
Euitos dos pro&lemas dos sistemas de fita foram resolvidos com os sistemas &aseados em
discos. -m disco dividido em trilhas, sendo o n+mero de trilhas uma caracterstica
particular de cada dispositivo. Cada trilha dividida em setores, sendo o setor a menor
unidade de informa(o que pode ser lida ou escrita no disco. -nidades de disco fixo
usualmente possuem diversos discos superpostos, cada um com duas faces magneti"adas,
o que corresponde a diversas superfcies de grava(o )a tecnologia atual permite so&repor
at F discos*. 1ara acessar um determinado setor do disco necessrio informar0 face$
tri%'a e setor. /s ca&e(as de leitura e grava(o so deslocadas at a trilha correta )tempo
de seek*, chaveadas eletronicamente para a face correta e ento esperam at que o setor
solicitado passe por &aixo )tempo de lat3ncia*. -m ci%idro o conjunto de trilhas que
esto na mesma posi(o, porm em diferentes faces. .o necessrio deslocar as ca&e(as
para acessar trilhas de um mesmo cilindro.
-sualmente, o ,O trata o disco como um grande vetor unidimensional de &locos,
cada &loco correspondendo a um setor. :sses &locos so numerados desde ! at .;,
onde . o n+mero de setores do disco.
/ vantagem do disco em rela(o # fita a possi&ilidade de acessar facilmente
qualquer setor a qualquer momento. / fita imp6e um acesso estritamente seq2encial. O
acesso tam&m mais rpido no disco.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. (
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
/ssim como nas fitas, e por mais forte ra"o, os discos tam&m possuem um
diret$rio, indicando em que posi(6es se encontram os arquivos. O diret$rio arma"enado
no pr$prio disco, permitindo que o disco seja removido e utili"ado mais tarde, sem que os
nomes dos arquivos sejam perdidos. .a verdade, cada entrada de diret$rio contm todas
as informa(6es necessrias so&re o arquivo, constituindo o que se denomina registro
descritor de arquivo.
Re)istro descritor de arquivo
A estrutura bsica de um sistema de arquivos o descritor de arquivo (DA). Para cada
arquivo existente no sistema h um DA. Trata-se de um bloco (registro) que contm todas
as informaes sobre um determinado arquivo. Algumas informaes no so visveis aos
usurios, embora sejam essenciais para o SO implementar as operaes sobre arquivos.
Tipicamente, um descritor de arquivo contm as seguintes informaes:
Nome do arquivo;
Tipo do arquivo;
Tamanho em bytes;
Data e hora do ltimo acesso;
Data e hora da ltima alterao;
Identificao do usurio que criou o arquivo;
Lista de usurios que podem acessar o arquivo e respectivos direitos de acesso;
Local no disco onde o contedo do arquivo foi colocado.
8.2 Suporte a arquivos
O sistema operacional permite reali"ar um conjunto de opera(6es so&re arquivos. :ssas
opera(6es so solicitadas atravs de chamadas de sistema.
Opera*+es em arquivos
/ seguir considerado o que o ,O deve fa"er para reali"ar as diversas opera(6es so&re
arquivos )supondo um sistema &aseado em disco*0
; Criar um arquivo0 dois passos so necessrios, ,a- encontrar e alocar espa(o suficiente
no disco para conter o arquivo )isto , os dados do arquivo* e ,"- adicionar uma entrada
no diret$rio para conter os atri&utos do arquivo )nome, tamanho, locali"a(o, etc.*.
; Escrever registro no arquivo0 para escrever em um arquivo, o usurio executa uma
chamada de sistema fornecendo o nome do arquivo e o &loco com a informa(o a ser
escrita. O sistema procura no diret$rio, atravs do nome, a locali"a(o do arquivo no
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. .
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
disco e a posi(o do ponteiro que indica o final do arquivo )onde deve ser escrito o
pr$ximo &loco*.
; Ler prximo registro do arquivo: o usurio executa uma chamada de sistema passando
como parGmetros o nome do arquivo e a posi(o na mem$ria principal para onde as
informa(6es lidas devem ser copiadas. .ovamente, o sistema procura no diret$rio a
entrada correspondente, l3 do disco e atuali"a o ponteiro indicador de pr$ximo registro a
ser lido.
; Remover o arquivo: para remover o arquivo, primeiramente o diret$rio pesquisado. /
seguir, o espa(o alocado li&erado e a entrada correspondente removida do diret$rio.
; Reposicionar o arquivo: esta opera(o no envolve 9HO de fato, pois consiste em
locali"ar a entrada no diret$rio correspondente ao arquivo e modificar o valor do ponteiro
indicador do pr$ximo registro a ser acessado.
=odas as opera(6es mencionadas acima envolvem uma pesquisa o diret#rio em
&usca da entrada correspondente ao arquivo desejado. 1ara evitar esta pesquisa constante
no disco, muitos sistemas a"rem o arquivo quando ele come(a a ser utili"ado. /&rir o
arquivo significa tra"er para a mem$ria o seu registro descritor.
Ta"e%a de arquivos a"ertos
O sistema operacional mantm na mem$ria principal uma ta&ela contendo os registros
descritores dos arquivos a&ertos )=D// I =a&ela de Descritores de /rquivos /&ertos*.
Juando uma opera(o solicitada, apenas esta ta&ela pesquisada )em mem$ria* e no
todo o diret$rio )em disco*.
/lguns sistemas a&rem automaticamente o arquivo quando ele utili"ado pela
primeira ve", enquanto outros exigem um pedido de a&ertura explcito do usurio )isto
feito atravs da opera(o ope*. .este +ltimo caso, o diret$rio pesquisado e a entrada
correspondente ao arquivo copiada para a ta&ela =D//. % devolvido para o programa
um ponteiro para a entrada nessa ta&ela. .as pr$ximas opera(6es este ponteiro ser
utili"ado para identificar o arquivo. O arquivo deve ser 7fechado8 ap$s a utili"a(o
)opera(o c%ose*, o que permite li&erar o espa(o que seu descritor ocupava na =D//.
A TDAA mantm informaes sobre os arquivos abertos por todos os processos
no sistema. Normalmente, permitido que vrios processos abram um mesmo arquivo
simultaneamente. Para cada arquivo h apenas uma entrada na TDAA, a qual armazena
todas as informaes do arquivo em disco, mais uma informao que indica o nmero de
processos utilizando o arquivo no momento. Quando um processo realiza a chamada de
sistema close, o nmero de processos utilizando o arquivo em questo decrementado.
Quando esse nmero chega a zero, significa que nenhum processo est usando o arquivo.
Nesse caso, o descritor do arquivo atualizado em disco e a entrada da TDAA liberada.
As entradas da TDAA armazenam informaes que no variam em funo do
processo que est acessando o arquivo Entretanto, existem informaes correspondentes
ao processo que acessa o arquivo. Um exemplo de informao que depende do processo
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. /
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
a posio corrente no arquivo. Em um dado instante, cada processo pode acessar uma
parte diferente do arquivo. Logo, necessrio armazenar uma posio corrente no
arquivo para cada processo. Da mesma forma, alguns processos podem abrir o arquivo
para apenas leitura, enquanto outros abrem para leitura e escrita. Essa informao deve
ser mantida pelo sistema de arquivos para que ele possa rejeitar chamadas de escrita
quando o processo abriu o arquivo para apenas leitura.
A soluo tpica criar, para cada processo, uma Tabela de Arquivos Abertos por
Processo (TAAP). Cada processo possui a sua TAAP. Cada entrada ocupada na TAAP
corresponde a um arquivo aberto pelo processo correspondente. No mnimo, a TAAP
contm em cada entrada as seguintes informaes:
Posio corrente no arquivo;
Tipo de acesso (apenas leitura ou leitura e escrita);
Apontador para a entrada correspondente na TDAA.
A Figura 8.1 ilustra o emprego conjunto das TAAP e da TDAA. No exemplo da
figura, o processo 0 possui dois arquivos abertos. O arquivo A foi aberto apenas para
leitura, e a sua posio corrente 12. O arquivo B foi aberto para leitura e escrita, e a sua
posio corrente 55. O processo 1 tambm abriu o arquivo B. Entretanto, o processo 1
pode apenas ler o arquivo, e a sua posio corrente 10.
Tanto a TDAA como as TAAP devem ficar na memria do sistema operacional,
fora do acesso dos processos de usurio. Caso contrrio, um usurio mal intencionado
poderia burlar o mecanismo de controle de acesso simplesmente alterando sua TAAP.
A funo open retorna para o processo o nmero da entrada na TAAP associada
com o arquivo aberto. Dessa forma, nas chamadas de sistema aps o open, o processo
indica o arquivo atravs do nmero de sua correspondente entrada na TAAP. A partir da
TAAP, o sistema de arquivos pode imediatamente localizar o descritor do arquivo na
TDAA. No exemplo da Figura 8.4, o processo 0 acessa o arquivo B atravs de referncias
entrada 1 da sua TAAP.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. 0
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
TDAA Pos. Cor. 12
Leitura
TAAP do processo 0
Pos. Cor. 10
Leitura
TAAP do processo 1
Pos. Cor. 55
Leit. & Escr.
Arquivo A
Arquivo B
0
1
2
3
0
2
2
4
0
1
0
Figura 8.1 - Emprego conjunto das tabelas TAAP e da tabela TDAA.
8.3 Mtodos de Acesso
:xistem diversas maneiras de acessar as informa(6es contidas em um arquivo. :nquanto
alguns sistemas oferecem um +nico mtodo de acesso, outros sistemas implementam
diversos mtodos.
Acesso seq1ecia%
.este mtodo, uma leitura sempre acessa o pr$ximo registro e avan(a um ponteiro so&re
o arquivo. :ste ponteiro indica qual a pr$xima posi(o a ser lida. O mesmo acontece com
a escrita.
Acesso direto
O arquivo consiste em uma seq23ncia numerada de registros. Jualquer registro pode ser
diretamente lido ou escrito. /s opera(6es indicam o n+mero do &loco a ser acessado. :ste
n+mero geralmente um n+mero de &loco relativo, ou seja, um ndice em rela(o ao incio
do arquivo )usurios no lidam com n+meros de &locos a&solutos*.
Outros m2todos de acesso
Outros mtodos de acesso podem ser construdos utili"ando como &ase o servi(o de
acesso direto. :stes mtodos normalmente envolvem a constru(o de ndices nos
descritores de arquivos. Os ndices so utili"ados para locali"ar a informa(o desejada
dentro do arquivo, o&jetivando sempre minimi"ar o acesso ao disco )maximi"ar o
desempenho*. :xemplo0 o SA! "ndexed Sequential Acess !ethod# da 9KE usa um
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. 3
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
pequeno ndice mestre que aponta para &locos de disco secundrios com ndices
secundrios, que por sua ve" apontam para os &locos de disco contendo os dados.
8.4 Mtodos de Alocao
.a maioria das ve"es muitos arquivos estaro arma"enados no mesmo disco. % necessrio
alocar espa(o para estes arquivos de forma que o disco seja utili"ado eficientemente e os
arquivos possam ser acessados rapidamente. =r3s mtodos principais de aloca(o de
espa(o em disco se encontram em uso0 cont$gua% encadeada e indexada, cada um com
suas vantagens e desvantagens.
4er5cia do espa*o %ivre
/rquivos so criados e removidos freq2entemente durante a opera(o do sistema. -ma
ve" que o espa(o em disco limitado, necessrio reaproveitar todo o espa(o li&erado.
1ara manter o controle do espa(o livre no disco, o sistema mantm uma lista dos setores
livres. 1ara criar um arquivo, o espa(o necessrio o&tido da lista. O espa(o ocupado por
um arquivo devolvido # lista quando este removido.
:sta lista, apesar de seu nome, pode no ser implementada como uma lista, mas
sim como um 7mapa de &its8, onde cada &it representa um &loco do disco. ,e o &loco est
ocupado o &it vale , se o &loco est livre o &it vale !. O tamanho do mapa )n+mero de
&5tes no mapa* corresponderia a um oitavo do n+mero de &locos do disco.
A%oca*o cot6)ua
O mtodo de aloca(o contgua exige que cada arquivo ocupe um conjunto de setores
contguos no disco. 1ara locali"ar um arquivo &asta sa&er o n+mero do setor inicial e o
tamanho do arquivo, em &locos.
1ara acessar o arquivo de forma seq2encial, o sistema operacional mantm o
n+mero do +ltimo &loco acessado, incrementando este valor a cada acesso. 1ara um
acesso direto ao setor i de um arquivo que inicia no setor ", o sistema deve acessar o
setor "7i. /m&os os mtodos seq2encial e direto so facilmente implementados.
/ dificuldade com este esquema encontrar um espa(o livre para um novo
arquivo. ,e o novo arquivo ocupa setores, necessrio pesquisar a lista de setores livres
at encontrar setores contguos livres.
O espa(o em disco pode ser visto como um grande vetor de &locos. :m um
determinado momento, alguns &locos esto ocupados e outros livres, compondo
segmentos de &locos contguos ocupados e segmentos de &locos contguos livres
)&uracos*. O pro&lema da aloca(o dinGmica de arma"enamento consiste em como
satisfa"er um pedido de &locos livres contguos a partir de uma lista de &locos va"ios.
Os algoritmos que podem ser utili"ados so os mesmos j vistos no captulo de ger3ncia
de mem$ria )&irst-&it, 'est-&it, etc(*.
O maior pro&lema deste mtodo determinar o n+mero de setores a serem
alocados para cada arquivo, no momento de sua cria(o. :m algumas situa(6es isto
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. 8
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
simples, como na c$pia de um arquivo existente. Eas, em geral, esta tarefa difcil. ,e
pouco espa(o alocado, o arquivo talve" no possa ser estendido porque o espa(o nos
dois lados est ocupado. / +nica solu(o neste caso a c$pia de todo o arquivo para um
espa(o maior. ,e o espa(o alocado maior que o necessrio, o disco no estar sendo
utili"ado de forma eficiente.
A%oca*o ecadeada
.este mtodo, cada arquivo corresponde a uma lista encadeada de &locos, estando os
mesmos em qualquer local do disco. O diret$rio contm apenas o endere(o do &loco
inicial e o n+mero de &locos )ou endere(o do +ltimo &loco*, e cada &loco de dados contm
o endere(o do &loco seguinte. :xiste uma perda associada a cada &loco, uma ve" que
necessrio gastar &5tes com ponteiros.
Com aloca(o encadeada, os arquivos podem ser criados com tamanho "ero. .a
medida em que o arquivo precisa crescer, setores sero removidos da lista de setores livres
e inseridos na lista encadeada que forma o arquivo. Jualquer setor do disco, independente
de sua posi(o, pode ser aproveitado. Os arquivos podem crescer livremente at o limite
do disco.
:ste mtodo somente pode ser utili"ado de forma eficiente para implementar
acesso seq2encial. 1ara acessar diretamente o setor n, seria necessrio reali"ar acessos
ao disco. 9sto impede, na prtica, o acesso direto. /lm disto, este mtodo apresenta
pro&lemas de confia&ilidade0 como cada setor contm o endere(o do setor seguinte, &asta
que um setor seja danificado )hard'are ou soft'are* para que &oa parte do arquivo seja
perdida.
A%oca*o ide9ada
Este mtodo capaz de resolver o problema do crescimento dos arquivos ao mesmo
tempo que permite o acesso relativo. Na alocao indexada, cada arquivo possui uma
tabela de ndices. Cada entrada dessa tabela contm o endereo de um dos blocos fsicos
que formam o arquivo. No exemplo da Figura 8.2, cada descritor de arquivo contm uma
tabela com 10 entradas, numeradas de 0 a 9. A entrada 0 da tabela contm o nmero do
bloco fsico que contm o bloco lgico 0 do arquivo, a entrada 1 faz o mesmo para o
bloco lgico 1, e assim por diante.
Um acesso relativo pode ser facilmente realizado atravs de uma consulta tabela
de ndices. O endereo no disco de qualquer bloco lgico obtido atravs de um nico
acesso a essa tabela. Para que esse acesso seja rpido, a tabela de ndices normalmente
mantida na memria principal enquanto o arquivo est aberto. Uma forma conveniente
manter a tabela de ndices dentro do prprio descritor do arquivo.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. :
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
Disco
Bloco
Fsico
0
1
2
3
4
5
6
7
8
9
10
12
11
13
BL 0
BL 1
BL 2
BL 3
BL 4
BL 5
Descritor
Indices:
Tamanho: 6
8
5
1
7
11
3 0
1
2
3
4
5
6
7
8
9
Figura 8.2 - Alocao indexada de arquivos.
Uma questo importante o tamanho da tabela de ndices. Ele define o tamanho
mximo de um arquivo no sistema. Por exemplo, suponha que cada bloco fsico
corresponda a 4 Kbytes. Para que o tamanho mximo de um arquivo no sistema seja de 4
Gbytes, ser necessrio uma tabela de ndices contendo 4 Gbytes 4 Kbytes entradas,
ou seja, 1.048.576 entradas (1 M na informtica, ou seja, 1024 1024). Manter uma
tabela de ndices desse tamanho para cada arquivo um absurdo. O tamanho mdio dos
arquivos em sistemas de propsito geral fica entre 10 Kbytes e 20 Kbytes. Mantendo a
suposio de que cada bloco fsico corresponde a 4 Kbytes, uma tabela de ndices com
apenas 5 entradas seria suficiente para um arquivo de 20 Kbytes.
A soluo tpica para compatibilizar uma maioria de arquivos pequenos com um
tamanho mximo de arquivo satisfatrio empregar nveis de indireo na indexao.
Por exemplo, suponha que o descritor de arquivos contm uma tabela de ndices com 13
entradas. As primeiras 10 entradas (numeradas de 0 a 9) apontam para blocos de dados do
arquivo, permitindo o acesso aos primeiros 40 Kbytes de cada arquivo (supondo sempre
blocos de 4 Kbytes). Eles so chamados de apontadores diretos. A entrada 10 da tabela
no aponta para um bloco de dados do arquivo, mas sim para um bloco que contm
apontadores para blocos de dados. Supondo que os nmeros de blocos fsicos ocupem 4
bytes, um bloco de 4 Kbytes capaz de armazenar 1024 apontadores. Como cada
apontador representa um bloco fsico, temos que um nico apontador indireto na tabela
de ndices permite o acesso a 4 Mbytes de dados do arquivo. A Figura 8.3 ilustra essa
situao.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. ;
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
0
1
2
3
4
5
6
7
8
9
10
11
12
... ...
Bloco de dados (4 Kbtes!
... Bloco de apontadores
( 10"4 apontadores de 4 btes!
...
...
...
...
...
...
...
...
...
...
...
...
1024 * 4K
1024 * 1024 * 4K
...
...
1024 * 1024 * 1024 * 4K
...
10 * 4K
...
...
Figura 8.3 - Emprego de apontadores diretos e indiretos.
A entrada 11 da tabela contm um apontador duplamente indireto, o que
permite o acesso a at 4 Gbytes de dados. Para suportar arquivos realmente grandes,
usada a entrada 12, a qual contm um apontador triplamente indireto. Ele aponta para
um bloco que contm 1024 apontadores. Esses 1024 apontadores, em conjunto, apontam
para 10241024 apontadores. Cada um deles aponta para 1024 apontadores. No total
temos 102410241024 apontadores para blocos de dados, o que permite indexar um
total de 4 Tbytes (terabytes). As necessidades da maioria dos sistemas so atendidas
apenas com a dupla indireo.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !<
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
Esse esquema de apontadores indiretos muito atraente. Considerando o
exemplo, arquivos de at 40 Kbytes possuem sua tabela de ndices completa dentro do
descritor de arquivo, o qual necessariamente lido para a memria quando o arquivo
aberto. Dessa forma, arquivos com at 40 Kbytes, o que corresponde maioria, so
sempre acessados rapidamente. Por sua vez, arquivos com mais de 40 Kbytes e no mais
que 4 Mbytes + 40 Kbytes necessitam de apenas um nvel de indireo, ou seja, de um
nico bloco contendo apontadores. Esse bloco tambm pode ser mantido na memria
principal todo o tempo, fazendo com que o acesso aos dados no necessite de acesso
adicional ao disco para a leitura de apontadores.
Somente arquivos maiores que 4 Mbytes + 40 Kbytes tero o acesso mais lento
em funo da necessidade de ler tambm os apontadores do disco. Entretanto, os blocos
de apontadores utilizados com maior freqncia podem ser mantidos em cache, o que
acelera o processo de localizao dos dados no disco. Acessos seqenciais so tambm
eficientes, pois os mesmos blocos de apontadores so utilizados para acessar um longo
trecho seqencial do arquivo.
A partir dos trs mtodos bsicos (alocao contgua, encadeada e indexada)
possvel imaginar diversas combinaes. Por exemplo, a tcnica conhecida como FAT
(File Allocation Table) uma variao da alocao encadeada, na qual os apontadores
foram removidos de cada bloco fsico individual e colocados todos juntos em uma nica
tabela, chamada de Tabela de Alocao de Arquivos.
8.5 Sisteas de !iret"rios
-m diret$rio na forma de lista de arquivos pode ser suficiente para um sistema
monousurio, com pouco espa(o em disco. .a medida em que o espa(o em disco aumenta
ou aumenta o n+mero de usurios, necessrio criar um diret$rio cuja estrutura permita
que os usurios organi"em os seus arquivos. / seguir so discutidas as possveis formas de
organi"ar os diret$rios.
=iret#rio de 6ve% >ico
.esta estrutura todos os arquivos fa"em parte do mesmo diret$rio. .a medida em que o
n+mero de arquivos aumenta, aparecem pro&lemas de organi"a(o. 1or exemplo,
necessrio que cada arquivo tenha um nome +nico.
=iret#rio de dois 6veis
/ maior desvantagem do diret$rio de nvel +nico a confuso de nomes de arquivos entre
diferentes usurios. / solu(o mais comum criar um diret$rio separado para cada
usurio. -m diret$rio principal mantm os endere(os dos diret$rios dos usurios,
enquanto os diret$rios de usurios cont3m informa(6es so&re os respectivos arquivos.
Juando um usurio fa" refer3ncia a um arquivo, apenas o seu pr$prio diret$rio
pesquisado. >ogo, diferentes usurios podem ter arquivos com o mesmo nome. Os
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !!
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
usurios esto naturalmente protegidos de acessos indevidos. % necessrio de alguma
forma criar diret$rios para novos usurios e destruir diret$rios no mais usados.
1ara economi"ar espa(o em disco, todos os utilitrios do sistema )compiladores,
editores, etc.* podem ser colocados em um +nico diret$rio e no duplicados em todos os
diret$rios dos usurios. :ste um diret$rio especial. ,empre que o usurio tenta executar
um programa, primeiramente o diret$rio especial pesquisado. ,e o arquivo do programa
no encontrado, ento o diret$rio do usurio pesquisado. 1ode;se tam&m inverter o
caminho de pesquisa.
=iret#rios estruturados em ?rvore
.este esquema, usurios podem criar seus pr$prios su&;diret$rios para organi"ar os seus
arquivos. / rvore possui um diret$rio rai". Cada arquivo no sistema tem um +nico
pat'ame. O pathname o nome do arquivo composto pelos nomes de diret$rios que
formam o caminho da rai" at ele.
-m diret$rio ou su&;diret$rio contm um conjunto de arquivos eHou su&;
diret$rios. :m cada entrada de diret$rio existe um campo indicando se a entrada um
arquivo ou um su&;diret$rio.
Os pathnames podem ser completos ou relativos. -m pathname completo inicia na
rai" e vai at o arquivo a ser identificado. ,e o pathname come(a no diret$rio corrente,
ento ele relativo.
8.# $oras de %pleentar !iret"rios
A forma mais simples de implementar diretrios consider-los como arquivos especiais,
manipulados pelo prprio sistema operacional. Dessa forma, todos os mecanismos de
alocao, liberao e localizao de blocos fsicos no disco, disponveis para arquivos,
tambm so usados para os diretrios. Diretrios passam a ser arquivos cujo contedo
definido pelo sistema operacional e cujo acesso, por parte de usurios, controlado.
Como diretrios so arquivos, cada diretrio possui tambm o seu descritor.
Um diretrio pode ser organizado na forma de um conjunto de descritores de
arquivos, ou como um conjunto de endereos de descritores de arquivos. No primeiro
caso, o diretrio contm diretamente descritores de arquivos e/ou diretrios. Nesse caso,
o nome do arquivo (ou do diretrio) faz parte do descritor. Nesse esquema, aps a leitura
do diretrio, o sistema de arquivos j ter na memria todas as informaes necessrias
para procurar pelo nome do arquivo buscado e, caso encontre, acessar o seu contedo. A
Figura 8.4 ilustra esta soluo. Nessa figura, retngulos representam diretrios e
retngulos de cantos arrendodados representam arquivos de dados. As desvantagens deste
esquema so: (1) os nomes ficam fortemente vinculados aos descritores de arquivos,
impedindo, por exemplo, que um mesmo arquivo possua mais de um nome; (2) os
diretrios tendem a ser maiores e esto mais sujeitos a inconsistncias, pois informaes
importantes esto espalhadas por todo o disco.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !(
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
#etc#
#$sr#
#bin#
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
conte(do do
ar)$i*o #+$sr#
conte(do do
ar)$i*o #+bin#
#pass,d#
#hosts#
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
conte(do do
ar)$i*o #+etc+pass,d#
conte(do do
ar)$i*o #+etc+hosts#
Figura 8.4 - Diretrios contendo descritores de arquivos.
No caso do diretrio ser um conjunto de endereos de descritores, tem-se em
cada entrada do diretrio apenas um par: nome do arquivo (ou diretrio) e um ponteiro
para o descritor correspondente. Neste esquema, comum reservar uma parte do disco
para armazenar exclusivamente descritores de arquivos. Esses blocos reservados
constituem um vetor de descritores, no qual cada descritor pode ser perfeitamente
identificado pela posio nesse vetor. Essa estrutura de dados forma o que se denomina
um flat file system (na terminologia do UNIX), pois no existe nenhuma estruturao dos
arquivos em diretrios, existindo apenas um diretrio nico (o vetor).
A estrutura em rvore criada a partir de alguns arquivos do sistema flat (que
atuam como subdiretrios), cada um organizado internamente como uma tabela contendo
nomes e respectivos endereos no vetor de descritores. Dessa forma, para percorrer um
caminho na rvore dos arquivos (pathname), necessrio abrir o subdiretrio, procurar o
nome desejado, pegar o endereo flat associado e ler o respectivo descritor de arquivo.
Esse procedimento deve ser repetido para cada nome presente no caminho a ser
percorrido. A Figura 8.5 ilustra essa soluo, considerando novamente a rvore de
arquivos que aparece na Figura 8.4. suposto que o primeiro descritor de arquivo do
vetor de descritores (ndice 0) descreve o diretrio raiz da rvore.
8.& 'roteo dos Arquivos
Juando a informa(o mantida em um computador, ela deve ser protegida contra dano
fsico )cofia"i%idade* e acesso indevido )prote*o*.
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !.
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
#etc#
#$sr#
#bin#
"
-
conte(do do
ar)$i*o #+$sr#
conte(do do
ar)$i*o #+bin#
#pass,d#
#hosts#
4
.
conte(do do #+#
conte(do do #+etc#
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
atrib$tos
locali%a&'o
0
1
"
-
4
.
conte(do do
ar)$i*o #+etc+pass,d#
conte(do do
ar)$i*o #+etc+hosts#
1
sistema de ar)$i*os /lat
Figura 8.5 - Diretrios contendo apenas nomes e endereos de descritores de arquivos
/ cofia"i%idade o&tida geralmente criando c$pias dos arquivos. Euitos
sistemas operacionais automaticamente copiam o conte+do do disco para fita em
intervalos regulares )uma ve" ao dia ou a cada semana*.
/ prote*o necessria apenas nos sistemas multiusurios )se o sistema s$ tem
um usurio, nenhuma prote(o necessria*. Os mecanismos de prote(o garantem
acesso controlado, limitando o tipo de acesso que pode ser feito a um arquivo. Diversos
tipos de acesso podem ser permitidos )ou negados*, tais como0 leitura, grava(o,
execu(o, cria(o e remo(o. Lale o&servar que as tr3s primeiras opera(6es )leitura,
grava(o e execu(o* envolvem acesso a arquivos enquanto as duas +ltimas )cria(o e
remo(o* envolvem acesso a diret$rios. Outras opera(6es )so&re diret$rios* possveis de
serem protegidas so listagem de diret$rio pesquisa de diret$rio.
:xistem diferentes mecanismos de prote(o, cada um com vantagens e
desvantagens. O melhor mecanismo depende do sistema em questo. -m mtodo &astante
utili"ado vincular o acesso # identifica(o do usurio ou de um grupo de usurios com
interesses afins, como ocorre no sistema -nix.
8.8 (uest)es de %pleentao
-m sistema de arquivos envolve dois pro&lemas de projeto &astante diferentes. -m deles
definir como o sistema de arquivos deve aparecer para o usurio )viso do usurio*. 9sto
envolve a defini(o dos arquivos e de seus atri&utos, opera(6es permitidas e estrutura de
diret$rios. O outro pro&lema de projeto definir quais algoritmos e estruturas de dados
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !/
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*
sero usados para mapear o sistema de arquivos l$gicos visto pelo usurio, nos
dispositivos fsicos disponveis ao sistema de arquivos.
Conceitualmente, um sistema de arquivos pode ser dividido em tr3s 6veis de
servi*o0 servi(o de disco, de arquivo &sico e de diret$rio0
servi)o de disco0 responsvel pela leitura e escrita de setores diretamente no
disco, sem interessar a forma como eles esto organi"ados4
servi)o de arquivo '*sico0 lida com arquivos &sicos, compostos de um
descritor e um conjunto de registros. Opera(6es so a leitura e a escrita de
&locos a partir de uma determinada posi(o do arquivo4
servi)o de diretrio0 preocupa;se com a identifica(o e prote(o de arquivos,
descritos a partir de diret$rios, de forma que eles possam ser acessados de
forma segura e conveniente. O servi(o de diret$rio tipicamente fornece o&jetos
denominados diret$rios que mapeiam nomes sim&$licos de arquivos em
identificadores numricos utili"ados pelo servi(o de arquivo &sico.
Servi*o de =iret#rios
Servi*o de Arq. B?sico
Servi*o de =isco
+su*rios
AMBIENTES OPERACIONAIS Prof. Simo Toscai p. !0
Sistema da Arquivos
)Do livro Sistemas Operacionais, Oliveira <., Carissimi /. e =oscani ,., :d. ,agra;>u""atto, ?!!@*