Unidade H 1 - Sistema de arquivos

O arquivo

O arquivo, que seria a menor parte do sistema de arquivos; que conforme visto anteriormente possui algum significado para o usuário possui também alguns atributos – que variam de sistema operacional parra sistema operacional. De forma geral os atributos podem ser:

Operações básicas com arquivos

Naturalmente queremos que o sistema operacional nos permita fazer o “manuseio” dos arquivos que gerencia. Logo, é necessário que o sistema ofereça um conjunto de operações básicas para este serviço.

Criação

Remoção

Leitura

Alteração

Escrita no fim do arquivo

Execução do código contido

Alteração de permissões

        
Outras operações podem ser compostas a partir de operações básicas, como por exemplo:

Cópia de arquivo  - esta operação é composta basicamente pelas seguintes operações básicas:

Movendo arquivo - esta operação é composta basicamente pelas seguintes operações básicas:

Estrutura interna do arquivo

Basicamente, o sistema operacional não se preocupa com o conteúdo do arquivo (não faz diferença o que tem dentro do arquivo) e, via de regra, o sistema operacional vê o arquivo como “uma sequencia de bytes, cujo significado é conhecido pelo usuário” [Oliveira, pg, 146, 2008]. Por outro lado, a estrutura interna, ou a forma com que os dados são armazenados interfere na em alguns aspectos do acesso deste arquivo.

O arquivo pode ter diversos formatos (estruturas) internas de armazenamento dos dados. Este formato está diretamente ligado à aplicação que faz uso do arquivo.

Extensão de nome
Arquivos podem ter extensões de nome, que são um adendo ao nome, frequentemente utilizados pelo usuário para auxílio na organização do usuário proprietário do arquivo, não interferindo na forma com que o sistema operacional trata estes arquivos, mas informando

As vezes arquivos com mesma função, mas de programas diferentes possuem extensões diferentes. Por exemplo arquivos texto feitos no editor Word possuem extensão .doc, enquanto arquivos texto feito no editor Broffice possuem extensão .odt.

Na tabela a seguir, são apresentados algumas extensões clássicas.

Tipo Extensão
Arquivo texto .txt
Arquivo fonte C .c
Arquivo Word .doc, .docx
Arquivo Writer Broffice .odt

Controle de acesso

O controle de acesso é um recurso para sistemas operacionais multiusuários para garantir a proteção dos arquivos, determinando regras de acesso e bloqueio.     Todo arquivo possui um conjunto de informações informando a qual usuário ele pertence e as regras de permissões de acesso.

O controle de permissões, via de regra, começa no ato de login de um usuário quando o usuário informa seu login e senha; caso seja autenticado no sistema o usuário ganha permissão de acesso e inicia uma sessão de trabalho, que poderá ser em um ambiente de texto ou gráfico. A partir deste momento o sistema operacional sabe quem está logado e todos os processos disparados pelo usuário “herdarão” seus direitos de acesso.

Ao fazer um acesso a um arquivo o sistema operacional confere se o usuário que está executando a ação consta na lista de permissões do arquivo acessado; estando autorizado o acesso acontece normalmente; não estando autorizado o sistema operacional emite um aviso de acesso não autorizado. Exemplo:

O sistema operacional pode ainda trabalhar com o conceito de grupos de usuários, em que diversos usuários são associados a um grupo (normalmente esta associação acontece por alguma ponto em comum ou semelhança de comportamento). A partir deste ponto, poderemos liberar o acesso a um grupo de usuários. Exemplo

Forma de acesso

O arquivo pode ser acessado de diversas formas, o que poderá interferir no desempenho deste ou daquele tipo de arquivo. Abaixo vemos os principais tipos de acesso.

Acesso sequencial:
O arquivo começa a ser lido do início para o fim. Este é o método mais simples de se acessar um arquivo em que as informações são buscadas parte por parte (sequencialmente).

É um mecanismo utilizado, por exemplo, por:

Este método de acesso é inadequado para pesquisa de dados em arquivos do tipo registro – porque para buscar um registro em qualquer posição do arquivo, teríamos que percorrer o mesmo desde o início.

Acesso relativo:
O acesso relativo é utilizado para pesquisa em uma coleção de registros. Basicamente ao buscar uma informação, informamos exatamente o registro que queremos ler. Desta forma, temos um acesso muito mas rápido, isto porque não precisamos percorrer todo o arquivo para recuperar uma informação. Por outro lado este mecanismo é ineficiente para busca em arquivos texto (código fonte por exemplo), já que não temos uma estrutura de registros interna.

Este sistema de acesso é equivalente ao acesso a banco de dados gerenciado por um SGBD.

Posição corrente:
Neste mecanismo a leitura será feita a partir do local em que estamos dentro do arquivo (posição corrente) – não é necessário informar a posição a ser lida. Além disso, é possível reposicionar o “cursor” dentro do arquivo para novas leituras.