• Nenhum resultado encontrado

Sistema de Ficheiros

N/A
N/A
Protected

Academic year: 2021

Share "Sistema de Ficheiros"

Copied!
44
0
0

Texto

(1)

1

Sistema de Ficheiros

2

Armazenamento de Informação de

Longa Duração

1. Deve guardar grandes quantidades de dados

2. Informação guardada deve sobreviver à

terminação dos processos

3. Múltiplos processos devem poder aceder à

informação concurrentemente

(2)

3

Sistema de Ficheiros

Solução: discos com ficheiros

Processo devem poder ler e escrever

Ficheiros são geridos pelo S.O.

Nomes de Ficheiros (1)

UNIX vs Windows/MS-DOS

Maiúsculas, minúsculas

(3)

5

Nomes de Ficheiros (2)

Extensões típicas.

6

Estrutura dos Ficheiros

• Três tipos de ficheiros

– sequência de bytes

– sequência de registos

(4)

7

Tipos de Ficheiros (1)

Regulares

– ASCII – Binários

Directorias

Especiais de caracteres (UNIX)

Especiais de blocos (UNIX)

Tipos de Ficheiros (2)

(5)

9

Acesso a Ficheiros

• Acesso sequencial

– Ler todos os bytes/registos desde o ínicio

– Não pode andar a saltar, pode voltar ao ínicio ou andar para trás

– Conveniente no caso de tapes magnéticas

• Acesso aleatório

– bytes/registos lidos por qualquer ordem

– essencial para sistemas de base de dados

– ler pode ser …

• mover “file marker” (seek), depois ler ou …

• ler e depois mover “file marker”

10

Atributos de ficheiros

(6)

11

Operações nos ficheiros

1.

Criar

2.

Apagar

3.

Abrir

4.

Fechar

5.

Ler

6.

Escrever

7.

Append

8.

Seek

9.

Obter

atributos

10.

Definir

atributos

11.

Renomear

Um Exemplo Usando Chamadas ao Sistema para

Ficheiros (1/2)

(7)

13

Um Exemplo Usando Chamadas ao Sistema para

Ficheiros (2/2)

14

Ficheiros Mapeados em Memória

(a) Processo segmentado antes de se mapear o ficheiro no seu espaço de endereçamento

(b) Processo depois de mapear

ficheiro existente abc num segment

– criar novo segmento para xyz

(8)

15

Directorias

Sistema com Um Nível de Directorias

• Um sistemas com apenas um nível de directorias

– Contém 4 ficheiros

– Pertencem a 3 pessoas diferentes, A, B, and C

Sistemas com Dois Níveis de

Directorias

Letras indicam donos das directorias e dos ficheiros

Nalgumas situações os utilizadores necessitam de aceder a ficheiros fora das respectivas directorias. Exs.? Como?

(9)

17

Sistemas Hieráquicos de Directorias

Um sistema hierárquicos de directorias

18

Nomes dos caminhos (1)

Caminho absoluto

– Windows: \usr\ast\mailbox

– UNIX: /usr/ast/mailbox

Caminho relativo

– Conceito de directoria actual

– Bibliotecas devem ter cuidado ao mudar a directoria actual, porquê?

(10)

19

Uma árvore de directorias em UNIX

Nomes dos caminhos (2)

Operações Sobre Directorias

1. Criar

(vazia, excepto…?)

2. Apagar

3. Abrir

directoria

4. Fechar

directoria

5. Ler directoria

6. Renomear

7. “Link”

8. “Unlink”

(11)

21

Implementação do Sistema de

Ficheiros

Uma possível organização do sistema de ficheiros

22

Implementando Ficheiros (1)

(a) Alocação contígua do espaço do disco para 7 ficheiros

(b) Estado do disco depois dos ficheiros D e E terem sido removidos

Vantagens / Desvantagens?

(12)

23

Implementando Ficheiros (2)

Guardar ficheiro como uma lista ligada de blocos de disco

Desvantagens?

Implementando Ficheiros (3)

Alocação da lista ligada usando uma tabela de ficheiros em RAM (FAT)

(13)

25

Implementando Ficheiros (4)

Um exemplo de um i-node Vantagens? O(…) Porquê? 26

Implementando Directorias (1)

(a) Uma simples directoria

entradas com tamanho fixo

endereços no disco e atributos na entrada da directoria

(14)

27

Implementando Directorias (2)

• Duas formas de lidar com nomes grandes de ficheiros numa directoria

– (a) In-line

– (b) In a heap

Ficheiros Partilhados (1)

(15)

29

