Você está na página 1de 64

Sistemas Operacionais - Sistemas de

Arquivos

Rafael Sachetto Oliveira


sachetto@ufsj.edu.br

6 de junho de 2011

Sistemas de Arquivos Rafael Sachetto Oliveira – 1 / 64


Introdução

Condições essenciais para armazenamento de informações por


um longo prazo:

■ Deve ser possı́vel armazenar uma grande quantidade de


informação.

■ A informação deve sobreviver ao término do processo que


esta usando a mesma.

■ Múltiplos processos devem ser capaz de acessar a


informação simultaneamente.

Sistemas de Arquivos Rafael Sachetto Oliveira – 2 / 64


Introdução

Pense em um disco como uma sequência linear de blocos de


tamanho fixo e que suportam a leitura e escrita nos blocos. As
questões a seguir surgem rapidamente:

■ Como encontrar a informação?

■ Como impedir que um usuário tenha acesso a informações


de outro?

■ Como saber quais blocos estão livres?

Sistemas de Arquivos Rafael Sachetto Oliveira – 3 / 64


Introdução

■ Introdução de uma nova abstração: arquivo;

■ Arquivos são unidade lógicas de informação criadas por


processos.

Sistemas de Arquivos Rafael Sachetto Oliveira – 4 / 64


Nomeação de arquivos

■ Quando um processo cria um arquivo ele dá um nome a


esse arquivo;

■ Quando o processo termina, o arquivo continua existindo e


outros processos podem acessá-lo através de seu nome.

Sistemas de Arquivos Rafael Sachetto Oliveira – 5 / 64


Nomeação de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 6 / 64


Estrutura de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 7 / 64


Tipos de arquivo

Sistemas de Arquivos Rafael Sachetto Oliveira – 8 / 64


Acesso aos arquivos

■ Arquivos sequenciais: comuns em fitas;

■ Arquivos de acesso aleatório: read e seek

Sistemas de Arquivos Rafael Sachetto Oliveira – 9 / 64


Atributos de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 10 / 64


Operações com arquivos

■ Create (criar)

■ Delete (apagar)

■ Open (abrir)

■ Close (fechar)

■ Read (ler)

■ Write (escrever)

Sistemas de Arquivos Rafael Sachetto Oliveira – 11 / 64


Operações com arquivos

■ Append (anexar)

■ Seek (procurar)

■ Get Attributes (conseguir atributos)

■ Set Attributes (configurar atributos)

■ Rename (renomear)

Sistemas de Arquivos Rafael Sachetto Oliveira – 12 / 64


Sistemas de Arquivos Rafael Sachetto Oliveira – 13 / 64
Sistemas de diretório em nı́vel único

Sistemas de Arquivos Rafael Sachetto Oliveira – 14 / 64


Sistemas de diretórios hierárquicos

Sistemas de Arquivos Rafael Sachetto Oliveira – 15 / 64


Nomes de caminhos

■ Caminhos Absolutos

■ Caminhos Relativos – Diretório de trabalho;

Sistemas de Arquivos Rafael Sachetto Oliveira – 16 / 64


Operações com diretórios

■ Create (criar)

■ Delete (apagar)

■ Opendir (abrir diretório)

■ Closedir (fechar diretório)

Sistemas de Arquivos Rafael Sachetto Oliveira – 17 / 64


Operações com diretórios

■ Readdir (ler diretório)

■ Rename (renomear)

■ Link (ligar – Ligação simbólica ou estrita)

■ Unlink

Sistemas de Arquivos Rafael Sachetto Oliveira – 18 / 64


Esquema do sistema de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 19 / 64


Implementação de arquivos

■ Questão primordial: controle e manutenção sobre quais


blocos pertencem a quais arquivos.

Sistemas de Arquivos Rafael Sachetto Oliveira – 20 / 64


Alocação contı́gua

■ Vantagem: rápida e simples de implementar;

■ Desvantagem: fragmentação e necessário o tamanho final


do arquivo;

■ Ainda usada em CD–ROM;

Sistemas de Arquivos Rafael Sachetto Oliveira – 21 / 64


Alocação por lista encadeada

■ Não sofre com a fragmentação;

■ Acesso aleatório é extremamente lento;

Sistemas de Arquivos Rafael Sachetto Oliveira – 22 / 64


Alocação por lista encadeada usando uma
tabela na memória

■ FAT - File allocation Table

■ Desvantagem: gasto de memória

Sistemas de Arquivos Rafael Sachetto Oliveira – 23 / 64


Inodes

■ O i-node precisa estar na memória se o arquivo


correspondente estiver aberto;
Sistemas de Arquivos Rafael Sachetto Oliveira – 24 / 64
Implementação de diretórios

■ Mapear o nome do arquivo ASCII na informação necessária


para localizar os dados.

Sistemas de Arquivos Rafael Sachetto Oliveira – 25 / 64


Implementação de diretórios

■ Como ter nomes de diretórios com tamanho variável?

■ Uso de Hash para melhorar a busca.

