http://www.freesoftwaremagazine.com/files/www.freesoftwaremagazine.com/nodes/1252/phototree.jpg Um sistema de arquivos um meio de armazenar informaes em dispositivos de forma organizada de acordo com um mtodo pr-estabelecido ... Quando formatamos um disco estabelecemos esta organizao, e ela segue alguns princpios ... Hierarquia de dados Informao Bits so agrupados em bytes, palavras ou caracteres, onde: bytes: geralmente 8 bits palavra: so nmero de bits que um processador opera 2 bytes (32 bits), 4 bytes (64bits) caracteres: o mapeamento de grupos de bits para smbolos (letras, nmeros, pontuao, etc).
Hierarquia de dados Informao Padres de conjuntos de bits definem caracteres: ASCII: 8 bits ou 256 caracteres possveis, no suporta conjuntos de caracteres internacionais EBCDIC: 8 bits, computadores de grande porte (IBM) Unicode: 8, 16 e 32bits, suporta caracteres internacionais, 8 bits (UTF-8) igual ao ASCII (traduo) Ex.: Hello, World UTF-8: 12 bytes, UTF-16: 24 bytes, UTF-32: 48 bytes Hierarquia de dados Informao Campo um grupo de caracteres, por exemplo, o nome de uma pessoa) Um registro grupo de campos, como nome, endereo e telefone. Um arquivo grupo de registros, como, por exemplo, um arquivo de alunos contendo registros de cada aluno desta turma. O sistema de arquivos so colees de arquivos e bancos de dados colees de dados. Hierarquia de dados Informao Campo um grupo de caracteres, por exemplo, o nome de uma pessoa) Um registro grupo de campos, como nome, endereo e telefone. Um arquivo grupo de registros, como, por exemplo, um arquivo de alunos contendo registros de cada aluno desta turma. O sistema de arquivos so colees de arquivos e bancos de dados colees de dados. Programao convencional e bancos de dados empregam estes conceitos ... Hierarquia de dados Informao Volume representa a unidade de armazenamento de dados, por exemplo CDs, DVDs, discos rgidos (HDs) e fitas. Volume fsico limitado a um dispositivo de armazenamento (HD); Volume lgico pode estar disperso em vrios dispositivos (Sistemas de Arquivos Distribudos) ou co-existir com outros num mesmo dispositivo. Hierarquia de dados Informao Volume representa a unidade de armazenamento de dados, por exemplo CDs, DVDs, discos rgidos (HDs) e fitas. Volume fsico limitado a um dispositivo de armazenamento (HD); Volume lgico pode estar disperso em vrios dispositivos (Sistemas de Arquivos Distribudos) ou co-existir com outros num mesmo dispositivo. Quando formatamos um computador ou pendrive devemos estabelecer, pelo menos, uma partio. Se for necessrio possvel criar mais de uma partio num mesmo dispositivo. Ex.: 2 parties num nico HD so acessadas por dois drives quando usamos Windows... Hierarquia de dados Informao bits bytes arquivos volumes Podemos ento organizar estes princpios da seguinte forma ... Hierarquia de dados Informao bits bytes palavras caracteres arquivos volumes ASCII EBCDIC Unicode campos registros sistema de arquivos HD A partir daqui podemos identificar quais operaes e atributos podem ser feitas com um arquivo ... Conceitos sobre arquivos Operaes com arquivos: abrir, fechar, criar, destruir, copiar, renomear, listar Operaes com o contedo de arquivos: ler, escrever, atualizar, inserir, apagar Atributos de arquivos: tamanho, localizao, acessibilidade (restries), tipo (executvel, dados), volatilidade (freqncia das atualizaes) e atividade (percentagem de acessos a registros por tempo) Conceitos sobre arquivos Operaes com arquivos: abrir, fechar, criar, destruir, copiar, renomear, listar Operaes com o contedo de arquivos: ler, escrever, atualizar, inserir, apagar Atributos de arquivos: tamanho, localizao, acessibilidade (restries), tipo (executvel, dados), volatilidade (freqncia das atualizaes) e atividade (percentagem de acessos a registros por tempo) Muitos destes atributos no foram concebidos originalmente em sisops para computao pessoal pois eles no eram sisops de rede nativos (ex.: Windows 3.11, DOS ...) Conceitos sobre arquivos Operaes com arquivos: abrir, fechar, criar, destruir, copiar, renomear, listar Operaes com o contedo de arquivos: ler, escrever, atualizar, inserir, apagar Atributos de arquivos: tamanho, localizao, acessibilidade (restries), tipo (executvel, dados), volatilidade (freqncia das atualizaes) e atividade (percentagem de acessos a registros por tempo) Para que se ento possa utilizar os arquivos em um HD, por exemplo, estas operaes e atributos devem ser disponibilizadas pelo sisop, neste caso, um subsistema chamado, sistema de arquivos (servio do sistema) Sistemas de arquivos Um sistema de arquivos organiza os arquivos e gerencia o acesso aos dados Gerenciamento de arquivos: dispe de mecanismos para o armazenamento, acesso (nome, localizao, etc), compartilhamento e segurana dos arquivos; Gerenciamento de armazenamento auxiliar: aloca espao para arquivos em dispositivos secundrios e tercirios (CD, DVDs, etc.) Sistemas de arquivos Um sistema de arquivos organiza os arquivos e gerencia o acesso aos dados Mecanismos de integridade de arquivo: viabilizar a garantia de que as informaes armazenadas num arquivo no sejam corrompidas Mtodos de acesso: como os dados podem ser acessados Sequencial Direto Diretrios Sistema de arquivo de nvel nico estruturado hierarquicamente / usuarios rodrigo pastaA relatorioA1.doc pastaB relatorioB1.doc rafael sistema Um sistema de arquivos pode ser organizado hierarquicamente (como vemos no windows explorer que usamos diariamente) mas tambm como num nvel nico (sem pastas) em dispositivos simples como celulares ... Nomes de caminhos diretrio de trabalho (./relatorioA1.doc) relativo (../pastaB/relatorioB1.doc) absoluto (/usuarios/rodrigo/pastaA/rel atorioA1.doc) / usuarios rodrigo pastaA relatorioA1.doc pastaB relatorioB1.doc rafael sistema Podemos fazer referncia arquivos de diferentes formas. Quem utiliza scripts faz muito uso de referncias... Diretrios URIs tambm utilizam esse conceito. Que faz pginas para Web as utiliza ... Diretrios Ligao ou link: entrada de diretrio que se refere a um outro arquivo ou diretrio Flexvel, simblica (UNIX), atalho (Windows) ou apelido (MacOS): determina o caminho at a entrada do arquivo ou diretrio Estrita: indica a localizao fsica do arquivo ou diretrio Outra forma de fazer referncias por meio de links. Ele pode ser de dois tipos ... Com todos esses conceitos e informaes para gerenciar um sistema de arquivos, o sisop precisa de uma estrutura de dados para mant-las so so metadados... Metadados Metadados so informaes sobre o sistema de arquivos e protegem a integridade do mesmo por no fornecer acesso direto ao usurios. Por exemplo: a localizao de espao livre no dispositivo de armazenamento, horrio da ltima alterao de um arquivos, etc. Todo dispositivo de armazenamento deve ser formatado, e essa operao dependente do sistema e: divide o espao de armazenamento em blocos lgicos verifica o dispositivo em busca de reas inutilizveis; apagar dados (hard); cria um diretrio raiz; cria um superbloco. 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Metadados Metadados O superbloco contm: Identificador do sistema de arquivos (tipo: NTFS, FAT, ext); O nmero de blocos do sistema de arquivos A localizao dos blocos livres A localizao do diretrio raiz Data e horrio que o sistema foi modificado pela ltima vez Informaes indicando que o sistema deve ser verificado Metadados Descritores de arquivos so registros mantidos em memria (principal) contendo informaes sobre os arquivos abertos. A finalidade contribuir para o melhor desempenho do sistema. Organizao (interna) de arquivos Seqencial: registros armazenados em ordem fsica; Direto: registros so acessados diretamente por uma aplicao especfica Uma organizao com acesso direto significa que, ou a aplicao que utiliza o arquivo sabe como ler registros nele (ex.: SGBD) ou um arquivo de dados sequencial (ex.: MP3) Sistemas de arquivos Direto
Sequencial Registro 0 Registro 1 Registro 2 Registro n Deslocamento de dois registros Alocao de arquivos Alocao contgua de arquivos CDs, DVDs no regravveis Alocao no contgua de arquivos por lista encadeada Alocao tabular no contgua sistema de arquivos FAT Alocao no contgua indexada UNIX e NTFS 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Quando criamos, apagamos, procuramos arquivos e informaes num dispositivo de armazenamento, exitem diferentes formas de alocar o espao... Como dito anteriormente (na formatao) qualquer dispositivo de armazenamento dividido em blocos. Um arquivo pode ser armazenado em 1 ou mais blocos no dispositivo ... Alocao de arquivos Alocao contgua de arquivos CDs, DVDs no regravveis Alocao no contgua de arquivos por lista encadeada Alocao tabular no contgua sistema de arquivos FAT Alocao no contgua indexada UNIX e NTFS Nem sempre um arquivo consegue ser armazenado de forma sequencial, como no HD por exemplo, isso significa que um arquivo pode estar espalhado pelo disco. Isso fragmenta o disco e deixa mais lento o sistema. Por isso, desfragmentamos o disco. Mas isso dependente das tcnicas para a alocao dos blocos que um arquivo ocupa. So elas ... 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Alocao no contgua de arquivos por lista encadeada Arquivo Localizao Diretrio do usurio Nesta forma de alocao temos uma tabela (metadado) mantido pelo sisop com uma lista de nomes de arquivos e sua localizao no dispositivo... Dados A partir dela encontramos uma poro inicial de um arquivo, que por sua vez indica a prxima poro, e assim por diante ... Alocao no contgua de arquivos por lista encadeada Arquivo Localizao Diretrio do usurio Dados Dados Dados Dados Dados nulo O problema que se quisermos uma informao na ltima poro temos que percorrer todas as pores anteriores, o que demanda tempo em um dispositivo lento como um HD... Alocao tabular no contgua Arquivo Localizao Diretrio do usurio 00 01 02 03 04 05 06 07 08 09 10 11 12 2 nulo 8 livre livre 9 nulo 10 7 6 nulo livre livre 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Blocos fsicos Tabela de alocao de blocos Neste tipo de alocao temos uma tabela que indica onde um bloco est localizado, assim resolvemos o problema anterior, pois basta percorrer este ndice para encontrar o local
Arquivo Localizao Diretrio do usurio 00 01 02 03 04 05 06 07 08 09 10 11 12 2 nulo nulo 8 livre livre 9 nulo 10 7 6 6 nulo 00 livre livre 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Blocos fsicos Tabela de alocao de blocos Alocao tabular no contgua Os problemas desta abordagem so: 1) a lista pode ficar incrivelmente grande 2) se ela for corrompida (falha fsica ou lgica), muita informao pode ser perdida ... Alocao no contgua indexada Arquivo Localizao Diretrio do usurio Bloco de ndice Blocos de dados Temos ento a seguinte idia: utilizarmos blocos no dispositivo que so ndices para os blocos que armazenam os dados Se o ndice ficar cheio, no h problema ... Bloco de continuao de ndices Blocos de dados Estas idias so para implementar a alocao de espaos (ento ocupados) no dispositivo mas como gerenciamos os espaos livres... ? Veremos dois mtodos ... Gerenciamento de espao livre Os dois mtodos mais comuns para controlar o espao livre so: Lista de livres lista encadeada de blocos livres. Mapa de bits mapa de bits para cada bloco livre (zero) ou em uso (um) Lista de livres Bloco de ndice 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Este mtodo semelhante ao ltimo mtodo de alocao ... Bloco de continuao da lista de livres Mapa de bits 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 Mapa de bits Neste mtodo temos uma estrutura de dados que armazena bits, cada bit nesta estrutura representa um bloco no dispositivo se ela estiver em 0 o bloco est livre, caso contrrio esta ocupado ... A grande vantagem deste mtodo que ele utiliza pouca memria e rpido amplamente utilizado ... Buenas, como sugesto deixo a todos a tarefa de identificar os metadados aqui apresentados no sisop do seu computador mas cuidado para no corromp-los ;-)