Вы находитесь на странице: 1из 56

Sistemas de Arquivos

Sistemas Operacionais I
Prof Rita de Cssia Cassiano Lopes

Sistemas de Arquivos
uma estrutura que indica como os dados devem ser gravados em dispositivos de gravao. de acordo com os recursos oferecidos por essa estrutura que possvel determinar o espao disponvel e ocupado em disco, e gerenciar como partes de um arquivo podem ficar "distribudas" nas reas de armazenamento. tambm o sistema de arquivos que determina como os dados podem ser acessados, copiados, movidos, renomeados, protegidos e eliminados. Portanto, sem um sistema de arquivos, impossvel utilizar um disco rgido (e outros dispositivos) para armazenamento de informaes.

Arquivos
Arquivos podem ser vistos como recipientes que contm dados ou como um grupo de registros correlatos. Os arquivos armazenam informaes que sero utilizadas, em geral, por programas aplicativos. Os arquivos so implementados atravs da criao, para cada arquivo no sistema, de uma estrutura de dados composta por registros. O descritor de arquivo um registro que mantm informaes sobre o arquivo, como posio de incio e fim.

Arquivos
As informaes tpicas (atributos) mantidas pelo sistema operacional so:
do arquivo 2. Tamanho (bytes) 3. Data e hora da criao, do ltimo acesso, da ltima modificao 4. Identificao do usurio que criou o arquivo 5. Listas de controle de acesso 6. Local do disco fsico onde o contedo do arquivo foi colocado
1. Nome

Arquivos
As operaes mais comuns relacionadas manipulao dos arquivos so:

Create Append

Delete Seek

Open

Close

Read Rename

Write

Get attributes Set attributes

Arquivos
Para controlar e organizar os arquivos, em geral, so criados diretrios ou pastas. Os diretrios podem ser organizados em um nico nvel (contendo todos os arquivos) ou em mltiplos nveis (diretrios dentro de diretrios). Um dos principais problemas como alocar espao em disco para que os arquivos sejam armazenados de forma eficiente e que permita acesso rpido.

Sistema de Arquivos
Existem alguns mtodos que podem ser utilizados, tais como:
1. Alocao contgua 2. Alocao com Lista Ligada 3. Alocao com Lista Usando um ndice

Alocao Contgua
Este o esquema mais simples de alocao de arquivos, onde cada arquivo armazenado no disco como um bloco contguo de dados. Neste esquema, em um disco com blocos de 1 KB, um pequeno arquivo de 20 KB seria armazenado em 20 blocos consecutivos.

Alocao Contgua
Principais vantagens:
o simples implementao: controle de onde est cada arquivo no disco feito por um nico nmero (endereo em disco do 1 bloco). o performance: todo o bloco (arquivo) pode ser lido do disco de uma nica vez. necessrio o tempo de somente um seek.

Problemas:

Alocao Contgua

o a estratgia s pode ser usada se o tamanho mximo do arquivo for conhecido no momento de sua criao (devido necessidade de saber o tamanho total do arquivo ou quantidade de blocos que ele ocupa). o fragmentao do disco: perde-se muito espao til com este esquema de alocao. Ao remover um arquivo a rea ocupada pelo mesmo liberada ocasionando lacunas por todo o disco. Necessidade de compactao (custo alto).

Alocao com Lista Ligada


Nesta estratgia de alocao, usamos uma lista ligada para indicar os espaos ocupados em disco pelo arquivo. Assim, no mais necessrio que o arquivo seja armazenado em posies contguas do disco. A primeira palavra de cada bloco usada com um ponteiro para o prximo bloco e o restante do bloco usado para armazenar as informaes (dados) do arquivo.

Alocao com Lista Ligada


Principais vantagens:
o no se perde espao por fragmentao externa. o qualquer bloco pode ser utilizado, permitindo que os arquivos cresam indefinidamente enquanto houver espao no disco. o a entrada do diretrio s precisa armazenar o endereo do 1 bloco do arquivo (em cada bloco existir um ponteiro para o prximo bloco do arquivo)

Alocao com Lista Ligada


Problemas:
o acesso randmico lento pois existe a necessidade de percorrer a lista.
o

o a implementao deste mtodo de alocao mais complicada.