Sistemas de Arquivos Rafael Sachetto Oliveira – 26 / 64


Arquivos compartilhados

■ Links simbólicos ou estritos podem ser usados.

Sistemas de Arquivos Rafael Sachetto Oliveira – 27 / 64


Arquivos compartilhados

■ Problemas com arquivos compartilhados.

Sistemas de Arquivos Rafael Sachetto Oliveira – 28 / 64


Sistemas de arquivos Journaling

Operações necessárias para remover um arquivo no UNIX:

■ Remova o arquivo de seu diretório.

■ Libere o i-node para o conjunto de i-nodes livres.

■ Volte todos os blocos do disco para o conjunto de blocos


livres no disco.

A ordem das etapas não é relevante;


Problemas podem acontecer durante essas operações;

Sistemas de Arquivos Rafael Sachetto Oliveira – 29 / 64


Sistemas de arquivos Journaling

■ Escreva uma entrada no log listando as operações a serem


realizadas;

■ Grave o log no disco e releia para a memoria (Integridade)

■ Realize as operações;

■ Apague a entrada no log;

■ Se houver algum problema, leia o log e conclua as


operações pendentes;

Sistemas de Arquivos Rafael Sachetto Oliveira – 30 / 64


Sistemas de arquivos virtuais

■ No Windows as letras das unidades estão ligadas ao sistema


de arquivos;

■ No Unix existe a unificação dos sistemas heterogêneos;

Sistemas de Arquivos Rafael Sachetto Oliveira – 31 / 64


Sistema de arquivos virtual

■ O sistema de arquivos se registra no VFS;

■ Fornece uma tabela com as funções reais do sistema de


arquivos;

■ Sendo assim o VFS sabe como ler os blocos do sistema real;

Sistemas de Arquivos Rafael Sachetto Oliveira – 32 / 64


Sistemas de arquivos virtuais

Sistemas de Arquivos Rafael Sachetto Oliveira – 33 / 64


Gerenciamento de espaço em disco

■ Os arquivos podem ser escritos contiguamente no disco;

◆ Se o arquivo cresce ele precisa ser movido;

■ O arquivo pode ser divido em blocos de tamanho fixo e nao


adjacentes;

Sistemas de Arquivos Rafael Sachetto Oliveira – 34 / 64


Tamanho do bloco

■ Escolha importante na implementação do sistema de


arquivos;

◆ Se a unidade de alocação for grande ocorre disperdı́cio


de espaço;
◆ Se for pequena ocorre disperdı́cio de tempo;

Sistemas de Arquivos Rafael Sachetto Oliveira – 35 / 64


Tamanho dos blocos no gerenciamento do
espaço em disco

Sistemas de Arquivos Rafael Sachetto Oliveira – 36 / 64


Tamanho dos blocos no gerenciamento do
espaço em disco

■ Com blocos de 1KB, 30–50% cabem em um bloco;

■ Com blocos de 4KB 60%–70% cabem em um bloco;

■ 93% dos blocos do disco são ocupados por 10% dos


arquivos grandes;

■ Por outro lado, uma unidade pequena de alocação prejudica


a leitura de aqruivos com muitos blocos;

Sistemas de Arquivos Rafael Sachetto Oliveira – 37 / 64


Tamanho dos blocos no gerenciamento do
espaço em disco

■ Blocos pequenos pequenos são ruins para o desenpenho


mas bom para o espaço;

Sistemas de Arquivos Rafael Sachetto Oliveira – 38 / 64


Monitoramento dos blocos livres

■ Um disco de 500 GB: 1,9 milhão de blocos com lista


encadeada e 60 mil blocos com mapa de bits;

Sistemas de Arquivos Rafael Sachetto Oliveira – 39 / 64


Monitoramento dos blocos livres

■ Problemas podem acontecer com arquivos temporários;

Sistemas de Arquivos Rafael Sachetto Oliveira – 40 / 64


Cotas de disco

Sistemas de Arquivos Rafael Sachetto Oliveira – 41 / 64


Cópia de segurança do sistema de arquivos

Geralmente, as cópias de segurança em fita são feitas para lidar


com dois problemas em potencial:

■ Recuperação em caso de desastre.

■ Recuperação quando é feita uma bobagem.

Sistemas de Arquivos Rafael Sachetto Oliveira – 42 / 64


Cópia de segurança do sistema de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 43 / 64


Cópia de segurança do sistema de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 44 / 64


Consistência do sistema de arquivos

Sistemas de Arquivos Rafael Sachetto Oliveira – 45 / 64


Desempenho do sistema de arquivos

■ Acesso ao disco é muito mais lento que acesso a memória


principal;

■ Otimizações podem ser empregadas para melhorar o


desempenho.

Sistemas de Arquivos Rafael Sachetto Oliveira – 46 / 64


Cache

■ Tipo mais utilizada: cache de blocos ou cache de buffer;

■ Cache: coleção de blocos que pertencem ao disco mais


estão sendo mantidos na memória por questões de
desempenho.

Sistemas de Arquivos Rafael Sachetto Oliveira – 47 / 64