Ficheiros Partilhados (2)

(a) Situação antes de “link” (b) Depois de ser criado “link”

(c)Depois de o dono original apagar ficheiro

Desvantagens? / Alternativa? / Desvantagens?

30

Gestão de Espaço em Disco (1)

• Normalmente um ficheiro é dividido em blocos não

adjacentes de tamanho fixo. Porquê? • Qual o tamanho de um bloco?

• Se for um cilindro então um ficheiro de 1 byte ocupa um cilindro inteiro!

• No UNIX por exemplo a média do tamanho dos ficheiros é de 1kB.

– Se se alocar um bloco de 32kB então 97% do disco não é usado! • Por outro lado, blocos pequenos aumenta o tempo de

acesso

(16)

31

Gestão de Espaço em Disco (2)

• Linha a cheio (escala do lado esquerdo) mostra taxa de transferência

• Linha a tracejado (escala do lado direito) mostra espaço em disco

• Todos os ficheiros com 2KB Block size

Gestão de Espaço em Disco (3)

(a) Guardar a lista de blocos livre numa lista ligada (b) Num bitmap

(17)

33

Gestão de Espaço em Disco (4)

(a) Bloco de ponteiros em RAM para os blocos de disco livres quase cheia

- três blocos de ponteiros no disco

(b) Resultado de libertar um ficheiro com 3 blocos (c) Estratégia alternativa para gerir esta situação

- entradas a cinzento representam ponteiros para blocos livres no disco

34

Gestão de Espaço em Disco (5)

(18)

35

Fiabilidade dos Sistemas de

Ficheiros (1)

• Backups

– Recuperar por desastre

– Recuperar por “estupidez”

• Backups totais

• Backups incrementais

Vantagens / Desvantagens?

Fiabilidade dos Sistemas de

Ficheiros (1)

• Dumps fisicos

– começa no bloco 0 e copia tudo para a tape

– grande velocidade

– não permite backups incrementais

– copia todas as directorias

– não permite a recuperação de ficheiros individuais

– e os blocos livres?

– e os “bad” blocos? • Dumps lógicos

– começa numa ou várias directorias e percorre-as recursivamente

– reconstruir a lista de blocos livres

– ficheiros partilhados apenas devem ser copiados uma vez

(19)

37

Fiabilidade dos Sistemas de

Ficheiros (2)

• Um sistema de ficheiros para ser “dumped”

– quadrados são directorias, circulos são ficheiros

– a cinzento, os modificados desde o último “dump”

– cada directoria/ficheiro com o número de i-node

File that has not changed

38

Fiabilidade dos Sistemas de

Ficheiros (3)

(20)

39

Fiabilidade dos Sistemas de

Ficheiros (4)

• Inconsistência dum sistema de ficheiros

– “crash” antes de todos os blocos modificados terem sido escritos em disco

– blocos podem ser ficheiros, i-nodes, directorias, lista de blocos livres

– utilitários: fsck, scandisk,…

– fsck: mantem duas tabelas com um contador por bloco:

• quantas vezes está presente num ficheiro

• quantas vezes está presente na “free list”

Fiabilidade dos Sistemas de

Ficheiros (5)

• Estado dum sistema de ficheiros

– (a) consistente

– (b) falta um bloco

– (c) bloco duplicado na lista de livres

– (d) bloco de dados duplicado

• Verifica tambem o sistema de directorias

(21)

41

Desempenho dos Sistemas de

Ficheiros (1)

Estruturas de uma cache de blocos LRU é a melhor solução?

42

Desempenho dos Sistemas de

Ficheiros (2)

• Desvantagens do LRU

– blocos críticos e muito referênciados não são guardados em disco

• LRU modificado

– o bloco será usado brevemente?

– o bloco é essencial para a integridade do sistema?

– blocos divididos em categorias • i-node

• blocos indirectos

• directorias

• cheios de dados

• quase cheios de dados

• UNIX: sync e update

(22)

43

Desempenho dos Sistemas de

Ficheiros (3)

• Ler blocos antes de serem necessários

Ao aceder ao bloco k coloca em cache o bloco k+1 • Qual o tipo de acesso onde esta optimização

ajuda? E o tipo de acesso onde prejudica? • O sistema de ficheiros deve ser adaptativo

Desempenho dos Sistemas de

Ficheiros (4)

• I-nodes colocados no início do disco: Problema no acesso a ficheiros pequenos?

• Disco dividido em grupos de cilindros

(23)

45

Sistemas de Ficheiros Estruturados

com “Logs”

• Com CPUs mais rápidos, memórias maiores

