Sistema de Arquivos Sistemas de Arquivos Sistema de Arquivos Definições Básicas Sistema de Arquivos 1.Um arquivo é uma unidade lógica de informação criado por processos. As informações podem representar instruções e dados de qualquer tipo [1]. Exemplo de arquivos. 2.Os arquivos são gerenciados pelo sistema operacional para facilitar o acesso pelos usuários. A parte do sistema operacional responsável por este gerenciamento é o Sistema de Arquivos [2]. Sistema de Arquivos Considerações 1.O armazenamento e a recuperação de informações são as atividades essenciais de qualquer aplicação; Sistema de Arquivos 2.Um processo deve ser capaz de ler e gravar de forma permanente grande volumes de dados em dispositivos de armazenamento; 3.O sistema operacional estrutura e organiza estas informações através do Sistema de Arquivos. Organização de Arquivos Definição Sistema de Arquivos A organização de arquivos consiste em como os dados estão internamente armazenados, podendo variar em função do tipo de dados contido no arquivo [2]. Formas de Organização de Arquivos a)Organização não-estruturada de bytes; b)Organização Indexada; c)Organização Sequencial; d)Organização Relativa. Organização de Arquivos Exemplos de Organização de Arquivos Ana C lá u d i a Te r e sa Sistema de Arquivos Byte Bea tri z (a ) O r g a n iza çã o n ã o - e str u tu r a d a C a m ila D a n i ele Pa tr íci a Isa b e la M a r ia Reg i str o (b ) O r g a n iza çã o In d exa d a Ti n a Va n e ssa Métodos de Acesso Sistema de Arquivos Em função de como os arquivos estão organizados, o sistema de arquivos pode recuperar registros de diferentes maneiras: a) Acesso sequencial; b) Acesso direto c) Acesso Indexado ou Acesso por Chave. Métodos de Acesso Acesso direto Sistema de Arquivos Permite a leitura/gravação de um registro diretamente da sua posição. Este método é implementado através através da identificação do número do registro, que é a sua posição relativa ao inicio do arquivo. Reg istr o 0 Reg istr o 1 D eslo ca m en to d e d o is reg istr o s Reg istr o 2 Reg istr o n Métodos de Acesso Acesso Indexado Sistema de Arquivos Considerado o mais sofisticado método de acesso, pois tem como base o acesso direto. Para este tipo de acesso o arquivo deve possuir uma chave de índice onde existam ponteiros para os diversos registros. Métodos de Acesso Exemplo de Acesso Indexado Sistema de Arquivos Operações de Entrada/Saída O sistema de arquivos disponibiliza uma interface simples e uniforme entre as aplicações e os diversos Sistema de Arquivos dispositivos, através das rotinas de E/S, que têm como função realizar operações como a tradução de nomes em endereços, leitura e gravação de dados e criação/eliminação de arquivos. Operações de Entrada/Saída A figura abaixo, ilustra de forma simples a comunicação entre a aplicação e dispositivos de entrada/saída. A p l i ca çã o Sistema de Arquivos Ro ti n a s d e E/ S D i sp o si t i v o s Operações de Entrada/Saída A tabela abaixo, presenta algumas destas rotinas de E/S implementadas no sistema de Arquivos. Sistema de Arquivos Rotina create open read delete Descrição Criação de arquivos Abertura de um arquivo Leitura de um arquivo Eliminação de um arquivo Atributos do Arquivos Sistema de Arquivos Cada arquivo possui informações de controle denominadas atributos, podendo variá em função do sistema de arquivos, mas alguns são muito utilizados, como os apresentados na tabela abaixo: Atributo Descrição Tamanho Especifica o tamanho dos arquivos Proteção Código de proteção de acesso Dono Identifica o criador do arquivo Criação Data e hora de criação do arquivo Backup Data e Hora do último backup Organização Indica a organização lógica do arquivo Senha Senha necessária para acessar o arquivo Diretórios O diretório é uma estrutura de dados que contém entradas associadas aos arquivos, onde cada Sistema de Arquivos entrada armazena informações como localização física, nome organização e demais atributos. A estrutura de diretórios é a foma como o sistema arquivos organiza contidos logicamente em um armazenamento secundário [1]. os diversos ambiente de Diretórios Tipos de Estruturas de Diretórios Nível Único é a mais simples, pois possui apenas um único diretório contendo todos os arquivos do disco. Sistema de Arquivos I d e n t i f i ca çã o Pr o t e çã o O r g a n i za çã o Lo ca l i za çã o A tr ib u t o s D iretó rio s A rq u ivo s Diretórios Tipos de Estruturas de Diretórios Sistema de Arquivos Estrutura de diretórios com dois níveis, neste caso, a implementação permite a existência de um diretório particular para cada usuário UFD (User File Directory). Para controlar os diretórios dos usuários é necessário um diretório adicional MFD (Master File Directory) que controla os diretórios do usuário, isto é, a indexação é por nome de usuário, e nele cada entrada aponta para o diretório pessoal. Diretórios Tipos de Estruturas de Diretórios Estrutura de diretórios com dois níveis A r q u ivo 1 Sistema de Arquivos U su á r i o 1 A r q u ivo 2 U su á r i o 2 A r q u ivo 3 U su á r i o 3 A r q u ivo 1 A r q u ivo 1 U su á r i o n Master File Directory (MFD) A r q u ivo 2 A r q u ivo 3 U se r Fi l e D i r e cto r y (U FD ) A rq u ivo s Diretórios Tipos de Estruturas de Diretórios Sistema de Arquivos Estrutura de Diretórios em Árvore é semelhante a estrutura em dois níveis, onde o MFD é a raiz, os galhos são os diretórios UFD e os arquivos são as folhas. Neste tipo de estrutura, quando é necessário se referenciar a um arquivo é preciso especificar, além do seu nome, o diretório onde ele se localiza, esta referencia é denominada de PATH (caminho). Diretórios Estruturas de Diretórios em Árvore A r q u ivo 1 D ir e tó r i o 1 Sistema de Arquivos U su á r io 1 U su á r io 2 U su á r io 3 D ir e tó r i o 2 A r q u ivo 1 A r q u ivo 1 A r q u ivo 1 D ir e tó r i o 1 U su á r io n A r q u ivo 2 A r q u ivo 1 D ir e tó r i o Ra iz A r q u ivo 2 A r q u ivo 1 A r q u ivo 2 Diretórios Estruturas de Diretórios em Árvore Path de um arquivo D i sco C : / Sistema de Arquivos CIav ralo ns I va n Te ste Pa u l o Pe sso a l So m a .ex e Gerência de Espaço Livre em Disco Sistema de Arquivos A criação de arquivos em discos exige que o sistema tenha total controle de quais áreas podem ser utilizadas. Este controle é realizado utilizando-se algum tipo de estrutura de dados, que armazenam informações que possibilitam ao sistema de arquivos gerenciar o espaço livre em disco. As formas mais comuns de implementações são: a) Mapa de bits; b) Lista encadeada; c) Tabelas de blocos livre. Gerência de Espaço Livre em Disco Alocação de espaço em disco I n íci o Sistema de Arquivos 1100 11 01 1000 01 11 Blo co C o n ta d o r 4 2 10 1 13 7 25 20 50 5 0111 01 00 . . . 1110 00 00 (a ) M a p a d e b its (b ) Lista e n ca d e a d a © Ta b e la d e b l o co s l iv r e s Gerência de Alocação de Espaço em Disco Sistema de Arquivos Da mesma forma que o sistema operacional gerencia espaços livres no disco, a gerência dos espaços alocados aos arquivos é de fundamental importância para o sistema de arquivos. A seguir, apresenta-se as principais técnicas de alocação: a) Alocação Contígua; b) Alocação Encadeada; c)Alocação Indexada. Alocação Contígua Sistema de Arquivos Alocação Contígua consiste em armazenar um arquivo em blocos sequencialmente disposto no disco. Neste esquema, o sistema localiza um arquivo através do endereço do primiero bloco e da sua extensão em blocos. 0 3 1 4 2 5 6 7 8 9 10 11 12 13 14 A r q u iv o Blo co Ex te n sã o A . TXT 4 3 B. TXT 10 1 C . TXT 13 2 Alocação Contígua Estratégias de Alocação Contígua 1.First-Fit:primeiro segmento livre é alocado com tamanho suficiente. 2.Best-Fit:menor segmento livre é alocado com tamanho Sistema de Arquivos suficiente. 3.Worst-Fit: maior segmento livre é alocado com tamanho suficiente. 0 3 1 4 2 5 6 7 8 9 10 11 12 13 14 A r q u iv o Blo co Ex te n sã o A . TXT 4 3 B. TXT 10 1 C . TXT 13 2 Alocação Contígua Desfragmentação Sistema de Arquivos Á r e a d e tr a b a l h o Alocação Encadeada Sistema de Arquivos Na Alocação Encadeada, um arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco, independente de sua localização física, onde cada bloco deve possuir um ponteiro para o próximo bloco. In íci o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A r q u iv o Blo co A .TXT 6 . . . .. . . . . .. . . . . .. . . . . .. . Alocação Indexada Sistema de Arquivos Alocação Indexada, é uma técnica que tem como princípio manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada de bloco de índice. Permite acesso direto aos blocos do arquivo, não utiliza informações de controle nos blocos de dados. Este tipo de alocação soluciona uma das principais limitações da alocação encadeada, que é o acesso direto aos blocos dos arquivos. Alocação Indexada Alocação Indexada utiliza um bloco de índice que armazena os ponteiros de todos os blocos do arquivo Sistema de Arquivos 3 10 11 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Blo co d e ín d i ce Proteção de Acesso Sistema de Arquivos Como os meios de armazenamento são compartilhados entre diversos usuários é fundamental que o sistema de arquivos implemente mecanismos de proteção individual de arquivos e diretórios. Existem diferentes mecanismos e níveis de proteção, cada qual com suas vantagens e desvantagens, sendo que, para cada tipo de sistema, um modelo pode ser mais adequado do que outro. A seguir, são apresentados três mecanismos de proteção presentes na maioria dos dos sistemas de arquivos. Senhas de Acesso A associação de uma senha de acesso a um arquivo é um principio muito simples, o controle de acesso resume-se ao conhecimento da senha. Sistema de Arquivos Problemas a)cada arquivo possui apenas uma senha; b)não é possível determinar quais tipos de operações podem ou não ser concedidas c)dificuldade de compartilhamento de arquivos – todos devem conhecer a senha. Grupos de Usuário Sistema de Arquivos Proteção por grupos de usuários é baseada em grupos de usuários, sendo implementada por diversos dos sistemas operacionais. Neste caso, o usuário é associado ao um grupo, sendo possivel o compartilhamento de arquivos e diretórios entre os membros do mesmo grupo. O w n er Lei tu ra Escr ita Execu çã o Eli m in a çã o G ro u p Le i tu r a A ll D A D O S.TXT Lista de Controle de Acesso A Lista de Controle de Acesso ( LCA), consiste Sistema de Arquivos em uma lista de associada a cada arquivo, onde são especificados quais os usuários e os tipos de acesso permitido. Neste caso, quando um usuário tenta acessar um arquivo, o sistema operacional verifica se a lista de controle autoriza a operação. Lista de Controle de Acesso Problemas da LCA Sistema de Arquivos a)Tamanho da lista pode ser bastante extenso, já que um arquivo pode ser compartilhado por vários usuários; b)Overhead adicional, se comparado com o mecanismo de proteção por grupo de vários usuários, devido a pesquisa sequencial que o sistema deverá realizar na lista sempre que um acesso for solicitado. Lista de Controle de Acesso Sistema de Arquivos U su ário: M aia A cesso: Leitura + Escrita U su ário: M aia A cesso: Leitura + Escrita + Execução U su ário: M ach ad o A cesso: Leitura U su ário: M ach ad o A cesso: Elim in ação Implementação de Caches Sistema de Arquivos Motivação Acesso a disco é mais lento do que o acesso a memória principal, já que as operações de E/S com disco causam problema de desempenho para o sistema. Solução Implementar a técnica de Buffer Cache O sistema operacional reserva uma área da memória para que se tornem disponíveis caches utilizados em operações de acesso a disco. Implementação de Caches Sistema de Arquivos Implementação do Buffer Cache Quando uma operação é realizada, seja leitura ou gravação, o sistema verifica se a informação desejada se encontra no Buffer Cache. Em caso positivo, não é necessário o acesso a disco. Coso o bloco requisitado não se encontra no cache, a operação de E/S é realizada e o cache é atualizado. Problema na implementação do Buffer Cache 1) Como existe uma limitação no tamanho do cache, cada sistema adota politicas para a substituição de blocos como a FIFO ou a LRU. Implementação de Caches Problema na implementação do Buffer Cache Sistema de Arquivos 1) Como existe uma limitação no tamanho do cache, cada sistema adota politicas para a substituição de blocos como a FIFO ou a LRU; 2) Problemas de Segurança – perdas de dados por por problemas de energia Referências [1]Andrew S. Tanenbaum. 3a Edição. Editora Pearson Prentice Hall – 2009. (capítulo 4) Sistema de Arquivos [2]Silberchatz. Abraham. Galin, Peter. Gagne, Greg.. Tradução de Adriana Rieche. Rio de Janeiro: Elvier, 2008 – 7ª Reimpressão. Editora Campus. (Capítulo 12)