Arquitetura de Sistemas Operacionais • Técnico em Informática MBI1 e NBI2 Sistema de Arquivos Cap. 11 – Sistema de Arquivos 1 Sumário • Introdução • Arquivos – 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 Cap. 11 – Sistema de Arquivos 2 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) Cap. 11 – Sistema de Arquivos 3 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 Cap. 11 – Sistema de Arquivos 4 Arquivos • Extensão de arquivos Cap. 11 – Sistema de Arquivos 5 Organização de Arquivos • Organização de Arquivos Ana Cláudia Teresa Byte Beatriz (a) Organização não-estruturada Camila Daniele Patrícia Isabela Maria Tina Vanessa Registro (b) Organização Indexada Cap. 11 – Sistema de Arquivos 6 Métodos de Acesso • Acesso direto Registro 0 Registro 1 Registro 2 Registro n Deslocamento de dois registros Cap. 11 – Sistema de Arquivos 7 Operações de Entrada/Saída • Operações de Entrada/Saída A p lic a çã o Ro tin a s d e E/ S D isp o sitiv o s Cap. 11 – Sistema de Arquivos 8 Operações de Entrada/Saída • Rotinas de E/S Cap. 11 – Sistema de Arquivos 9 Atributos • Atributos de arquivos Cap. 11 – Sistema de Arquivos 10 Diretórios • Estrutura de diretórios de nível único Identificação Proteção Organização Localização Atributos Diretórios Cap. 11 – Sistema de Arquivos Arquivos 11 Diretórios • Estrutura de diretórios com dois níveis Arquivo 1 Usuário 1 Arquivo 2 Usuário 2 Arquivo 3 Usuário 3 Arquivo 1 Arquivo 1 Usuário n Arquivo 2 Arquivo 3 Arquivos User File Directory (UFD) Cap. 11 – Sistema de Arquivos 12 Diretórios • Estrutura de diretórios em árvore Usuário 1 Usuário 2 Usuário 3 Arquivo 1 Diretório 1 Diretório 2 Arquivo 1 Arquivo 1 Arquivo 1 Diretório 1 Usuário n Arquivo 2 Arquivo 1 Arquivo 1 Arquivo 2 Diretório Raiz Arquivo 2 Cap. 11 – Sistema de Arquivos 13 Diretórios • Path de um arquivo Disco C:/ Paulo Ivan Ivan Carlos Teste Pessoal Soma.exe Cap. 11 – Sistema de Arquivos 14 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. Cap. 11 – Sistema de Arquivos 15 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. Cap. 11 – Sistema de Arquivos 16 Gerência de Espaço Livre em Disco • Alocação de espaço em disco Início 11001101 10000111 Bloco Contador 4 2 10 1 13 7 25 20 50 5 01110100 . . . 11100000 (a) Mapa de bits Cap. 11 – Sistema de Arquivos (b) Lista encadeada © Tabela de blocos livres 17 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. Cap. 11 – Sistema de Arquivos 18 Gerência de Alocação de Espaço em Disco • Alocação Contígua 0 3 1 4 2 5 6 7 8 9 10 11 12 13 14 Cap. 11 – Sistema de Arquivos Arquivo Bloco Extensão A. TXT 4 3 B. TXT 10 1 C. TXT 13 2 19 Gerência de Alocação de Espaço em Disco • Desfragmentação Área de trabalho Cap. 11 – Sistema de Arquivos 20 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. Cap. 11 – Sistema de Arquivos 21 Alocação não contígua Cap. 11 – Sistema de Arquivos 22 Gerência de Alocação de Espaço em Disco • Alocação Indexada 3 10 11 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Cap. 11 – Sistema de Arquivos Bloco de índice 23 Proteção de Acesso • Lista de Controle de Acesso Usuário: Maia Acesso: Leitura + Escrita Usuário: Maia Acesso: Leitura + Escrita + Execução Usuário: Machado Acesso: Leitura Usuário: Machado Acesso: Eliminação Cap. 11 – Sistema de Arquivos 24 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 Cap. 11 – Sistema de Arquivos 25