– caches de disco podem também ser maiores

– aumento do número de leituras podem vir da cache

– por isso, maior parte dos acessos ao disco serão escritas

• Estratégia LFS estrutura o disco todo como um

“log”

– todas as escritas são inicialmente feitas para um buffer em memória

– periodicamente escreve esses dados para o final do “log” no disco

– quando o ficheiro é aberto, localiza o i-node, depois encontra os blocos

46

Exemplos de Sistemas de Ficheiros

CD-ROM

(24)

47

O Sistema Ficheiros CP/M (1)

Organização da memória no CP/M

O Sistema Ficheiros CP/M (2)

entrada de uma directoria em CP/M • 32 entradas

• blocos de 1kB

• Durante o arranque, é calculado um bitmap dos blocos livres (como?) e carregado em memória

(25)

49

O Sistema de Ficheiros MS-DOS (1)

entrada de 32 bytes de uma directoria em MS-DOS • Usa uma FAT: 12, 16 ou 32 (28 bits)

50

O Sistema de Ficheiros MS-DOS (2)

• Partição máxima para diferentes tamanhos de blocos • As entradas a branco indicam combinações impossíveis

(26)

51

Sistema de Ficheiros Windows 98 (1)

entrada de uma directoria usada no Windows 98 (extendida do MS-DOS)

• Ficheiros com nomes grandes: entrada normal com nome do tipo: SISTEM~1.DOC, antecedida de entradas “especiais” que guardam o nome compeleto

Bytes

Sistema de Ficheiros Windows 98 (2)

Bytes

Checksum

• Parte de uma entrada de um ficheiro com um nome grande em Windows 98 (esta entrada antecede a entrada com o nome MS-DOS)

(27)

53

Sistema de Ficheiros Windows 98 (3)

Um exemplo de como um nome de ficheiro grande pode ser guardado em Windows 98

54

(28)

55

O Sistema de Ficheiros UNIX (1)

Directorias importantes em sistemas UNIX

O Sistema de Ficheiros UNIX (2)

• Before linking. • After linking.

(29)

57

O Sistema de Ficheiros UNIX (3)

• Separate file systems • After mounting

(a) (b)

(a) Antes do mount. (b) Depois do mount

58

Locks Sobre Ficheiros

(a) Ficheiro com um lock (b) Adicionar um segundo lock (c) Terceiro lock

(30)

59

Chamadas de Sistema para Ficheiros

• s é um código de erro

• fd é um descritor de ficheiro

• position é um deslocamento

A chamada

stat

(31)

61

Chamadas de Sistema para Directorias

• s é um código de erro

• dir identifica uma directoria aberta • dirent é uma entrada numa directoria

62

Implementação do Sistema de

Ficheiros UNIX (1)

Layout de uma partição nos sistemas UNIX

clássicos

(32)

63

Implementação do Sistema de

Ficheiros UNIX (2)

entrada de um directoria em UNIX V7 • Limitação imposta por esta estrutura?

Implementação do Sistema de

Ficheiros UNIX (3)

Directory entry fields.

(33)

65

Implementação do Sistema de

Ficheiros UNIX (4)

Um i-node em UNIX

66

Tabela de descritores de ficheiros vs.

Tabela de ficheiros abertos

Implementação do Sistema de

Ficheiros UNIX (5)

Porque motivo a posição de leitura/escrita não é guardada na copia do inode em memória?

(34)

67

Implementação do Sistema de

Ficheiros UNIX (6)

Os passos para localizar /usr/ast/mbox

Implementação do Sistema de

Ficheiros UNIX (7)

• Berkeley FFS

• Directoria com 3 ficheiros

• Mesma directoria após apagar o ficheiro voluminous • Grupos de cilindros

(35)

69

Sistema de Ficheiros Linux Ext2 (1)

• Começou por ser o Minix

– Compativel com UNIX V7

• Depois o Ext

– Nomes de ficheiros com 255 caracteres

– Ficheiros de 2GB

– Muito lento

• Finalmente Ext2

– Muito semelhante ao Berkeley Fast File System

• O Linux suporta no entanto vários tipos de

sistemas de ficheiros

70

Sistema de Ficheiros Linux Ext2 (2)

(36)

71

Sistema de Ficheiros Linux Ext2 (3)

• Cada i-node com 128 bytes

– 12 endereços directos de blocos

– 3 indirectos

• Endereços dos blocos com 4 bytes

• Blocos de 1KB

• Quantos blocos são endereçados por um

bloco de indirecção simples? E dupla?

Sistema de Ficheiros Linux Ext3 (1)