Cache

■ Alguns blocos, tais como blocos i-node, raramente são


referenciados duas vezes em um pequeno intervalo de
tempo.

■ Leve em consideração um esquema LRU, levando dois


fatores em consideração:

◆ É provavel que o bloco seja necessário novamente em


breve?
◆ O bloco é essencial para a consistência do sistema de
arquivos?

Sistemas de Arquivos Rafael Sachetto Oliveira – 48 / 64


Cache

■ Para manter a integridade dos dado, não é desejável


manté-los na cache por muito tempo antes de serem
escritos.

■ Unix: sync

■ Windows: FlushFileBuffers (ou caches de escrita direta)

Sistemas de Arquivos Rafael Sachetto Oliveira – 49 / 64


Leitura antecipada de blocos

■ Transferir os blocos para a cache antes que eles sejam


necessários;

■ Funciona somente para arquivos sequenciais. Piora o


desempenho em arquivos com acesso aleatório (aumento de
E/S)

■ O sistema operacional pode tentar inferir o tipo de acesso.

Sistemas de Arquivos Rafael Sachetto Oliveira – 50 / 64


Redução do movimento do braço do disco

■ Escolher blocos consecutivos para a alocação dos arquivos;

■ Trivial com mapa de bits;

■ Usando listas monitorar o uso do disco agrupando blocos


consecutivos;

Sistemas de Arquivos Rafael Sachetto Oliveira – 51 / 64


O sistema de arquivos ISO 9660

■ O CD–ROM é formado por uma espiral contı́nua.

■ Os bits ao longo da espiral são divididos em blocos lógicos


de 2352 bytes (2048 bytes de dados);

■ A posição num bloco pode ser representada por minutos e


segundos (1s = 75 blocos)

Sistemas de Arquivos Rafael Sachetto Oliveira – 52 / 64


O sistema de arquivos ISO 9660

■ O CD–ROM começa com 16 blocos que podem ser usados


para qualquer finalidade.

■ Depois temos o descritor de volume primário: informações


gerais sobre o CD–ROM.

■ Podem haver outros registros como resumo, informações


sobre direitos autorais, etc.

■ No descritor de volume primário também temos uma


entrada do diretório para o diretório raiz

Sistemas de Arquivos Rafael Sachetto Oliveira – 53 / 64


O sistema de arquivos ISO 9660

■ As entradas de diretórios têm tamanho variável;

■ Podem conter campos ASCII ou binários (em little-endian


ou big-endian)

Sistemas de Arquivos Rafael Sachetto Oliveira – 54 / 64


O sistema de arquivos ISO 9660

■ As entradas são mantidas em ordem alfabética;

■ Existem entradas para o proprio diretório e para o pai;

■ A maxima profundidade de aninhamento de um diretório é


8;

■ Existem 3 nı́veis do ISO 9660

Sistemas de Arquivos Rafael Sachetto Oliveira – 55 / 64


Extensões Rock Ridge

■ Atributos PX - POSIX.

■ PN – Números de dispositivo principal e secundário.

■ SL – Ligação simbólica.

■ NM – Nome alternativo.

■ CL – Localização do filho.

■ PL – Localização do pai.

■ RE – Realocação.

■ TF – Estampa de tempo.

Sistemas de Arquivos Rafael Sachetto Oliveira – 56 / 64


Extensões Joliet

Principais extensões oferecidas pelo Joliet:

■ Nomes de arquivos longos;

■ Conjunto de caracteres unicode;

■ Aninhamento de diretórios mais profundo que oito;

■ Nomes de diretórios com extensões

Sistemas de Arquivos Rafael Sachetto Oliveira – 57 / 64


O sistema de arquivos do MS-DOS

■ Primeiro sistema de arquivos usados por computadores


pessoais;

■ Usado no Windows 95, 98 e ME;

■ O FAT-32 é atualmente utilizado em sistemas embarcados


(câmeras, Ipods, etc);

Sistemas de Arquivos Rafael Sachetto Oliveira – 58 / 64


O sistema de arquivos do MS-DOS

Sistemas de Arquivos Rafael Sachetto Oliveira – 59 / 64


O sistema de arquivos do MS-DOS

Sistemas de Arquivos Rafael Sachetto Oliveira – 60 / 64


O sistema de arquivos do UNIX V7

■ O sistema forma um grafo acı́clico;

■ Nomes de arquivos têm até 14 caracteres ASCII;

■ Uma entrada de diretório contem uma entrada para cada


arquivo;

■ A entrada é simples (uso de i-nodes) e contem o nome do


arquivo e o número do i-node

Sistemas de Arquivos Rafael Sachetto Oliveira – 61 / 64


O sistema de arquivos do UNIX V7

Sistemas de Arquivos Rafael Sachetto Oliveira – 62 / 64


O sistema de arquivos do UNIX V7

Sistemas de Arquivos Rafael Sachetto Oliveira – 63 / 64


O sistema de arquivos do UNIX V7

Sistemas de Arquivos Rafael Sachetto Oliveira – 64 / 64