Buscar

Gerência do Sistema de Arquivos

Prévia do material em texto

Gerência do Sistema de Arquivos
A parte do sistema operacional que gerencia os arquivos e as operações de arquivos é a gerência do sistema de arquivos. A mesma também cuida da segurança no acesso aos arquivos, garantindo que um usuário não tenha acesso não autorizado a um arquivo que pertence a outro usuário. A gerência do sistema de arquivos também cuida do compartilhamento dos arquivos, através de uma rede, por vários processos e usuários do sistema operacional. Essa gerência é a parte mais visível do sistema operacional para o usuário pois ele está sempre manipulando arquivos, seja para criar ou editar seus documentos ou seja executando programas, que são arquivos, no computador.
O tipo de dispositivo onde o arquivo é armazenado deve ser isolado do sistema operacional, de forma que exista uma independência entre os arquivos a serem manipulados e o meio de armazenamento. O sistema operacional, deve ser capaz de manipular arquivos independente do dispositivo físico onde estão armazenados.
Um arquivo precisa ser identificado pelo sistema operacional através de um nome. Em todos os sistemas operacionais existem regras particulares para a definição de nomes de arquivos tais como tamanho do nome, caracteres usados para o nome do arquivo, distinção entre caracteres maiúsculos e minúsculos, etc. Alguns sistemas operacionais incluem uma extensão como sendo parte do nome do arquivo. A extensão serve para identificar o tipo do conteúdo do arquivo. Em todos os sistemas operacionais é válida a regra de não ser permitido dois arquivos com o mesmo nome no mesmo diretório.
A organização de arquivos consistem em como os dados estão internamente armazenados.  A estrutura dos dados podem variar em função do tipo de informação do arquivo. Arquivos texto e arquivos executáveis são muito diferentes e possuem propósitos diferentes, consequentemente estruturas diferentes podem se ajustar melhor a um tipo de arquivo do que a outro tipo.
Quando um arquivo é criado, o programa que o cria, determina a estrutura que será utilizada para armazenar os dados no arquivo.
A organização de arquivo mais simples é aquela em que os dados são organizados em uma sequência não estruturada de bytes. Neste tipo de organização não existe uma estrutura lógica definida para os dados. Esta forma de organização oferece grande flexibilidade para armazenar os dados. Entretanto, o acesso aos dados não permite um acesso direto a um dado do arquivo. Como não há estrutura definida não é possível calcular o endereço de um dado dentro do arquivo. Sem o endereço não é possível o acesso direto.
Alguns sistemas operacionais possuem diferentes organizações de arquivos e neste caso cada arquivo criado deve seguir alguma organização suportada pelo sistema de arquivos. As organizações mais conhecidas são a sequencial, a relativa e a indexada.
Operações de Entrada/Saída
Todas as operações de entrada/saída são gerenciadas pela gerencia do sistema de arquivos que possui um conjunto de operações de entrada/saída tais como tradução de nomes em endereços, leitura e gravação de dados e criação e eliminação de arquivos. Na realidade as rotinas de entrada/saída tem como função disponibilizar uma interface simples e uniforme entre a aplicação e os dispositivos de entrada/saída.
Os programas ao realizarem uma operação de leitura/gravação se comunicam com as rotinas de entrada/saída do sistema de arquivos e desta forma desconhecem detalhes dos dispositivos físicos.
Para suportar as operações de entrada/saída o sistema de arquivos mantem informações de cada arquivo criado. As informações são também chamadas de atributos dos arquivos e permitem ao sistema de arquivos conhecer entre outras coisas o tamanho de um arquivo, qual o usuário dono do arquivo, a data de criação, qual a organização do arquivo, quais as permissões de leitura/gravação/execução do arquivo, data do ultimo backup, senha para acesso ao arquivo.
Os atributos de um arquivo podem variar de acordo com o sistema operacional. Porém alguns atributos como tamanho, data de criação e permissões estão presentes em todos os sistemas operacionais.
Diretórios
O sistema de arquivos organiza os arquivos em estruturas conhecidas como diretórios. O diretório é uma estrutura de dados em árvore que contém elementos associados aos arquivos onde cada elemento armazena informações como a localização física, nome, organização do arquivo e demais atributos do arquivo. 
Quando um arquivo é aberto o sistema de arquivos busca sua entrada na estrutura de diretórios e armazena a localização e nome do arquivo em uma tabela mantida na memória principal. Esta tabela mantem todos os arquivos abertos e é mantida em memória por questões de desempenho das operações de arquivos. É importante que ao término de uso do arquivo o mesmo seja fechado para que os dados da tabela sejam liberados. 
A implementação mais simples de uma estrutura de diretórios é chamada de nível único. Neste caso não existem subdiretórios, apenas um único diretório. Contendo todos os arquivos do disco. Este modelo é muito limitado e não é bom para segurança dos arquivos. 
Na maioria dos sistemas operacionais o diretório é tratado com um arquivo tendo identificação (um nome) e atributos.
Gerência de Espaço Livre em Disco
A criação de arquivos existe que seja feito um gerenciamento do espaço livre, quais blocos e setores estão livres para criação de arquivos. Este controle é feito através de uma estrutura de dados em memória que possui uma lista ou tabela onde podemos identificar blocos livres que pode ser alocados a um arquivo. Neste caso o espaço é removido da lista para que não seja alocado a outro arquivo. Da mesma forma, quando um arquivo é removido, os blocos são liberados e colocados de volta na lista de blocos livres.
Uma forma mais simples é usar uma tabela de bits ou mapa de bits. Cada entrada na tabela é associada a um bloco do disco representado por um bit, podendo assumir valor igual a 0 (bloco livre) ou 1 (bloco alocado a algum arquivo).
U	ma outra forma é usar uma estrutura de dados de lista encadeada de todos os blocos livres do disco. Nesta forma de alocação de espaço livre, cada bloco possui o endereço do próximo bloco no disco. A partir do primeiro bloco livre encontrado é possível encontrar outros blocos livres para alocação ao arquivo através do acesso de forma encadeada.  
Uma outra forma é considerar que blocos contínuos são geral alocados ou liberados simultaneamente.  Com isso podemos enxergar disco como um conjunto de segmentos de blocos livres. Desta forma, mantem-se uma tabela com o endereço do primeiro bloco de cada segmento e o número de blocos livres que se seguem. Esta técnica é conhecida com técnica de blocos livres.
Gerência de Alocação de Espaço em Disco
O sistema de arquivos também precisa gerenciar o espaço alocado aos arquivos pois na medida em que o tempo passa e atualizações são feitas, os arquivos mudam e com isso a necessidade de espaço para armazenamento também muda. Como o recurso é limitado, o espaço em disco, é necessário gerenciar também o espaço alocado aos arquivos.
Existem diferentes técnicas para gerenciamento do espaço alocado aos arquivos. As principais técnicas são as seguintes:
A Alocação Contígua
A alocação contígua consistem em armazenar um arquivo em blocos sequencialmente dispostos no disco. Neste tipo de alocação, o sistema de arquivos localiza um arquivo através do primeiro bloco e da sua extensão em blocos (tamanho do arquivo).
O principal problema para esta técnica de alocação de espaço é que caso um arquivo seja criado é necessário que haja blocos livres contíguos suficiente no disco para permitir a alocação. Nem sempre isso é possível pois com o tempo ocorre a fragmentação do disco.

Continue navegando