• Compatível com Ext2

• Usa journaling

– Ficheiro especial

• Quando o sistema de ficheiros é actualizado

um registo é acrescentado ao log

• Uma tarefa processa estas transacções e

escreve os dados para o sistema de ficheiros

(37)

73

Sistema de Ficheiros Linux Ext3 (2)

1. A operação é escrita no ficheiro de log

2. A operação é escrita no sistema de

ficheiros

3. A entrada do log é marcada como

completa

Mantém a consistência do sistema de

ficheiros

– Se a máquina for abaixo, no reboot a tarefa recomeça a escrever o que ainda não tinha escrito

– Transacções incompletas são ignoradas

74

Sistema de Ficheiros Linux Ext3 (3)

Log com dados completos

– Mais seguro (dados são escritos na totalidade ou não são escritos de todo)

– Mais lento

Log apenas com metadata

– Mais rápido

(38)

75

Sistemas de Ficheiros Linux

• ReiserFS

– Usa árvores balanceadas para os ficheiros e nomes de ficheiros

– Mantém um registo de todas as modificações da árvore

• XFS

– Usa árvores balanceadas

– Permite grandes ficheiros

– Bom suporte para multiprocessadores

• JFS

– Blocos livres estruturados numa árvore

– Directorias pequenas optimizadas nos i-nodes

Sistema de Ficheiros do Windows 2000

(NTFS)

(39)

77

API do Sistema de Ficheiros Windows 2000

• Win32 API para manipular ficheiros

• Segunda coluna apresenta o equivalente UNIX

78

API do Sistema de Ficheiros Windows 2000

(40)

79

API do Sistema de Ficheiros Windows 2000

• Win32 API para manipular directorias

• Segunda coluna apresenta o equivalente UNIX

Estrutura do Sistema de Ficheiros

NTFS master file table

• Sequência de registos com 1 kB

• Cada registo corresponde a um ficheiro ou

directoria, e descreve atributos e lista de blocos • Primeiros 16 registos são

ficheiros com metadados do NTFS

• Bitmap com entradas livres da MFT

(41)

81

Atributos usados nos registos MFT

• Cada registo consiste numa seq de <cabeçalho do atributo, valor>

• Cabeçalho contem o comprimento do atributo

• Se atributos não couberem no registo, “valor” contem um apontador para disco

inline ou lista de blocos

82

Estrutura do Registo MFT de um Ficheiro

(42)

83

Estrutura do Registo MFT de um

Ficheiro Fragmentado

Ficheiro que necessita de 3 registos MFT para armazenar as “runs”

• Registo MFT para uma directoria pequena.

• Directoria grandes guardadas numa árvore B+ para facilitar o lookup

(43)

85

Lookup de um Nome de um Ficheiro

Passos para o lookup de C:\maria\web.htm

(traduzido por biblioteca para \??\C:\maria\web.htm)

86

Compressão de Ficheiros

(a) Exemplo de um ficheiro de 48 blocos comprimido para 32 blocos (b) Registo MTF do ficheiro após a compressão

(44)

87

Cifra do Ficheiro

K retrieved

Referências

Documentos relacionados

Cintos de Segurança: Terão de compreender duas cintas nos ombros, uma abdominal e uma pélvica, sendo que no mínimo tenham cinco pontos de apoio, com fixação à carroçaria /

Faulhaber, L.M.Rosenfeld, C.C.C.Guerra - Hospital Albert Einstein / Centro de Hematologia de São Paulo, São Paulo, Brazil – Low platelet counts: diagnosis using flow cytometry

BIO-FLASH Chagas é um ensaio imunológico quimiluminescente de dois passos, totalmente automatizado, para a determinação qualitativa de anticorpos IgG e IgM contra

Para fins de monitoramento da saúde perinatal deve-se estar atento, por exemplo, a uma redução expressiva da média ou um aumento do desvio padrão do peso ao nascer do

Outro problema que deve ser evitado é que, dentro de uma mesma chave, mensagens destinadas a uma saída que esteja livre esperem atrás de mensagens destinadas a

A seguir, serão apresentadas as Tabelas com informações a respeito da população residente, os saldos e as taxas líquidas qüinqüenais de migração para o Brasil,

O Revelar pode ajudar um processo de empoderamento da comunidade a tornar-se ainda mais eficaz, proporcionando ferramentas que ajudam a descobrir, explorar e tratar de

Ela confirma suficiente volume de amostra e técnica correta de procedimento Os padrões de controle não são fornecidos com este kit; porém é recomendado que controles positivos