Sistemas de Arquivos
Daiana Paula de Ávila
Universidade do Contestado - UnC Concórdia - 04/2012
Resumo
Um sistema de arquivos é o conjunto de estruturas lógicas e rotinas que permitem
ao sistema operacional armazenar dados nas unidades de memória persistentes
como discos flexíveis e rígidos, pendrives, CDROM e DVDs, ou seja, são dados não
voláteis de acesso concorrente. As principais operações que podem ser executadas
são as de abrir, fechar, deletar, ler, escrever. Possui Diretório, também conhecidos
como pastas, são arquivos do sistema de arquivos que tem a função de guardar as
informações de identificação dos documentos no computador. O Diretório pode ser
de um ou dois níveis. A alocação dos sistemas de arquivos poderá ser contíngua,
por lista encadeada ou indexada.
Abstract
A file system is the set of logical structures and routines that allow the operating
systemto store data in persistent memory units such as floppy disks and hard
drives, flash drives, CDROM and DVDs, or non-volatile data are concurrent
access. The main operations that can be performed are as open, close, delete, read,
write. Has directory,also known as folders, files are system files that have the
function of storing identification information of the documents on your
computer. The directory can be one or two levels.The allocation of file systems can
be contíngua for linked list or indexed.
Introdução
O sistema de arquivos provê o mecanismo para o armazenamento online e o
acesso a dados e programas do sistema operacional e de todos os usuários do
computador. O sistema de arquivos consiste em duas partes distintas: uma coleção
de arquivos, cada um armazenando dados relacionados, e uma estrutura de
diretório, que organiza e fornece informações sobre todos os arquivos no sistema.
Alguns sistemas de arquivos possuem uma terceira parte, as partições, usadas para
separar grandes coleções de diretórios física e logicamente. (SILBERSCHATZ et al,
2004).
Os arquivos são gerenciados pelo sistema operacional. O modo como eles
são estruturados, nomeados, acessados, utilizados, protegidos e implementados
constitui temas importantes no projeto de um sistema operacional. Como um todo, a
parte do sistema operacional que lida com arquivos é conhecida como o sistema de
arquivos. (TANENBAUM & WOODHULL, 2000).
Arquivos
Os arquivos são mapeados pelo sistema operacional em dispositivos físicos.
Esses dispositivos de armazenamento não são voláteis, de modo que o conteúdo
persiste mesmo em casos de falta de energia e reinicialização do sistema.
(SILBERSCHATZ et al, 2004).
Arquivos são um poderoso mecanismo de abstração que permite ao usuário
(e seus programas) utilizar dados armazenados dentro do sistema computacional,
ou seja, através da manipulação dos arquivos são realizadas as operações de
escrita e leitura de dados, de forma transparente, evitando que sejam conhecidos
detalhes do funcionamento com que estas operações tratam e armazenam a
informação. (JANDL, 2004).
Provavelmente a mais importante característica de qualquer mecanismo de
abstração é a maneira como são nomeados os objetos que estão sendo
gerenciados. Quando um processo cria um arquivo, ele lhe dá um nome. Quando o
processo termina, o arquivo continua a existir e a poder ser acessado por outros
processos, utilizando seu nome. (TANEBAUM; WOODHULL, 2000).
Atributos de Arquivo
São informações de controle de cada arquivo. Variam dependendo o Sistema
de Arquivos, porém estes estão presentes em quase todos os sistemas: nome, local,
tipo, tamanho, proteção, identificação do criador, data da criação. (SILBERSCHATZ
et al, 2004).
Nem sempre os atributos oferecidos pó um sistema de arquivos são
suficientes para exprimir todas as informações a respeito de um arquivo. Nesse
caso, a “solução” encontrada pelos usuários é usar o nome do arquivo para exprimir
a informação desejada. Por exemplo, em muitos sistemas a parte final do nome do
arquivo (sua extensão) é usada para identificar o formato de seu conteúdo. Outra
situação é usar parte do nome do arquivo para identificar diferentes versões do
mesmo conteúdo. (MAZIERO, 2011).
As informações sobre todos os arquivos são manipuladas na estrutura do
diretório, que também reside no armazenamento secundário. Em geral, uma entrada
de diretório consiste no nome do arquivo e seu identificador exclusivo. O
identificador, por sua vez, localiza os outros atributos do arquivo. Pode ser
necessário 1 kilobyte para registrar essas informações para cada arquivo. Em um
sistema com muitos arquivos, o tamanho do próprio diretório pode ser de
megabytes. Como os diretórios, assim como os arquivos precisam ser não voláteis,
eles precisam ser armazenados no dispositivo e trazidos para a memória aos
poucos, conforme a necessidade. (SILBERCHATZ et al, 2004).
Operações com Arquivos
Os arquivos existem para armazenar informações e permitir que estas sejam
recuperadas mais tarde. Sistemas diferentes oferecem operações diferentes para
permitir armazenamento e recuperação. São chamadas de sistema mais comuns
que se relacionam com arquivos: create, delete, open, close, read, write, append,
seek, get atributes, set atributes e rename. (TANENBAUM; WOODHULL, 2000).
Diretórios
Os sistemas de arquivos dos computadores podem ser extensos. Alguns
sisteas armazenam milhões de arquivos em terabytes de disco. Para gerenciar todos
esses dados, precisamos organizá-los. Essa organização é feita em duas partes:
primeiro, os discos são divididos em uma ou mais partições. Cada disco em um
sistema contém pelo menos uma partição, que é uma estrutura de nível inferior em
que os arquivos e diretórios residem. As partições podem ser consideradas discos
virtuais, também podem armazenar vários sistemas operacionais, permitindo a um
sistema inicializar e executar mais de um deles. Segundo, cada partição contém
informações dentro dela. Essas informações são mantidas em entradas no diretório
do dispositivo ou sumário do volume. O diretório do dispositivo registra
informações - como nome, local, tamanho e tipo – para todos os arquivos nessa
partição. (SILBERSCHATZ et al, 2004).
- Sistema de Diretório em nível único
A maneira mais simples de sistema de diretório é ter um diretório contendo
todos os arquivos. Algumas vezes ele é chamado de diretório-raiz, mas, como ele é
só um, o nome não importa muito. Nos primeiros computadores pessoais, esse
sistema era comum, em parte, porque havia somente um usuário. Curiosamente, o
primeiro supercomputador do mundo, o CDC 6600, também tinha somente um
diretório para todos os arquivos, mesmo sendo usado por várias pessoas ao mesmo
tempo. São mostrados os proprietários dos arquivos e não seus nomes. As
vantagens desse esquema são a simplicidade e a capacidade de localizar os
arquivos rapidamente – afinal, há somente um lugar onde procurar. (TANENBAUM,
2003).
- Diretório de dois níveis
Um diretório de único nível normalmente ocasiona confusão de nomes de
arquivos entre diferentes usuários. A solução é criar um diretório separado para
cada usuário. Na estrutura de diretório de dois níveis, cada usuário possui seu
próprio diretório de arquivos do usuário (UFD). Os UFD possuem estruturas
semelhantes, mas cada um lista apenas os arquivos de um único usuário. Quando a
tarefa de um usuário é iniciada ou quando um usuário efetua o login, o diretório de
arquivos mestre (MDF) é pesquisado. O MDF é deixado por nome de usuário ou
número de conta, e cada entrada aponta para o UFD desse usuário. Quando um
usuário se refere a determinado arquivo, somente se próprio arquivo UFD é
pesquisado. Assim, diferentes usuários podem ter arquivos com o mesmo nome,
desde que todos os nomes de arquivo dentro de cada UFD sejam exclusivos.
(SILBERCHATZ et al, 2004).
Implementação de Arquivos
A questão mais importante na implementação de armazenamento de arquivos
talvez seja a manutenção do controle de quais blocos de discos estão relacionados
a quais arquivos. São usados vários métodos em diferentes sistemas operacionais.
(TANENBAUM, 2003).
A alocação de um arquivo no disco tem como ponto de partida a definição de
um bloco de controle de arquivo (FCB – File Control Block), que nada mais é que
uma estrutura contendo os meta-dados do arquivo e a localização de seu conteúdo
no disco. Em alguns sistemas de arquivos mais simples, como o sistema FAT (File
Alocation Table) usado em plataformas MS-DOS, o FCB é bastante pequeno e cabe
na entrada correspondente ao arquivo, na tabela de diretório onde ele se encontra
definido. Em sistemas de arquivos mais complexos, os blocos de controle de
arquivos são definidos em estruturas separadas, como a Master File Table do
sistema NTFS e os i-nodes do sistema UNIX. (MAZIERO, 2011).
- Alocação contíngua
O esquema mais simples de alocação é armazenar cada arquivo como um
bloco contíguo de dados no disco. Assim, em um disco com blocos de 1K, um
arquivo de 50K alocaria 50 blocos consecutivos. Esse esquema tem duas vantagens
significativas, é simples de implementar porque monitorar os blocos de um arquivo
estão reduz-se a lembrar um número, o endereço de disco do primeiro bloco. A outra
vantagem é que o desempenho é excelente porque o arquivo inteiro pode ser lido do
disco em uma única operação. (TANENBAUM; WOODHULL, 2000).
A alocação contígua tem dois grandes problemas também. Primeiro, só pode
ser usada se o tamanho máximo do arquivo for conhecido no momento de sua
criação. Sem esta informação, o sistema operacional não pode saber quanto espaço
em disco deve ser reservado. O segundo problema é a fragmentação do disco,
resultante desta política de alocação. Perde-se muito espaço útil. A compactação do
disco normalmente é tão cara que torna-se proibitiva, apesar de poder ser realizada
à noite, quando o sistema é pouco usado. (TANENBAUM, 1995).
- Alocação por lista encadeada
Este método para armazenar arquivos mantém, cada um, 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, todo bloco de
disco pode ser usado. Para manter uma entrada de diretório é suficiente armazenar
apenas o endereço em disco do primeiro bloco. O restante pode ser encontrado a
partir dele. (TANENBAUM, 2003).
Os principais problemas da alocação encadeada são o baixo desempenho
nos acessos diretos e a relativa fragilidade em relação a erros nos blocos do disco.
Ambos os problemas provêm do fato de que os ponteiros dos blocos são
aramzenados nos próprios blocos, junto dos dados do arquivo. Para resolver esse
problema, os ponteiros podem ser retirados dos blocos de dados arazaenados em
uma tabela separada. Essa tabela é denominada Tabela de Alocação de Arquivos
(FAT), sendo a base dos sistemas de arquivos FAT12, FAT16 e FAT32 usados nos
sistemas operacionais MS-Dos, Windows e em muitos dispositivos de
armazenamento portáteis, como pen-drives, reprodutores MP3 e câmeras
fotográficas digitais. (MAZIERO, 2011).
- Alocação indexada
Na alocação indexada cada arquivo possui seu próprio bloco de índice, que é
um array de endereços de bloco do disco. A entrada i do bloco de índice aponta para
o bloco i do arquivo. O diretório contém o endereço do bloco de índice. Para ler o
bloco i, usamos o ponteiro para a entrada de bloco de índice i a fim de encontrar e
ler o bloco desejado. A alocação indexada admite acesso direto, sem sofrer com a
fragmentação externa, pois qualquer bloco livre no disco pode satisfazer a uma
requisição de mais espaço. (SILBERSCHATZ et al, 2004).
Conclusão
Quando visto de fora, um sistema de arquivos é uma coleção de arquivos e
de diretórios, mais as operações sobre os mesmo. Os arquivos podem ser lidos,
gravados, os diretórios podem ser criados e destruídos, e os arquivos podem ser
movidos de um diretório para outro. Sistemas de arquivos mais modernos suportam
um sistema de diretório hierárquico, nos quais diretórios podem ter subdiretórios ad
infinitum.
Quando visto do interior, um sistema de arquivos parece bem diferente. Os
projetistas de sistema de arquivos precisam preocupar-se com o modo como o
armazenamento é alocado e com o modo como o sistema monitora qual bloco vai
com qual arquivo. Bem como diferentes sistemas têm diferentes estruturas de
diretórios, a confiabilidade e o desempenho do sistema de arquivos também são
questões importantes.
Entre os exemplos de sistemas de arquivos estão ISSO 9660, CP/M, MS-
DOS, Windows 98 e Unix. Eles se diferenciam de várias maneiras, inclusive pelo
modo de monitorar quais blocos vão para quais arquivos, pela estrutura de diretórios
e pelo gerenciamento do espaço livre em disco.
Referências
JANDL, Peter, Jr. Notas sobre Sistemas Operacionais. 2004. Disponível em:
<http://rossano.pro.br/fatec/cursos/soii/SistemasOperacionais-peter-jandl-jr.pdf>.
Acesso em 20-03-2012 ás 16:00.
MAZIERO, Carlos Alberto. Sistemas Operacionais VI – Gerência de Arquivos.
2011. Disponível em: <http://dainf.ct.utfpr.edu.br/~maziero>. Acesso em 06-04-2012
ás 10:50.
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGME, Game. Sistemas
operacionais. Rio de Janeiro: Elsevier, 2004.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. Rio de Janeiro: JC,
1995.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2. Ed. São Paulo:
Pearson Prentice Hall, 2003.
TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas Operacionais: projeto
e implementação. 2. ed. Porto Alegre: Bookman, 2000.
Top Related