Sistemas de Arquivos
Definições Básicas 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 [2].
Considerações 1.O O armazenamento e a recuperação de informações são as atividades essenciais de qualquer aplicação; 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.
Organização de Arquivos Definição 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 A n a C lá u d i a Te r e sa Byte (a ) O r g a n iza çã o n ã o - e str u t u r a d a Be a tr i z C a m il a D a n i e le Pa tr íci a Ti n a Va n e ssa I sa b e la M a r ia Re g i str o (b ) O r g a n i za çã o In d e xa d a
Métodos de Acesso 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 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 i str o 0 Re g i str o 1 D e sl o ca m e n to d e d o is r eg istr o s Re g i str o 2 Re g i str o n
Métodos de Acesso Acesso Indexado 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
Operações de Entrada/Saída O sistema de arquivos disponibiliza uma interface simples e uniforme entre as aplicações e os diversos 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 ica çã o Ro ti n a s d e E/ S D i sp o sitivo s
Operações de Entrada/Saída A tabela abaixo, presenta algumas destas rotinas de E/S implementadas no 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 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 Tamanho Proteção Dono Criação Backup Organização Senha Descrição Especifica o tamanho dos arquivos Código de proteção de acesso Identifica o criador do arquivo Data e hora de criação do arquivo Data e Hora do último backup Indica a organização lógica do arquivo 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 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 organiza logicamente os diversos arquivos contidos em um ambiente de armazenamento secundário [1].
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. Id e n ti fica çã o Pr o te çã o O r g a n iza çã o Lo ca l iza çã o A tr ib u to s D i r etó r i o s A r q u i vo s
Diretórios Tipos de Estruturas de Diretórios 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 U su á r io 1 U su á r io 2 U su á r io 3 U su á r io n A r q u ivo 2 A r q u ivo 3 A r q u ivo 1 A r q u ivo 1 A r q u ivo 2 Master File Directory (MFD) A r q u ivo 3 U se r Fil e D i r e cto r y (U FD ) A r q u ivo s
Diretórios Tipos de Estruturas de Diretórios 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 A r q u ivo 2 U su á r io 1 U su á r io 2 U su á r io 3 U su á r io n D ir e tó r i o Ra iz D ir e tó r i o 2 A r q u ivo 1 A r q u ivo 1 D ir e tó r i o 1 A r q u ivo 1 A r q u ivo 2 A r q u ivo 1 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 :/ CIva a r lo n s Te ste Iva n Pe sso a l Pa u l o So m a.exe
Gerência de Espaço Livre em Disco 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 In íci o 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0... 1 1 1 0 0 0 0 0 (a ) M a p a d e b its (b ) Lista e n ca d e a d a Blo co C o n ta d o r 4 2 1 0 1 1 3 7 2 5 2 0 5 0 5 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 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 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 1 2 3 4 5 6 7 8 9 1 0 1 1 A r q u ivo Blo co A. TXT 4 B. TXT 1 0 C. TXT 1 3 Exte n sã o 3 1 2 1 2 1 3 1 4
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 suficiente. 3.Worst-Fit: maior segmento livre é alocado com tamanho suficiente. 0 1 2 3 4 5 6 7 8 9 1 0 1 1 A r q u ivo Blo co A. TXT 4 B. TXT 1 0 C. TXT 1 3 Exte n sã o 3 1 2 1 2 1 3 1 4
Alocação Contígua Desfragmentação Á r e a d e tr a b a l h o
Alocação Encadeada 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 1 0 1 1 A r q u iv o Blo co A.TXT 6........................ 1 2 1 3 1 4
Alocação Indexada 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 0 1 2 3 4 5 6 7 8 9 1 0 1 1 3 1 0 1 1 7 Blo co d e ín d ice 1 2 1 3 1 4
Proteção de Acesso 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. 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 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 e r G r o u p Le i tu r a Escr ita Exe cu çã o Eli m in a çã o 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 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 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 U su á r io : M a ia A cesso : Leitura + Escrita U su á r io : M a ch a d o A cesso : Leitura U su á r io : M a ia A cesso : Leitura + Escrita + Execução U su á r io : M a ch a d o A ce sso : El im in a çã o
Implementação de Caches 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 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 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) [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)