Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner gugawag@gmail.com 1
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios 6.3 Implementação do sistema de arquivos 6.4 Exemplos de sistemas de arquivos 2
Implementação do Sistema de Arquivos Um possível layout de sistema de arquivo 3
Implementação de Arquivos Alocação Contígua (a) Alocação contígua do espaço em disco para 7 arquivos (b) Estado do disco depois dos arquivos D e E terem sido removidos 4
Implementação de Arquivos Alocação Contígua Vantagens: Simples de implementar: só precisa lembrar do endereço em disco do primeiro bloco + quantidade de blocos do arquivo; Desempenho excelente, dado que o arquivo será lido numa única operação; Problema: Com o tempo, o disco fica fragmentado; 5
Implementação de Arquivos Alocação Contígua Apesar disso, alocação contígua é usada em CD-ROMs; Como sabe-se previamente o tamanho dos arquivos, e esses não serão alterados, esse algoritmo é ideal; 6
Alocação por Listas Encadeadas Armazenamento de um arquivo como uma lista encadeada de blocos de disco 7
Implementação de Arquivos Alocação linkada 8
Alocação por Listas Encadeadas Não apresenta o problema de fragmentação externa; Leitura seqüencial é muito rápida; Leitura aleatória é muito lenta; 9
Alocação por lista encadeada usando tabela na memória Elimina-se desvantagem de aloc. por lista encadeada colocando-se tabela de aloc. de arquivos na memória; É o que chamamos de FAT (File Allocation Table); O acesso aleatório torna-se bem mais rápido, dado que será todo feito na memória; 10
Alocação por lista encadeada usando tabela na memória Desvantagem: Tabela deve estar na memória o tempo todo; Ex.: HD de 20GB com blocos de 1KB: necessários 20 milhões de entradas, cada entrada de 3 bytes: +- 60MB em memória; 11
Implementação de Arquivos - FAT Alocação por lista encadeada usando uma tabela de alocação de arquivos em RAM 12
i-node Um exemplo de i-node 13
Fat x i-node A tabela ocupa um grande espaço em memória: Disco de 20GB, blocos de 1KB, entrada na tabela de 4 bytes, daria ~ 60MB de tabela; i-node (index-node) Estrutura que referencia um arquivo; O i-node só vai para a memória quando o arquivo está aberto; 14
FAT-16 Cada posição na FAT-16 utiliza uma variável de 16 bits, no máximo: 2 16 = 65.536 posições na FAT Cada setor do HD cabem apenas 512 bytes; Assim, o tamanho máximo de um HD usando fat-16 seria: 65.536 x 512 bytes = 33.554.432 bytes ou 32 MB Por isso o FAT-16 não trabalha com setores, e sim agrupamentos de setores chamados clusters; 15
FAT-16 Quanto maior o cluster, maior o desperdício; Esse é o maior problema do FAT-16; 16
FAT-32 Clusters menores, reduzindo assim o desperdício; 17
FAT-32 Disco que utilizem o sistema FAT-32 não eram "enxergados" por outros sistemas operacionais que não sejam o Windows 95 OSR2; É cerca de 6 % mais lento que o sistema FAT-16, devido ao tamanho e quantidade de clusters; 18
NTFS (New Technology File System) Vantagem: não há desperdício em disco, pois não há clusters: a menor unidade de alocação é o próprio setor de 512 bytes. Segurança pode ser feita por arquivo e/ou diretório; Desvantagem: Só quem enxerga esse SA é o windows NT; 19
Linux: ext3 ext3=ext2 + journaling; Journaling: forma eficiente de recuperar arquivos no caso de uma perda de energia ou ocorrência de desastre; Por que é eficiente? Porque primeiro grava-se num arquivo de journal para depois fazer a real alteração; Se houve algum erro, só é refazer ou desfazer a partir dos arquivos de journal; 20
Implementação de Diretórios Serve para mapear nome do arquivo em ASCII na informação necessária para localizar o arquivo no disco; Onde colocar os atributos dos arquivos? No diretório: windows e dos No próprio i-node: unix; 21
Arquivos Compartilhados Sistema de arquivo contendo um arquivo compartilhado 22
Arquivos Compartilhados (2) (a) Situação antes da ligação (b) Depois de a ligação ser criada (c) Depois de o proprietário original remover o arquivo 23
Arquivos Compartilhados Via i-node: O i-node apontaria para o bloco compartilhado; Se o arquivo for removido pelo dono (c), o sistema terá um problema: Se o arquivo for removido e o i-node limpo, B apontará para um i-node inválido; Se o i-node for reatribuído para outro arquivo, B apontará para um arquivo inválido; Não há uma maneira do sistema saber todas as entradas de diretórios para o arquivo; 24
Arquivos Compartilhados Solução: Remover a entrada de diretório de C e deixar o i-node intacto, e apenas decrementar o contador; Via ligações simbólicas: Esse problema não ocorreria; O que fica guardado são apenas nomes de caminho, e não ponteiros para i-nodes; 25
Quotas em Disco Cotas para controlar o uso do disco por usuário 26
Quotas em Disco Ao se aplicar quotas, não se pode exceder a quantidade de arquivos nem a quantidade de blocos em disco máximo por usuário; 27
Confiabilidade do Sistema de Arquivos É preciso por causa de: Recuperação em caso de desastre; Recuperação quando é feita alguma bobagem; No windows, um arquivo apagado vai para lixeira; É importante fazer cópia de segurança incremental; 28
Confiabilidade do Sistema de Arquivos É difícil fazer cópia de segurança enquanto o sistema de arquivos estiver em uso; Tipos de cópias: Física: são copiados todos os blocos do HD; Lógica: são copiados os diretórios especificados; 29
Confiabilidade do Sistema de Arquivos Um sistema de arquivos a ser copiado Os quadrados são diretórios e os círculos são arquivos Os itens sombreados foram modificados desde a última cópia Cada diretório e arquivo rotulado por seu número de i-node 30
Confiabilidade do Sistema de Arquivos (2) Mapas de bits usados pelo algoritmo de cópia lógica (ou dump lógico) 31
Consistência do Sistema de Arquivos A maioria dos sistemas de arquivos lêem os blocos, alteram e em algum momento escrevem no disco; Mas e se faltar energia? O sistema de arquivo poderá ficar inconsistente; Os SOs têm sistemas que checam inconsistência: Linux: Fsck; Windows: Scandisk 32
Consistência do Sistema de Arquivos Estados do sistema de arquivos a) consistente b) bloco desaparecido 2 (incluir na lista de livres) c) bloco duplicado na lista de livres 4 (reconstruir lista de livres) d) bloco de dados duplicados 5 (aloca-se bloco livre, copia-se o conteúdo de 5 para ele e insere a cópia em um dos arquivos) 33
O Sistema de Arquivos MS-DOS A entrada de diretório do MS-DOS 34
O Sistema de Arquivos MS-DOS Não existe conceito de usuário: Qualquer um ler/altera qualquer arquivo; Usa-se FAT como sistema de arquivos; Existem FAT 12, 16 e 32; FAT 16: blocos de 8, 16 e 32KB Tamanho máximo de uma partição: 2GB FAT 32: à partir da 2ª versão do win95 35
O Sistema de Arquivos MS-DOS Partições tem, no máximo, 2 28 x 2 15 bytes Mas foi limitado a 2TB 2 15 = 32KB (tam. do bloco); Bloco com 32KB causa muito desperdício interno; Tamanho bom para bloco: 4KB 36
Sistema de Arquivos NTFS Arquivo com nome até 255 caracteres; Caminho desde a raiz com até 32767 caracteres; Nome de arquivos em unicode (qualquer idioma); Diferencia maiúsculas de minúsculas; A maioria dos NTFSs usa 4KB de tamanho de bloco; 37
Sistema de Arquivos NTFS Principal estrutura de dados é a MFT (Master File Table); Cada registro da MFT representa um arquivo ou diretório; Entrada: Atributos, nome, tempo de criação, lista de endereços no disco dos blocos; Para arquivos grandes usa-se mais de uma entrada; 38
Sistema de Arquivos NTFS Usa-se mapa de bits para saber sobre blocos livres; A MFT é um arquivo e pode ser colocada em qualquer posição do HD Elimina o problema de setores defeituosos na trilha 0; No campo inf. padrão de cada entrada informa qual o dono do arquivo/diretório e quais os bits de segurança; 39
O Sistema de Arquivos do UNIX V7 (1) Uma entrada de diretório do UNIX V7 40
i-node Um exemplo de i-node 41
O Sistema de Arquivos do UNIX V7 (2) Um i-node UNIX 42