Alocao com lista ligada usando uma Tabela na Memria


Para eliminarmos os problemas apresentados por ltimo, podemos dispor de uma tabela em memria, armazenando os ponteiros para cada bloco do arquivo. Esta tabela recebe o nome de FAT (File Allocation Table) - esquema adotado pelo DOS. Com este esquema o acesso aleatrio fica muito mais fcil pois todo o esquema de ponteiros agora fica armazenado em memria, o que muito mais rpido.

Alocao com lista ligada usando uma Tabela na Memria


O principal problema o gasto com memria para manter a tabela com as informaes. Para um disco de 40 GB e blocos de 1 KB, a tabela precisar de 40 milhes de entradas. Considerando que cada entrada tem no mnimo 3 bytes a tabela ocupar um espao total de 120 MB.

Alocao com lista usando um ndice


Busca resolver o problema de ponteiros esparramados pelo disco que a alocao encadeada provoca. Para isso, mantm, por arquivo, um ndice de blocos que o compe. Este ndice mantido em um bloco do disco. O diretrio possui um ponteiro para o bloco onde est o ndice associado a um determinado arquivo.

Alocao com lista usando um ndice


Este esquema elimina as desvantagens existentes na alocao com lista ligada, pois retira os ponteiros de cada um dos blocos e os coloca em uma tabela ou ndice na memria. Apesar de o acesso ser randmico tambm, sua implementao bem mais simples. A tabela armazenada na memria principal e pode ser seguida sem a necessidade de acessar o disco.

Alocao com lista usando um ndice


Desvantagem: a tabela tambm deve estar na memria o tempo todo, o que implica em utilizao de espao de memria.

I-node
A cada arquivo associa-se uma pequena tabela, denominada I-node, que lista os atributos e os endereos em discos dos blocos do arquivo. Os primeiros endereos de disco so armazenados no prprio i-node. Se o arquivo for pequeno, toda a informao encontrada diretamente no i-node. O contedo do arquivo s transferido do disco para a memria quando o arquivo for aberto (esquema utilizado pelo UNIX).

Proteo de Arquivos

Contra danos fsicos acessos imprprios

Confiabilidade: cpia de arquivos com intervalos regulares (backup) Proteo de acesso aos arquivos

Proteo de Arquivos

Nveis de Proteo de Sistemas no permitem o acesso a outros usurios, no precisam de proteo (default) tm proteo completa, proibindo o acesso tm livre acesso sem nenhuma proteo Proteo atravs de um controle de acesso

Proteo de Arquivos

Proteo atravs de controle de acesso login + senha (password) dependendo da operao sobre arquivos leitura, escrita e execuo tm livre acesso sem nenhuma proteo usurios com necessidades de acesso diferentes lista de acesso associada a cada arquivo ou diretrio

Proteo de Arquivos

Lista de acesso pode ser muito grande dependendo da forma de implementao Reduo do tamanho da lista operaes de leitura, escrita e execuo classificao dos usurios em grupos proprietrio: usurio que criou o arquivo grupo: vrios usurios que compartilham e necessitam de acesso similar ao arquivo universo: todos os outros usurios

Proteo de Arquivos

Mapeamento de arquivos na memria


O acesso a arquivos em disco lento e tedioso do ponto de vista da programao, principalmente se comparado ao acesso memria principal. Por isso, alguns sistemas operacionais modernos fornecem alguma maneira de mapear arquivos no espao de endereamento de um processo em execuo.

Mapeamento de arquivos na memria


Conceitualmente podemos imaginar a existncia de duas novas chamadas ao sistema:
map unmap

A primeira fornece um nome de arquivo e um endereo virtual, fazendo com que o SO mapeie o arquivo e um endereo virtual. A segunda remove os arquivos do espao de endereamento.

Mapeamento de arquivos na memria


Quando o processo termina, o arquivo modificado deixado no disco, como se ele tivesse sido alterado por uma combinao de chamadas ao sistema seek e write.

Mapeamento de arquivos na memria


Embora elimine a necessidade de E/S facilitando a programao, o mapeamento de arquivos introduz alguns problemas especficos:
o difcil para o sistema saber o tamanho do arquivo de sada, para criar um espao de alocao adequado; o O processo pode ser mapeado por um processo e aberto por outro; o O arquivo pode ser maior que todo o mapeamento feito.

