Arquitetura de Sistemas Operacionais Técnico em Informática MBI1 e NBI2 Sistema de Arquivos
Sumário Introdução Arquivos Atributos Diretórios Organização de Arquivos Métodos de Acesso Operações de Entrada/Saída Atributos Diretórios Gerência de Espaço Livre em Disco Gerência de Alocação de Espaço em Disco Implementação de Caches
Conceito de Arquivos Existem várias definições possíveis para o conceito de arquivos. Tanembaum afirma que, de forma simplificada, os arquivos podem ser entendidos como seqüências de bytes não interpretadas pelo sistema, dependendo-se de aplicações apropriadas para sua correta utilização (1995, p. 246). Deitel coloca que arquivos são uma coleção identificada de dados (1992, p. 389) enquanto Guimarães explica: “Um arquivo é um conjunto de informações relacionadas entre si e residentes no sistema de memória secundária: discos, fitas, cartões, etc.” (1986, p. 211)
Introducão Um processo deve ser capaz de ler e gravar grande volume de dados em dispositivos como fitas e discos de forma permanente, além de poder compartilhá-los com outros processos A manipulação de arquivos é uma atividade freqüentemente realizada pelos usuários, devendo sempre ocorrer de maneira uniforme, independente dos diferentes dispositivos de armazenamento A maneira pela qual o sistema operacional estrutura e organiza estas informações é através da implementação de arquivos
Arquivos Extensão de arquivos
Organização de Arquivos
Métodos de Acesso Acesso direto Arquitetura de Sistemas Operacionais – Machado/Maia
Operações de Entrada/Saída Arquitetura de Sistemas Operacionais – Machado/Maia
Operações de Entrada/Saída Rotinas de E/S Arquitetura de Sistemas Operacionais – Machado/Maia
Atributos Atributos de arquivos Arquitetura de Sistemas Operacionais – Machado/Maia
Diretórios Estrutura de diretórios de nível único
Diretórios Estrutura de diretórios com dois níveis
Diretórios Estrutura de diretórios em árvore
Diretórios Path de um arquivo
Gerência de Espaço Livre em Disco A criação de arquivos em disco exige que o sistema operacional tenha o controle de quais áreas ou bloco do disco estão livres. Geralmente, há o uso de uma lista ou tabela para identificar blocos livres que poderão ser alocados a um novo arquivo. Neste caso, o espaço é removido da estrutura para que não seja reutilizado. Da mesma forma, quando um arquivo é eliminado, todos os seus blocos são liberados para a lista de espaços livres. A forma mais simples de implementar uma estrutura de espaços livres é através de uma tabela denominada mapa de bits ( bits map ). Cada entrada da tabela é associada a um bloco do disco representado por um bit, que pode assumir estado 0 ( livre ) ou 1 ( ocupado ). O grande problema dessa implementação é o grande consumo de memória, já que para cada bloco deve existir uma entrada na tabela.
Gerência de Espaço Livre em Disco Uma segunda maneira de realizar esse controle é com uma estrutura de lista encadeada de todos os blocos livres do disco. Para que isso seja possível, cada bloco deve armazenar um endereço do bloco seguinte. A partir do primeiro bloco, então, é possível o acesso seqüencial aos demais. Como desvantagens deste modelo, tem-se o consumo de espaço em disco para armazenamento do caminho de acesso e um algoritmo seqüencial de pesquisa na lista. Uma outra solução faz uma tabela de blocos livres, contendo o endereço inicial do bloco de cada segmento e o número de blocos contíguos livres que o seguem.
Gerência de Espaço Livre em Disco Alocação de espaço em disco
Alocação Contígua Uma forma de organizar-se os arquivos fisicamente é através da armazenagem dos dados em áreas adjacentes dos dispositivos físicos, isto é, em setores consecutivos das unidades de disco. Sistemas de arquivos implementados desta forma são denominados de alocação contígua ou contínua e neles o armazenamento físico corresponde à organização lógica do arquivo, ou seja, o primeiro bloco de dados ocupa o primeiro setor alocado e assim sucessivamente.
Gerência de Alocação de Espaço em Disco Alocação Contígua
Gerência de Alocação de Espaço em Disco Desfragmentação
Alocação não contígua A outra forma possível de organizar-se fisicamente o armazenamento de arquivos é através da alocação não contígua. Neste esquema cada bloco do arquivo pode estar armazenado num setor distinto da unidade de disco, de forma que o armazenamento físico não corresponde à organização lógica do arquivo.
Alocação não contígua
Gerência de Alocação de Espaço em Disco Alocação Indexada
Proteção de Acesso Lista de Controle de Acesso
Implementação de Caches Acesso a disco é bastante lento Buffer cache minimiza este problema Quando uma operação é realizada o sistema verifica se a informação se encontra no buffer cache Em caso positivo, não é necessário o acesso ao disco Caso o bloco requisitado não se encontre no cache, a operação de E/S é realizada e o cache é atualizado