Unidade H 1 - Sistema de arquivos

Implementação de arquivos

A implementação de arquivos define como um sistema operacional cria e mantém um arquivo no seu sistema. Diversos mecanismos e formas poderão ser implementados, havendo diferenças entre sistemas operacionais. Neste ponto vamos estudar a forma elementar ou clássica para implementação de arquivos.

Descritor de arquivos

O sistema operacional tem uma estrutura de controle interna, chamada descritor de arquivo 1 .. chamada descritor de arquivo 2, que guarda todas as informações de um determinado arquivo. Em outras palavras, cada arquivo possui um descritor que “descreve” o arquivo. As informações mínimas que compõem um descritor de arquivos são:

O descritor de arquivos é uma informação persistente, ou seja, não se perde quando o sistema é desligado. Para que isto seja possível os descritores de um sistema de arquivos são guardados no próprio disco, dentro da própria partição onde estão os arquivos a que eles (os descritores) se referem. No ato da criação da partição, o sistema operacional reserva algumas áreas do disco para armazenar guardar estes descritores – evidentemente, estas são áreas protegidas e que um usuário comum não tem acesso.

Para acessar um arquivo, o descritor de processo precisa antes ser carregado na memória e ficará carregado pelo tempo que o arquivo estiver sendo manipulado. Ao fazer o encerramento de uso do arquivo, o descritor que está na memória é “salvo” no disco, atualizando as informações para o próximo uso.

TDAA – Tabela de Descritores de Arquivos Abertos

Para fazer acesso a algum arquivo o processo solicitante precisa disparar uma chamada de sistema informando sua intenção e com qual arquivo. Esta relação é mantida, na memória do sistema operacional, em uma estrutura chamada tabela de descritores de arquivos abertos. Desta forma, o sistema operacional sabe quais arquivos estão abertos e por quais processos, além de controlar qual o tipo de acesso o processo está executando no arquivo.

Tipicamente, uma TDDA carrega todas as informações do descritor de arquivos, além de controlar quantos e quais processos estão acessando/manipulando determinado arquivo.

TAAP – Tabela de Arquivos Abertos por Processo

O sistema operacional também precisa ter controle sobre as variáveis de cada processo em relação a um determinado arquivo. Isto ocorre porque cada processo pode abrir um mesmo arquivo de formas diferentes; aqui entra uma outra estrutura de controle chamada Tabela de Arquivos Abertos por Processo que mantém informações que relacionam o processo com o descritor de arquivos aberto. Por exemplo:

Procedimento de abertura de um arquivo

O procedimento de abertura de um arquivo poderá variar entre sistemas operacionais. Quando um processo emite uma chamada de sistema para abertura de um arquivo, o sistema operacional segue (basicamente) os seguintes passos:

  1. procura no disco o descritor de arquivo que se busca
    1. esta pesquisa é feita no diretório corrente ou no diretório informado na chamada de sistema;

  2. Se o descritor não é encontrado então o arquivo não existe e um aviso é dado ao processo solicitante;
  3. Se o descritor é encontrado, um código (tipo um endereço), composto pela partição + endereço do descritor é retornado para a chamada de sistema;
  4. O sistema de arquivos consulta a TDAA para verificar se o descritor de arquivo localizado já está aberto.
    1. Se NÃO ESTÁ aberto, carrega o descritor de arquivo na TDDA;
    2. Se JÁ ESTÁ aberto, incrementa o número o registro de quantos processos estão usando este descritor da arquivo;

  5. Uma vez que o descritor de arquivo está carregado na TDDA o sistema operacional confere se o processo tem permissão de manipulação do arquivo;
    1. Se permissão está certa prossegue liberando o arquivo para uso do processo;
    2. Senão gera um erro que é comunicado ao processo e fecha o arquivo;

Procedimento de fechamento de um arquivo

O procedimento de fechamento de um arquivo funciona de forma semelhante nos sistemas operacionais.

Basicamente, para fechar um arquivo:

  1. o sistema de arquivos localiza o descritor na TDAA e decrementa o contador de processos usando o descritor de arquivo;
  2. quando este contador chegar a zero, o sistema de arquivos sabe que não há mais processos fazendo uso do arquivo; então o registro é fechado, ou seja, o espaço na TDAA é liberado para uso por outro descritor de arquivo.

 

1   O descritor de arquivos é uma estrutura equivalente ao descritor de processos;

2   O descritor de arquivos é uma estrutura equivalente ao descritor de processos; aaaaaaaaa