Mapeamento de arquivos na memria


O nico modo de resolver isto seria providenciar para que a chamada ao sistema map possa mapear uma parte de um arquivo e no apenas todo o arquivo. Embora isso funcione, obviamente menos satisfatrio que mapear o arquivo inteiro.

Tabela de Alocao de Arquivos (FAT)


Sistema de arquivos usado pelo MS-DOS e outros sistemas operacionais baseados em Windows para organizar e gerenciar arquivos. A FAT (File Alocation Table) uma estrutura de dados que o Windows cria quando formata um volume usando os sistemas de arquivos FAT ou FAT32. O Windows armazena as informaes sobre cada arquivo no FAT para poder recuper-lo mais tarde.

FAT32
Derivativo do sistema de arquivos FAT, o FAT32 suporta tamanhos de cluster menores e volumes maiores que a FAT, o que resulta na alocao de espao mais eficiente em volumes FAT32.

Sistema de Arquivos NTFS


Sistema de arquivos avanado que fornece desempenho, segurana, confiabilidade e recursos avanados que no so encontrados em nenhuma verso de FAT. Por exemplo, o NTFS (New Tecnology File System) garante a consistncia de volume usando um log de transaes padro e tcnicas de recuperao. Se um sistema falhar, o NTFS usar as informaes de seu arquivo de log e de pontos de verificao para restaurar a consistncia do sistema de arquivos. Fornece recursos avanados, como permisses de arquivo e de pasta, criptografia, cotas de disco e compactao.

Prs
Aceita volumes de at 2 TB; O tamanho do arquivo limitado apenas pelo tamanho do volume; Aceita nomes de volumes de at 32 caracteres; Oferece suporte a compactao, criptografia e indexao; Oferece suporte a clusters de 512 bytes; possvel inserir imagem do sistema em um volume NTFS; um sistema de arquivos muito mais seguro que o FAT; Permite polticas de segurana e gerenciamento; Volumes NTFS so menos vulnerveis a fragmentos; Melhor desempenho, em geral; Volumes NTFS podem se recuperar de um erro mais facilmente.

Contras
Se usado em uma mdia removvel, ela pode se corromper mais facilmente; No possvel otimizar para remoo rpida; Apenas verses a partir do NT 3.1 reconhecem volumes; Pode ser necessrio drivers extra para acesso a plataformas no-Windows; mais lento que o FAT32, pois pelas diversas diretivas de segurana tanto de acesso quanto de leitura e gravao tornam a partio mais lenta que FAT32 que no possui nenhuma diretiva de segurana ou confiabilidade adequado.

Ext2
O Ext2 (Second Extended file system) um sistema de arquivos para dispositivos de blocos (disco rgido, disquete, pen drive). Foi desenvolvido para o Linux por Rmy Card para substituir o Ext (Extended file system), que tambm havia sido criado por Rmy Card.

Ext3
O Ext3 (Third Extended file system) um sistema de arquivos desenvolvido para o Linux, que acrescenta alguns recursos ao Ext2, dos quais o mais visvel o journaling.
o A principal diferena entre o Ext2 e o Ext3 a implementao do journaling, que consiste em um registro (log ou journal) de transaes cuja finalidade recuperar o sistema em caso de desligamento no programado.

Journaling
Tcnica onde o sistema de arquivos passa a registrar em uma rea especial chamada "journal" ou "log" as aes que sero feitas nos arquivos (gravao ou alterao de dados, por exemplo) antes da execuo em si. Aps a execuo, as operaes registradas no log so tidas como concludas e, portanto, eliminadas. Esse procedimento acontece de maneira extremamente rpida.

Journaling
Os registros de log so escritos antes que as mudanas efetivamente ocorram no sistema de arquivos. Esses registros somente so eliminados quando as mudanas so executadas. Se, por exemplo, o computador for desligado repentinamente (como ocorre em falta de energia eltrica), o sistema de arquivos verificar os registros existentes no journal e executar aquilo que estiver marcado como no realizado. Isso faz com que o risco de perda de dados diminua drasticamente, j que o sistema operacional saber "onde parou".

