Gestão de Ficheiros

Cap13

 

Índice

Ficheiros

Descritor de ficheiros

Estrutura do descritor de ficheiros UNIX

Ficheiros estruturados

Estrutura Sequencial de Records

Estrutura Sequencial de Records com index

Ficheiros invertidos

Sistema de gestão de base de dados

Implementação de ficheiros de baixo nível

Operações Open e Close

Gestão de blocos

Alocação de blocos contíguos

Listas ligadas

Listas ligadas com index

i-nodes

Directorias

Mount (Montagem) de ficheiros

 


 

Objectivos do Capítulo

Ficheiros são o mecanismo pelo qual os utilizadores guardam informação de uma sessão para outra. Eles também são utilizados para guardar informação por longos períodos de tempo. 

 

 

Ficheiros

Da perspectiva do programador, ficheiros são a abstracção fundamental dos dispositivos de armazenamento secundários (como fitas magnéticas ou unidades de disco), embora o software de sistema também pode prover outras abstracções de alto-nível como é o caso da memória virtual. Cada ficheiros é uma colecção de dados armazenada num dispositivo. O gestor de ficheiros implementa esta abstracção e provê directórios para organizar ficheiros. também provê um espectro de comandos para ler e escrever os conteúdos de um ficheiros, fixa a posição read/write de um ficheiros, fixa e usa o mecanismo de protecção, muda a propriedade, lista ficheiros num directório, e remove arquivos.

 

Este modelo de operação é tão prevalecente que pode ser construído facilmente no modelo de processo. Por exemplo, quando um processo é criado em UNIX, tem acesso automaticamente a três ficheiros:

 

Um ficheiros é um recipiente para uma colecção de informação. O gestor de ficheiros fornece um mecanismo de protecção que permite aos utilizadores da máquina administrar os como processos executados por utilizadores diferentes podem ter acesso a informação em um ficheiro.

 

Descritor de ficheiros

O sistema de ficheiros mantém uma estrutura de dados chamada descritor de ficheiros no qual armazena informação detalhada sobre cada ficheiros. Cada gestor de ficheiros armazena diferente informação, embora a maioria mantém as seguintes entradas:

 

Estrutura do descritor de ficheiros UNIX

O sistema de ficheiros mantém uma estrutura de dados chamada descritor de ficheiros no qual armazena informação detalhada sobre cada ficheiros. Cada gestor de ficheiros armazena diferente informação, embora a maioria mantém as seguintes entradas:

 

Ficheiros estruturados

 

Estrutura sequencial de records

Um ficheiro sequencial estruturado é uma sucessão de registros lógicos, indexada pelos inteiros não-negativos. Como com ficheiros de sequência de bytes o acesso ao ficheiro é definido por uma posição de ficheiros, mas esta posição indexa registros no ficheiro em vez de bytes. Operações no ficheiro são as seguintes:

·        ·Open(filename). Abre o ficheiro

·        Close (fileID). Fecha o ficheiro.

·        GetRecord (fileID, record). Retorna o endereço do registo pela posição do ficheiro.

·        PutRecord (fileID, registro). Escreve um designado registo na posição corrente do ficheiro.

·        Seek (fileId, Posição). Move a posição do ficheiros para apontar ao registo designado.

 

Estrutura sequencial de records com index

Ficheiros sequenciais indexados não são úteis em algumas aplicações. Ficheiros sequenciais indexados forçam o programa para administrar o índice de forma que eles possam ter acesso a registos desejados.

Ficheiros sequenciais indexados são extensamente usados para ficheiros que têm números muito grandes de registros, particularmente se os registros são frequentemente referenciados de uma forma não-sequencial.

 

Ficheiros invertidos

 Há muitas aplicações nas quais o campo de índice deve ser procurado pela aplicação antes de um registro. Ficheiros invertidos podem suportar múltiplos campos de índice.

 

Sistemas de Gestão de Base de Dados

Normalmente o DBMS é constituído por vários ficheiros, estruturados de forma a que os dados possam ser acedidos mais rapidamente.

A definição de dados e linguagens de manipulação e os seus processos são entidades complexas não fazendo parte de um sistema operativo. Alguns DBMSs usam os ficheiros normais providos pelo sistema operativo para uso genérico. 

 

 

