Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros - PDF Free Download
Download "Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros"
Sérgio Viveiros Melgaço
1 Sistemas de Ficheiros Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros 1
2 Armazenamento de Informação de Longo Prazo 1. Deve armazenar grandes massas de dados 2. Informação armazenada deve ser persistente, isto é, deve se manter após o término do processo que a estava utilizando 3. Múltiplos processos devem poder aceder os dados de forma concorrente 2
3 Nomes de ficheiros Extensões típicas de ficheiros 3
4 Estrutura de ficheiros 3 tipos de ficheiros Sequência de bytes Sequência de registos árvores 4
5 Tipos de ficheiros BSS = Block Started by Symbol (vars globais não inicializadas) (a) Ficheiro executável (b) Um archive 5
6 Sequencial Métodos de acesso Lê todos os bytes/records a partir do início do ficheiro Não pode ler qualquer byte sem passar pelos precedentes, pode voltar para trás Conveniente quando o meio de armazenamento era fita magnética Aleatório bytes/records são lidos em qualquer ordem essencial para sistemas de bases de dados Leitura pode ser Mover marcador do ficheiro (seek), então ler ou Ler e só então mover o marcador 6
7 Atributos de ficheiros Atributos possíveis para um ficheiro 7
8 Operações em ficheiros 1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write 7. Append 8. Seek 9. Get attributes 10.Set Attributes 11.Rename 8
9 Exemplo de Programa usando chamadas ao sistema de ficheiros (1/2) 9
10 Exemplo de Programa usando chamadas ao sistema de ficheiros (2/2) 10
11 Diretórios Sistemas de diretório com um único nível Exemplo de sistema de diretório com um nível contém 4 ficheiros que pertencem a 3 pessoas diferentes: A, B, and C 11
12 Sistemas de diretórios de 2 níveis Letras indicam os donos dos diretórios e ficheiros 12
13 Sistemas hierárquicos de diretórios 13
14 Nomes dos caminhos em sistemas com organização hierárquica de diretórios Uma árvore de diretórios UNIX 14
16 Implementação de sistemas de ficheiros MBR = Master Boot Record Um layout possível para um sistema de ficheiros 16
17 Implementação de sistemas de ficheiros Organização dos ficheiros Alocação contígua Alocação em listas encadeadas 17
18 Implementação de ficheiros (1) (a) Alocação Contígua de espaço para 7 ficheiros (b) Estado do disco após ficheiros D e E terem sido removidos 18
19 Implementação de ficheiros (2) Armazenamento de ficheiros utilizando listas encadeadas de blocos do disco 19
20 Implementação de ficheiros (3) Implementação de listas encadeadas utilizando uma File Allocation Table (FAT) em RAM 20
21 Implementação de ficheiros (4) Tamanho da FAT depende do seu tipo: 8, 10, 12, 16, 32. Número de entradas numa FAT: (2^tipo_fat)
22 Implementação de ficheiros (5) Exemplo de nó-i (inode) usado em UNIX 22
23 Implementação de ficheiros (6) Dados Do fich 12 primeiros apontadores para blocos de dados Single indirect block pointer Bloco de dados Bloco de dados Bloco de dados Triple indirect block pointer Double indirect block pointer Exemplo de nó-i (inode) UNIX BSD 23
24 Implementação de diretórios (1) (a) diretório simples Entradas de tamanho fixo Endereços e atributos na entrada de diretório (b) Diretório onde cada entrada refere a um nó-i 24
25 Implementação de Diretórios (2) Como armazenar nomes de diretórios muito longos? (a) In-line (b) In a heap 25
26 Ficheiros compartilhados (1) Sistema de ficheiros contendo um ficheiro compartilhado 26
27 Ficheiros compartilhados (2) (a) Situação antes do link (b) Após o link ser criado (c) Após fich original ser removido pelo dono 27
28 Gestão de espaço em disco (1) Block size Linha cheia (escala à esq) indica taxa de transf do disco Linha pontilhada (escala à dir) indica eficiência Todos os fichs 2 KBytes 28
29 Gestão de espaço em disco (2) 3 blocos de 1 KByte 256 entradas Endereços de 32 bits (a) Armazenando blocos livres numa lista encadeada (b) Armazenando em um bitmap 29
30 Gestão de espaço em disco (3) (a) Bloco com apontadores para blocos livres no disco em memória RAM, quase cheio - Três blocos de apontadores no disco (b) Resultado após libertar um ficheiro de 3 blocos (c) Estratégia alernativa para manipular os três blocos livres Alguns apontadores para blocos livres ficam já em memória - Entradas em cinza são ponteiros para blocos livres 30
31 Gestão de espaço em disco (4) Esquema de quotas para gerir espaço consumido por utilizador 31
32 Backups do sistema de ficheiros (1) File that has not changed Sistema de ficheiros a ser dumped Quadrados são diretórios, círculos são ficheiros Itens em cinza, modificados desde o último backup Cada dir e fich com seu número de nó-i 32
33 Backups do sistema de ficheiros (2) (a) Ficheiros que não foram modificados (4, 12, 13...) (b) Começando pela raiz, nós-i de sub-árvores que foram modificadas (1,2, 3,...) (c) Diretórios modificados (1, 2, 5, 6,...) (d) Ficheiros modificados (3, 8, 9,...) Bitmaps usados pelo algoritmo de dumping lógico 33
34 Consistência do sistema de ficheiros(1) Block number Block number (c) Estados do sistema de ficheiros (a) consistente (b) bloco perdido (2) (c) bloco duplicado na lista de blocos livres (4) (d) Bloco de dados utilizado mais de uma vez (5) (d) 34
35 Consistência do sistema de ficheiros (2) FSCK em Unix: Compara os blocos em ficheiros com a lista de blocos livres. Todo bloco deve estar contado exatamente 1 vez. Se este não for o caso: bloco não aparece em lugar algum: ligar à lista de blocos livres. bloco aparece na lista de blocos livres e em um ficheiro: remover da lista de blocos livres. Aparece mais de uma vez em ficheiros situação muito má! associar o bloco a um dos ficheiros e notificar. 35
36 Desempenho do sistema de ficheiros (1) Hash the device and disk adress Estruturas de dados do buffer (block) cache caching leitura do próximo bloco redução do movimento do braço do disco 36
37 Desempenho do sistema de ficheiros (2) (a) Inodes colocados no início do disco (b) Disco dividido em grupos de cilindros Cada qual com seus blocos e inodes 37
38 Sistemas de ficheiros log-structured Com CPUs mais rápidas e mamórias maiores Caches de disco podem também ser grandes Número maior de pedidos pode ser resolvido pela cache o que indica que a maior parte de acessos a disco será para escritas LFS (Log-structured File System) organiza o disco como se fosse um log Escritas são guardadas em memória (buffered) Escreve periodicamente no fim do log Inodes, blocos de dados, diretórios etc estão todos misturados ocupando um segmento when file opened, locate i-node, then find blocks 38
39 Sistemas de ficheiros journaling Utilizados para manter sistemas de ficheiros consistentes até um determinado momento NTFS (Win), Linux ext2, ReiserFS procedimento Anota as três ações de remoção de ficheiros em log: Remover a entrada do diretório Libertar o nó-i (ligar à lista de livres) Libertar blocos de dados do ficheiro Escreve o log no disco Pode então começar as ações Se bem sucedido: apaga o log Senão, verifica o log para repetir as ações 39
40 Exemplos de sistemas de ficheiros CD-ROM File Systems Organização física: espiral de bits movimento através da espiral possível bits divididos em blocos (setor lógico) de tamanho 2532 bytes posição de um bloco: minutos e segundos, 1sec = 75 blocos CD para música tem extensões (leadin, leadout, intertrack gaps etc) Entrada de diretório do padrão ISO
41 CP/M (1) Organização de memória do CP/M 41
42 O sistema de ficheiros CP/M (2) Entrada de diretório do CP/M 42
43 MS-DOS (1) Entrada de diretório do MS-DOS 43
44 MS-DOS (2) Partição máxima para diferentes tamanhos de bloco Células vazias são combinações não permitidas 44
45 O sistema de ficheiros do Windows 98 (1) Bytes 16 bits extra para ser compatível com FAT32 (32 bits de endereçamento por bloco) Bit de compatibilidade com NT Precisão de 10ms para o tempo de criação (via campo sec) Extensão de entrada de diretório do MS-DOS usada no Windows 98 45
46 O sistema de ficheiros do Windows 98 (2) Bytes Checksum Entrada (parte de) para um ficheiro com nome longo no Windows 98 Extensão da entrada padrão com 8.3 caracteres Pode utilizar várias desta extensões 46