Journaling
H trs nveis de journaling disponveis na implementao do Ext3: Journal: os metadados e os dados (contedo) dos arquivos so escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes.

Journaling
Writeback: os metadados so escritos no journal mas no o contedo dos arquivos. Essa opo permite um melhor desempenho em relao ao modo journal, porm introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que so escritos durante um trash podem ter adicionados a eles trechos de lixo na prxima montagem.

Journaling
Ordered: como o writeback, mas fora que a escrita do contedo dos arquivos seja feita aps a marcao de seus metadados como escritos no journal. Esse considerado um meio-termo aceitvel entre confiabilidade e performance, sendo, portanto, o nvel padro.

Ext4
O Ext4 um sistema de arquivos do Linux desenvolvido para ser o sucessor do Ext3 a partir de 2006.
o o o o o o o suporte para tamanhos maiores de volumes e arquivos; mais extenses so introduzidas; compatibilidade com verses anteriores; pr alocao; mais rpido; alocador multibloco; deixa de existir um limite de sub-diretrios

ReiserFS
O sistema de arquivos ReiserFS teve sua primeira apario no ano de 2001 pelas mos de Hans Reiser (da o nome do padro). Desde ento, o ReiserFS vem sendo cada vez mais utilizado, principalmente por estar disponvel como padro em muitas das distribuies Linux, fazendo frente ao sistema de arquivos ext3.

ReiserFS
Entre seus principais recursos, destacam-se:
o Jornaling, um recurso que ajuda a manter a integridade dos dados em caso de erros no sistema causados por desligamento incorreto ou determinadas falhas de hardware, por exemplo. o Suporte a arquivos com mais de 2 GB (limitao existente em alguns filesystems); o Organizao dos objetos do sistema de arquivos em uma estrutura de dados chamada B+Trees (rvores B+). Nesse esquema, os dados so fixados em posies organizadas por divises denominadas folhas. Por sua vez, as folhas so organizadas por ns ou ponteiros chamados de sub-rvores, que esto ligados a um n raiz. Esse processo organizacional exige algoritmos mais complexos, porm apresenta performance superior na gravao e no acesso aos dados, se comparado a outros sistemas de arquivos;

ReiserFS
o Alocao dinmica de inodes (estruturas que contm informaes sobre os arquivos), diminuindo o desperdcio de espao. Outros sistemas de arquivos tm blocos de tamanho fixo para alocao, assim, se no for necessrio usar um bloco inteiro, o espao restante fica em desuso. No ReiserFS, a alocao feita com base no tamanho do arquivo.

ReiserFS sistema de rvore

Reiser4
um sucessor do ReiserFS e sua proposta a de oferecer, entre outros recursos: Journaling mais eficiente; Melhor suporte a grandes quantidades de arquivos pequenos; Gerenciamento mais rpido de diretrios com muitos arquivos (na casa dos milhares); Estrutura de arquivos dinamicamente otimizada; Transaes atmicas na modificao do sistema de arquivos. Neste caso, uma operao s pode ser tida como concluda se executada por completo, ou seja, no h meio termo: ou est feito ou no est.

Exerccios
1. O que um arquivo? 2. Como os arquivos podem ser organizados? 3. Diferencie os mtodos de acesso: sequencial, direto e indexado. 4. O que alocao contgua de blocos e quais benefcios a desfragmentao pode proporcionar quando esta tcnica utilizada? 5. Quais os tipos de proteo de acesso a arquivos existentes e quais suas principais vantagens? 6. Em alguns sistemas operacionais possvel mapear parte de um arquivo na memria. Quais restries devem ser impostas a esses sistemas? Como implementado esse mapeamento parcial? 7. O que um Sistema de Arquivos?

Exerccios
8. Apresente as diferenas entre os sistemas FAT32 e NTFS. 9. Fale sobre o ReiserFs. 10. Qual a principal diferena entre os sistemas Ext2 e Ext3? 11. Explique a tcnica de journaling em sistemas de arquivos. 12. Como se divide a tcnica de journaling?

Bibliografia
SILBERSCHATZ, A. et al. Sistemas Operacionais: conceitos e aplicaes. Campus, 2001. STALLINGS, W. Operating Systems. Prentice Hall, 4th Ed, 2001.

Вам также может понравиться