Implementação de ficheiros de baixo nível 

O dispositivo de armazenamento pode ser um dispositivo de acesso sequencial como por exemplo uma tape (fita magnética), ou um dispositivo de acesso aleatório como por exemplo os discos rígidos.

A realização dos ficheiros necessita de um suporte para  tradução da sequência de bytes no bloco lógico para o registo de bloco, no dispositivo físico.

A realização do disco do sistema de ficheiros de baixo-nível deve fornecer um mecanismo para administrar uma colecção de blocos para armazenar os bytes de um ficheiros particular de forma que eles podem ser acedidos como se estivessem armazenados como um fluxo de byte contíguo.  

Operações Open e Close

A operação Open instrui o gestor de ficheiros a inicializar as estruturas de dados internas precisas para administrar o I/O. Especificamente, executa os seguintes passos:

1.      Localiza o descritor de ficheiros no sistema de ficheiros.

2.      Obtém informação relativa ao ficheiros no descritor de ficheiros e informação relativo ao processo no descritor de processo.

3.      Verifica autorização de acesso ao ficheiro.

4.      Cria uma entrada em uma file status table (tabela de status de ficheiros) para manter a interacção do processo com o ficheiro.

5.      Aloca recursos necessários para manter o uso do ficheiro, como buffer de I/O (Entrada e Saída).

 

Gestão de blocos

Administração de bloco é a parte mais importante do gestor de ficheiros para dispositivos de armazenamento aleatório.

Existem vários métodos de gerir os blocos:

·        Alocação de blocos contíguos

o       Desvantagens

Implementação simples

Estratégias de alocação contígua tenderão a fragmentar o espaço de disco físico (embora o disco possa ser compactado para eliminar a fragmentação).

o       Vantagens

Períodos de acesso muito rápidos para transferência de ficheiros, porque todos os blocos do ficheiro estão próximos no disco (reduzindo o disco assim movimento de cabeça quando o ficheiros é inteiramente copiado).

 

·        Listas ligadas

Cada ficheiro é mantido numa lista ligada de blocos

o       Vantagens

Não existe fragmentação.

Todos os blocos podem ser utilizados.

o       Desvantagens

Acesso muito lento.

 

·        Listas ligadas com index

Utilizado no DOS.

o       Vantagens

O acesso é muito mais rápido do que no caso anterior (Lista Ligada) pois contém uma tabela de index. Uma vez que a tabela de index está em memória, para aceder a uma parte do ficheiro basta consultar a tabela e fica-se a saber onde procurar no disco.

o       Desvantagens

Como a tabela está em memória, o n.º de blocos é restringido pela memória.

 

·        i-nodes

Associa-se a cada ficheiro uma pequena tabela, designada por index-node.

Utilizado no UNIX.

 

 

Directorias

Um directório é um conjunto de ficheiros logicamente associados a outros directórios de ficheiros.

Directórios de UNIX têm a estrutura em forma de grafo.

O gestor de ficheiros proporciona aos utilizadores um conjunto de comandos para administrar um directório, incluindo estes:

·        enumerate. Retorna uma lista de todos dos ficheiros e subdirectórios.

·        copy. Cria uma copia de um ficheiro existente.

·        rename. Muda o nome simbólico de um ficheiro existente.

·        delete. Remove o ficheiro identificado do directório

 

Mount (Montagem) de ficheiros

Computadores com dispositivos de armazenamento que têm mídia removíveis (como tapes de fita e disquetes) devem poder mudar a estrutura de ficheiros do sistema. O modelo usado por UNIX para montar e desmontar mídia removíveis é comum à maioria dos gestores de ficheiros.

O comando mount junta um sistema de ficheiros numa hierarquia de directório existente. Faz substituindo um directório no sistema de ficheiros permanente pela raiz do sistema de ficheiros do dispositivo a montar.

Isto é, os ficheiros contidos no dispositivo (por exemplo a drive de disquetes) depois de montados são utilizados como se fossem uma directoria do disco rígido.

 


Autor:

Nelson Freire da Silva

Homepage: http://orion.ipt.pt/~nelsilva

Email: nelsilva@zmail.pt

Engenharia Informática