Sistema De Arquivos
Dissertações: Sistema De Arquivos. Pesquise 862.000+ trabalhos acadêmicosPor: brunopoa • 2/11/2014 • 4.859 Palavras (20 Páginas) • 308 Visualizações
Sistema de Arquivos
O sistema de arquivos é a parte do sistema operacional mais visível para os usuários. Durante o tempo todo, usuários manipulam arquivos contendo textos, planilhas, desenhos, figuras, jogos, etc. Os arquivos são normalmente implementados a partir de discos magnéticos. Como um acesso a disco demora cerca de 10000 vezes mais tempo do que um acesso à memória principal, são necessárias estruturas de dados e algoritmos que otimizem os acessos ao disco. É importante observar que os sistemas de arquivos implementam um recurso em software que não existe no hardware. O hardware 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 abstração criada pelo SO.
8.1 O Conceito de Arquivo
Um arquivo pode ser genericamente definido como uma coleção de dados relacionados entre si. Normalmente, arquivos contém programas (tanto fonte como objeto) ou dados.
Arquivos são referenciados através de nomes. Além de um nome, cada arquivo possui também outros atributos, tais como: tipo, momento da criação, identificação do criador, tamanho, etc.
• Tipos de arquivos
Diferentes tipos de informação podem ser armazenados em um arquivo: programas fonte, programas objeto, texto, dados numéricos, registros de funcionários, som, imagem, etc. Cada arquivo possui uma estrutura interna, conforme sua aplicação. Por exemplo, um arquivo texto é uma seqüência de caracteres organizados em linhas e parágrafos; um programa executável é uma seqüência de bytes representando instruções em código de máquina; um programa fonte é uma seqüência de caracteres que representam comandos de uma linguagem de programação (normalmente estes arquivos são do tipo “somente texto”, não admitindo qualquer tipo de formatação especial).
Uma questão importante é até que ponto o SO deve conhecer a estrutura interna dos arquivos. Para ter esse conhecimento, o SO vai ser maior e mais complexo. Além disso, para evoluir, deverá permitir a definição de novos tipos de arquivos, uma vez que novas aplicações podem expor novas demandas, e com elas, tipo de arquivos diferentes. Isto inviabiliza a pretenção de conhecer a estrutura interna dos arquivos, na prática. Em geral, o conhecimento do SO se limita às informações contidas no registro descritor do arquivo. Isto já lhe permite bloquear algumas operações inválidas. Por exemplo, pode recusar-se a imprimir um arquivo que contenha um programa executável.
• Sistemas baseados em fita
Os primeiros sistemas eram baseados em fita magnética. No início, cada arquivo era mapeado para uma única fita. Isso ocasionava um enorme desperdício de espaço, porque cada fita (de 2400 pés, cerca de 750 m) era capaz de armazenar 5 gigabytes, mas a maioria dos arquivos era pequena (alguns Kb). Por outro lado, havia o problema dos arquivos muito grandes, que poderiam superar a capacidade de uma única fita.
O problema dos arquivos grandes foi resolvido com o sistema de armazenamento multi-volume. O desperdício de espaço foi resolvido permitindo a gravação de diversos arquivos em uma única fita. Como resultado, passou a ser necessário saber em que posição da fita cada arquivo estava armazenado. A solução foi adicionar à fita um diretório, onde cada entrada continha um nome de arquivo e sua posição na fita. Tais diretórios também armazenavam informações adicionais sobre os arquivos.
Passos para a leitura de um arquivo em fita:
1. Localizar e carregar a fita indicada pelo usuário
2. Localizar no diretório a entrada correspondente ao arquivo
3. Posicionar a fita no ponto correspondente ao início do arquivo
4. Iniciar a leitura
5. Terminar a leitura quando encontrar marca de fim de arquivo.
Para um programa poder trabalhar simultaneamente com dois arquivos, eles tinham que estar em fitas diferentes.
• Sistemas baseados em disco
Muitos dos problemas dos sistemas de fita foram resolvidos com os sistemas baseados em discos. Um disco é dividido em trilhas, sendo o número de trilhas uma característica 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. Unidades de disco fixo usualmente possuem diversos discos superpostos, cada um com duas faces magnetizadas, o que corresponde a diversas superfícies de gravação (a tecnologia atual permite sobrepor até 8 discos). Para acessar um determinado setor do disco é necessário informar: face, trilha e setor. As cabeças de leitura e gravação são deslocadas até a trilha correta (tempo de seek), chaveadas eletronicamente para a face correta e então esperam até que o setor solicitado passe por baixo (tempo de latência). Um cilindro é o conjunto de trilhas que estão na mesma posição, porém em diferentes faces. Não é necessário deslocar as cabeças para acessar trilhas de um mesmo cilindro.
Usualmente, o SO trata o disco como um grande vetor unidimensional de blocos, cada bloco correspondendo a um setor. Esses blocos são numerados desde 0 até N-1, onde N é o número de setores do disco.
A vantagem do disco em relação à fita é a possibilidade de acessar facilmente qualquer setor a qualquer momento. A fita impõe um acesso estritamente seqüencial. O acesso também é mais rápido no disco.
Assim como nas fitas, e por mais forte razão, os discos também possuem um diretório, indicando em que posições se encontram os arquivos. O diretório é armazenado no próprio disco, permitindo que o disco seja removido e utilizado mais tarde, sem que os nomes dos arquivos sejam perdidos. Na verdade, cada entrada de diretório contém todas as informações necessárias sobre o arquivo, constituindo o que se denomina registro descritor de arquivo.
• Registro descritor de arquivo
A estrutura básica 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 contém todas as informações sobre um determinado arquivo. Algumas informações não são visíveis aos usuários,
...