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.
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.
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.
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:
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:
O procedimento de fechamento de um arquivo funciona de forma semelhante nos sistemas operacionais.
Basicamente, para fechar um arquivo: