Você está na página 1de 35

Departamento de Engenharia Informtica

Sistema de Ficheiros
Descrio genrica
introduo organizao de nomes tipos de ficheiros proteco no acesso relao com E/S

Estrutura Interna Sistema de Ficheiros Linux

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Sistema de Ficheiros
O que ?
conjunto de ficheiros, directrios, descritores e estruturas de dados auxiliares geridos por um mdulo do sistema operativo (Sistema de Gesto de Ficheiros) permitem estruturar o armazenamento e a recuperao de dados persistentes em um ou mais dispositivos de memria secundria (discos ou bandas magnticas)

ficheiro
conjunto de dados persistentes, geralmente relacionados, identificado por um nome composto por:
nome: identifica o ficheiro perante o utilizador descritor de ficheiro: estrutura de dados em memria secundria com informao sobre o ficheiro (dimenso, datas de criao, modificao e acesso, dono, autorizaes de acesso) informao: dados guardados em memria secundria

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Sistema de Ficheiros (2)


viso global:
um ficheiro identificado por um caminho de acesso (pathname) podendo eventualmente existir diversos caminhos de acesso para o mesmo ficheiro cada ficheiro tem associado um nico index node (inode) que contm informao de localizao e informao de gesto o sistema encarrega-se de a partir do caminho acesso, determinar o inode correspondente para todas as operaes que envolvam ficheiros
8/28/2003 Sistemas Operativos 3

Departamento de Engenharia Informtica

Sistema de Ficheiros (3)


Directrio: catlogo de nomes de ficheiros (ou directrios) que estabelece a associao entre os nomes e os seus descritores um directrio pode conter os descritores ou apenas os seus identificadores um directrio, tal como um ficheiro, tambm composto por um nome, um descritor, e informao
Sistema de ficheiros
ficheiro Contas Clientes descritor descritor ficheiro

Salrios

directrio descritor Sistemas Operativos 4

8/28/2003

Departamento de Engenharia Informtica

Elementos a analisar do SGF


Modelo computacional:
princpios gerais da interface programtica com o sistema de ficheiros

Estrutura interna do sistema de ficheiros:


organizao da informao

Controlo dos dispositivos de memria secundria:


controlo dos discos fsicos, optimizao da leitura/escrita, tamanho dos blocos em disco, etc.

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Modelo Computacional
Criao, abertura, fecho e eliminao de ficheiros:
Criar ( Nome, Proteco ) Fd = Abrir ( Nome, Modo ) Fechar ( Fd ) Eliminar ( Nome ) Operaes complexas sobre ficheiros:
LerAtributos ( Nome, Tampo ) AlterarAtributos ( Nome, Tampo ) Mover (NomeOriginal, NovoNome )

Operaes sobre directrios:


ListaDir ( Nome, Tampo ) MudaDir ( Nome ) CriaDir ( Nome, Proteco )

Operaes sobre ficheiros abertos:


Ler ( Fd, Tampo, NumRegistos ) Escrever ( Fd, Tampo, NumRegistos ) Posicionar ( Fd, PosioRegisto )
8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Organizao dos Nomes dos Ficheiros


Um nome por cada ficheiro num directrio nico a nvel da mquina Um nome por cada ficheiro num directrio nico para cada utilizador Organizao hierrquica (rvore):
soluo proposta no Multics os directrios contm caminhos de acesso para ns descendentes a partir de um directrio raiz ficheiros e directorias vazias so ns terminais (folhas) caminho de acesso (pathname): cadeia de caracteres que localiza um ficheiro ou directoria na rvore nomes absolutos ou relativos:
absoluto: caminho de acesso desde a raiz relativo: caminho de acesso a partir do directrio corrente

directrio corrente mantido para cada processo como parte do seu contexto

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Organizao Hierrquica
/

users pjpf jog avz

bin sh date who

etc src

usr bin

unix tty00

dev tty01

passwd

Sistema de Ficheiros em rvore

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Organizao dos Nomes dos Ficheiros (2)


Uniformidade dos nomes:
UNIX
ficheiros, directrios e dispositivos so referenciados usando a mesma sintaxe para o caminho de acesso um dispositivo contendo um sistema de ficheiros pode ser montado num directrio; a raiz desse sistema de ficheiros fica acessvel atravs do caminho de acesso desse directrio

MS-DOS
espao de nomes uniforme para ficheiros e directrios, tendo os dispositivos que ser referenciados de modo diferente (explcita ou implicitamente); existe o conceito de dispositivo corrente e de directrio corrente por dispositivo
exemplo: A:\b\c\d

VMS
no possui uniformidade de nomes exemplo: a:[b.c]d

8/28/2003

Sistemas Operativos

Departamento de Engenharia Informtica

Uniformidade do Espao de Nomes


/dev/hd0/

b c x d y /dev/hd1 z f e

mount t <filesystem> /dev/hd1 /b


8/28/2003 Sistemas Operativos 10

Departamento de Engenharia Informtica

Organizao dos Nomes dos Ficheiros (3)


Extenses:
extenses convencionais (ex. UNIX)
o sistema de ficheiros no as reconhece, so mantidas pelos utilizadores e assumidas pelas ferramentas que manipulam ficheiros

extenses obrigatrias (ex. MS-DOS, VMS)


um nome de ficheiro composto por nome.extenso (8+3 no MS-DOS), o separador . no faz parte do nome guardado pelo sistema de ficheiros; ambas as componentes podem ser nulas

8/28/2003

Sistemas Operativos

11

Departamento de Engenharia Informtica

Tipos de Ficheiros
O tipo de um ficheiro depende do seu contedo e forma de acesso: contedo: conjunto de registos (de dimenso fixa ou varivel) Forma de acesso aos registos:
acesso sequencial:
para se ler o registo N necessrio ler os N-1 registos anteriores para alterar um registo preciso ler o ficheiro todo e escrev-lo de novo com o registo alterado

acesso directo:
pode-se aceder directamente a um registo sem aceder aos anteriores no se pode inserir um novo registo entre outros dois

acesso por chave:


os registos so identificados por chaves alfanumricas reconhecidas pelo sistema de ficheiros (Indexed Sequential Access Method)

8/28/2003

Sistemas Operativos

12

Departamento de Engenharia Informtica

Proteco
Estabelecimento da proteco quando o ficheiro criado:
A informao de proteco guardada no descritor do ficheiro e est normalmente relacionada com o utilizador responsvel pela sua criao, o qual reconhecido como o seu dono o dono de um ficheiro pode ser alterado durante o tempo de vida de um ficheiro

Verificao dos direitos de acesso de um processo a um ficheiro pelas funes sistema do sistema de ficheiros Especificao dos direitos de acesso a um ficheiro:
listas de acesso para mltiplos utilizadores (Multics, opcional no VMS, Windows) definio de grupos de utilizadores e de direitos de acesso a um ficheiro para o dono, para um grupo de utilizadores e para os demais utilizadores (UNIX)
8/28/2003 Sistemas Operativos 13

Departamento de Engenharia Informtica

Relao entre o Sistema de Ficheiros e as E/S


existem duas relaes tpicas:
o sistema de ficheiros situa-se num nvel hierrquico acima das Entradas/Sadas, sendo estas so usadas para aceder aos perifricos de memria de massa (VMS) as Entradas/Sadas esto ao mesmo nvel do sistema de ficheiros, sendo os dispositivos virtuais vistos como quaisquer outros ficheiros (UNIX, Windows)

comparao:
a segunda opo aumenta o nmero de funes sistema para manipular o sistema de ficheiros (devido existncia dos perifricos virtuais) mas facilita a redireco das leituras e escritas para ficheiros, terminais, impressoras ou outros perifricos

8/28/2003

Sistemas Operativos

14

Departamento de Engenharia Informtica

Estrutura Interna do Sistema de Ficheiros

8/28/2003

Sistemas Operativos

15

Departamento de Engenharia Informtica

Dispositivos de Memria Persistente


dispositivos lgicos:
um dispositivo fsico subdivide-se em segmentos contguos chamados dispositivos lgicos, parties ou volumes o sistema de ficheiros gere os acessos aos dispositivos lgicos

pode-se considerar um dispositivo lgico como um vector de blocos:


os blocos tm uma dimenso mltipla da dos sectores (512 ou 1024 bytes) e, em mquinas de memria paginada, geralmente igual das pginas a informao dos ficheiros guardada em grupos de blocos chamados segmentos (extents) para diminuir a fragmentao possvel reaproveitar partes dos segmentos para outros ficheiros

superbloco:
informao geral de descrio do sistema de ficheiros do dispositivo

8/28/2003

Sistemas Operativos

16

Departamento de Engenharia Informtica

Entidades constituintes do Sistema de Ficheiros no dispositivo de memria secundria


Disco

Bloco de Boot

Tabela de parties

Partio 0

Partio 1

Partio n

Superbloco

Directrio de dados

FCBs ou inodes

Blocos

Ficheiro

Directrio

8/28/2003

Sistemas Operativos

17

Departamento de Engenharia Informtica

Qual o tamanho dos blocos ?


Impacto da fragmentao - Blocos grandes optimizam o I/O mas conduzem a desperdcio de espao por fragmentao interna
Percent Percent Percent

total
waste 0.0 1.1 7.4 8.8 11.7 15.4 29.4 62.0

data
waste 0.0 1.1 1.1 2.5 5.4 12.3 27.8 61.2

inode
waste 0.0 0.0 6.3 6.3 6.3 3.1 1.6 0.8 Percent data only, no separation between files data only, files start on 512-byte boundary data + inodes, 512-byte block data + inodes, 1024-byte block data + inodes, 2048-byte block data + inodes, 4096-byte block data + inodes, 8192-byte block data + inodes, 16384-byte block

8/28/2003

Sistemas Operativos

18

Departamento de Engenharia Informtica

Discos Magnticos
so compostos por:
um conjunto de pratos sobrepostos em cada face de cada prato a informao escrita em pistas concntricas, e cada pista composta por um conjunto de sectores o conjunto das pistas com o mesmo raio forma um cilindro

o tempo de leitura/escrita de um sector composto por:


tempo de posicionamento (seek time): tempo de deslocao das cabeas at ao cilindro desejado tempo de latncia: tempo de espera pelo sector (tmdio = tmeia rotao) tempo de transferncia: tempo que demora a transferir um sector entre o disco e a memria principal (trevoluo / n. de sectores por pista)

tempo mdio de acesso:


soma dos tempos mdios de posicionamento, latncia e transferncia

8/28/2003

Sistemas Operativos

19

Departamento de Engenharia Informtica

Optimizao dos Acessos a Disco


minimizao da frequncia de acesso:
cache de blocos em memria principal

minimizao do tempo de posicionamento:


em geral muito superior ao tempo de latncia soluo: ordenao dos pedidos segundo a ordem mais favorvel:
ordem de chegada: simples, justo, no optimiza as operaes mais demoradas (parar e mover cabeas) menor deslocamento: menor tempo de posicionamento, maior desempenho quando os pedidos esto relacionados, pode ser injusto para os cilindros nas extremidades pois estes so preteridos elevador: anlogo ao anterior mas aplica-se apenas aos pedidos situados no sentido do deslocamento das cabeas, visita menos os cilindros na periferia ( dos mais usados) elevador circular: cabeas lem apenas num sentido, quando no h mais pedidos ou chegam extremidade do disco as cabeas deslocam-se para o cilindro mais distante para o qual haja pedidos

minimizao do tempo de latncia:


minimizao do tempo de acesso a mltiplos sectores por pista - factor de entrelaamento (interleave) leitura de pistas inteiras para uma cache local ao controlador

8/28/2003

Sistemas Operativos

20

10

Departamento de Engenharia Informtica

Ordenao dos Pedidos


a) ordem de chegada
1 3 4 2

b) menor deslocamento

c) elevador

pedidos chegados depois do movimento se inciar

d) elevador circular

8/28/2003

Sistemas Operativos

21

Departamento de Engenharia Informtica

Entrelaamento - Interleave
A ordenao dos sectores com um factor de entrelaamento permite que se possa aceder a mltiplos sectores por pista. Consegue-se tratar um bloco e conseguir ler o sector seguinte porque a ordem lgica est desfasada da ordem fsica.
7 26 13 32 19 6 25 12 31 18 5 24 11 30 17 4 23 10 29 20 1 14 27 8 21 2 15 28 9 22 3 16

8/28/2003

Sistemas Operativos

22

11

Departamento de Engenharia Informtica

Organizao dos Blocos de Dados Lista Ligada


Ficheiro Directrio
EOF

Organizao Sequencial

Acessos a disco directamente proporcionais aos blocos acedidos

8/28/2003

Sistemas Operativos

23

Departamento de Engenharia Informtica

Organizao dos Blocos de Dados Mapa da Memria Secundria


FAT File Allocation Table
Ficheiro Directrio
0 1 2 3 4 5 6 7 8 9 10 3 7 1 EOF

O Mapa carregado em memria principal quando o disco acedido Vantagens


A seleco de um bloco pode ser feita em memria sem nenhum acesso a disco

Desvantagem
Tamanho da tabela directamente proporcional ao tamanho do disco
8/28/2003 Sistemas Operativos 24

12

Departamento de Engenharia Informtica

Sistema de Ficheiros CP/M

entrada de uma directoria em CP/M Entrada de 32 bytes Blocos de 1kB Durante o arranque:, calculado um bitmap dos blocos livres a partir de todas as entradas e carregado em memria Limite mximo de 16 blocos resolvido com vrios extents p/ ficheiro
8/28/2003 Sistemas Operativos 25

Departamento de Engenharia Informtica

Sistema de Ficheiros MS-DOS (1)

entrada de 32 bytes de directoria em MS-DOS Usa uma FAT: 12, 16 ou 32 (28 bits)
8/28/2003 Sistemas Operativos 26

13

Departamento de Engenharia Informtica

Sistema de Ficheiros MS-DOS (2)

Partio mxima para diferentes tamanhos de blocos As entradas a branco indicam combinaes impossveis (no permitidas)
8/28/2003 Sistemas Operativos 27

Departamento de Engenharia Informtica

Sistema de Ficheiros Windows 98 (1)


Bytes

entrada de uma directoria usada no Windows 98 (estendida do MS-DOS utiliza os 10 bytes antes reservados) Ficheiros com nomes grandes: entrada normal com nome do tipo: SISTEM~1.DOC, antecedida de entradas adicionais especiais que guardam o nome completo Problema: Como distingui-las e como manter compatibilidade com o DOS?
8/28/2003 Sistemas Operativos 28

14

Departamento de Engenharia Informtica

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 Checksum entrada permite saber a que ficheiro pertencem caso este seja apagado em modo MS-DOS
8/28/2003 Sistemas Operativos 29

Departamento de Engenharia Informtica

Sistema de Ficheiros Windows 98 (3)

Entrada principal e adicionais distinguidas atravs de atributos invlidos para o MS-DOS Cada entrada adicional armazena 13 caracteres do nome de ficheiro Entradas adicionais de cada ficheiro dispostas de forma invertida ltima entrada adicional tem nmero de sequncia adicionado a 64 (set ao bit 6) Ficheiro: The quick brown fox jumps over the lazy dog
8/28/2003 Sistemas Operativos 30

15

Departamento de Engenharia Informtica

Sistema de Ficheiros para CD-ROM

entrada de uma directoria em ISO 9660 blocos de 2048 bytes (Modo-2: dados) no h gesto de espao livre/ocupado ficheiros dispostos sequencialmente no CD-ROM
8/28/2003 Sistemas Operativos 31

Departamento de Engenharia Informtica

Organizao dos Blocos de Dados Blocos de ndices


Ficheiro Directrio

Os blocos de ndices so guardados em blocos de dados e s so acedidos quando necessrio Adapta-se a qualquer dimenso do disco A estrutura de ndices pode ser hierarquizada para optimizar o acesso directo em ficheiros de grande dimenso soluo do Unix
8/28/2003 Sistemas Operativos 32

16

Departamento de Engenharia Informtica

Acesso a Ficheiros
utilizao de trs etapas para aumentar o desempenho:
abertura do ficheiro dado o nome
pesquisado o directrio, copiado o descritor do ficheiro para memria (tabela de ficheiros abertos) e devolvido ao utilizador um identificador de ficheiro aberto verificar os direitos de acesso do processo ao ficheiro em causa

leitura ou escrita de informao dado o identificador de ficheiro aberto


este identificador permite chegar rapidamente ao seu descritor em memria

fecho do ficheiro
Tabela de ficheiros abertos Identificador de ficheiro aberto descritor Espao de end. do utilizador Espa end. Espao de end. do ncleo Espa end. n

Memria principal Mem Memria secundria Mem secund

8/28/2003

descritor ficheiro Sistemas Operativos

33

Departamento de Engenharia Informtica

Unix Sistema de Ficheiros


O sistema de ficheiros Unix uma das componentes iniciais do sistema e os principais conceitos mantm-se vlidos
i-nodes Directrios Ficheiros normais e especiais

A evoluo do sistema provocou vrias optimizaes


Virtual file system Organizao do disco

No Linux Ext2 muitas das evolues foram aplicadas

8/28/2003

Sistemas Operativos

34

17

Departamento de Engenharia Informtica

Evoluo do Berkeley Fast Filesystem


A organizao do Unix tradicional tendia a espalhar a informao por muitos blocos do disco
Os i-nodes de ficheiros do mesmo directrio ficavam em diferentes blocos Os blocos eram separados em blocos fsicos de 512 bytes em mltiplos cilindros

O superbloco era crtico para a fiabilidade do sistema.

8/28/2003

Sistemas Operativos

35

Departamento de Engenharia Informtica

Evoluo do Berkeley Fast Filesystem


Soluo
Organizar o disco em parties designadas Cylinder Group Cada cylinder group tem um superbloco, rea de inodes e blocos de dados Os blocos de dados so de 4 Kbytes ou 8 Kbytes Para evitar fragmentao so geridos fragmentos que podem ser de 1Kbyte. O sistema tenta alocar os blocos de dados contguos
8/28/2003 Sistemas Operativos 36

18

Departamento de Engenharia Informtica

Sistema de Ficheiros Linux


Viso Global. Estruturas de acesso. Sistema de Ficheiros nativo (ext2). Virtual File System. Caches.

8/28/2003

Sistemas Operativos

37

Departamento de Engenharia Informtica

Introduo
O Sistema de Ficheiros (SF) do Linux permite aceder a vrios tipos de sistemas de ficheiros (FAT, NTFS, EXT2, etc.).
Isto conseguido pelo VFS que descreveremos adiante.

O SF v os discos como vectores de blocos. O sistema de ficheiros s descreve a organizao dos ficheiros pelos blocos, a escrita e leitura dos blocos efectuada pelos gestores dos dispositivos. A identificao de um ficheiro aberto por um processo um nmero inteiro, denominado file descriptor mantido na tabela de ficheiros abertos do processo.
8/28/2003 Sistemas Operativos 38

19

Viso Global (s/ VFS)


Processo

Departamento de Engenharia Informtica O programa contm um ponteiro para uma estrutura do tipo FILE.

programa
stdio
FILE* iobuf flush open/read/write/close Tabela de descritores do processo

A FILE mantida pela biblioteca stdio e contm um buffer e o file descriptor do ficheiro aberto. O buffer serve para optimizar as escritas e leituras. O fd identifica o ficheiro na tabela de descritores. possvel utilizar o fd directamente. A tabela de descritores contm uma entrada por cada ficheiro ou dispositivo aberto. A entrada 0 representa o dispositivo de entrada, a entrada 1 o dispositivo de sada e a 2 o dispositivo de sada para erros. Cada uma das entradas aponta para uma tabela global no ncleo

Ncleo
Tabela de Ficheiros abertos

Tabela de i-nodes

A tabela de ficheiros abertos com os apontadores os apontadores de escrita e leitura nos ficheiros, a indicao do tipo de acesso (leitura/escrita) e o nmero do primeiro bloco de ndice do ficheiro A tabela de i-nodes uma cache para os blocos de ndices dos ficheiros acedidos. Cada bloco de ndices referencia os blocos do disco que compem um ficheiro. Sistemas Operativos 39

CACHE DISCO

8/28/2003

Departamento de Engenharia Informtica

Tabela de ficheiros abertos


A tabela de ficheiros abertos contm uma entrada para cada ficheiro aberto
podem existir mais do que uma entrada para o mesmo ficheiro. Basta para tal este ser aberto por processos diferentes.

No fork os ficheiros abertos pelo pai so partilhados pelo filho.


As entradas na tabela de ficheiros abertos tambm so partilhadas. Deste modo os cursores de leitura e escrita so partilhados o que permite direccionar a sada de pai e filho para o mesmo ficheiro sem que o ltimo apague a sada o primeiro.

8/28/2003

Sistemas Operativos

40

20

Departamento de Engenharia Informtica

Tabelas de Ficheiros
user file descriptor table file table inode table 2 | file A read write 1 | file B fd1 = open (fileA, O_RDONLY); fd2 = open (fileB, O_WRONLY); fd3 = open (fileA, O_RDWR);

r/w

uma por cada processo


8/28/2003

partilhadas por todos os processos


Sistemas Operativos 41

Departamento de Engenharia Informtica

i-nodes
Estruturas (geralmente) persistentes
Algumas tm que ser recriados sempre que se liga o sistema.

Contm a identificao dos blocos no disco que fazem parte de um ficheiro. Existe um e s um i-node por ficheiro. Existem muitos tipos de i-node
Ext2, VFS, BSD Todos tm estruturas diferentes mas tm o mesmo objectivo.

8/28/2003

Sistemas Operativos

44

21

Departamento de Engenharia Informtica

Sistema de ficheiros nativo do Linux


Denominado EXT2 (recentemente o EXT3). Descreve a organizao fsica de uma partio de um disco. Um disco pode ter mais do que uma partio e em cada uma pode ter um sistema de ficheiros diferente.
Bloco de boot Partio 0 Partio ... Partio n Viso simplificada de um disco

Sistema de Ficheiros Ext2


8/28/2003 Sistemas Operativos 45

Departamento de Engenharia Informtica

Uma partio Ext2

Metadata

Cada partio est dividida em grupos de blocos. Cada grupo contm um conjunto de blocos com informao de ficheiros e um conjunto de informao sobre a estrutura desses ficheiros (metadata). Os blocos de um ficheiro podem estar distribudos por vrios grupos, mas devem preferencialmente estar no mesmo grupo. O objectivo dos grupos manter a metadata perto dos dados que descreve, e assim reduzir os efeitos da corrupo de uma parte do disco.
8/28/2003 Sistemas Operativos 46

22

Departamento de Engenharia Informtica

Grupo de Blocos do Ext2

Super Block (igual em todos os grupos)


Contm a estrutura bsica da partio (n blocos, n i-nodes, etc.)

Inode Table
Contm uma tabela com os descritores dos ficheiros (i-nodes).

Inode Bitmap
Contm um vector de bits que indica quais os i-nodes livres.

Block Bitmap
Contm um vector de bits, que indica quais os blocos livres.

Group Descritores (igual em todos os grupos)


Contm um descritor por cada grupo de blocos na partio. Cada descritor contm, para o respectivo grupo, o n de blocos e i-nodes no grupo, bem como onde est a tabela de i-nodes e as tabelas com de blocos e i-nodes livres.
8/28/2003 Sistemas Operativos 47

Departamento de Engenharia Informtica

I-node do Ext2

Blocos de disco

12 entradas directas

TBD Tamanho bloco de dados TR Tamanho referncia Bmax N Blocos mximo de um ficheiro Fmax dimenso mxima de um ficheiro Bmax= 12 + TBD/TR + (TBD/TR)2 + (TBD/TR)3 com TBD 1024 e TR = 4, temos Bmax 16 Megablocos Operativos 8/28/2003 Sistemas Fmax 16 Gigabytes

48

23

Departamento de Engenharia Informtica

Directrio no Ext2
Um directrio um ficheiro como os restantes, que tem uma estrutura especfica Um ficheiro do tipo directrio contm um vector de entradas, em que cada entrada descreve um ficheiro desse directrio. Cada entrada contm o nome do ficheiro a sua dimenso e o n do i-node que o representa. Podem existir vrios ficheiros com o mesmo i-node. So os hard links. Os soft ou symbolic links so ficheiros com o seu i-node com uma estrutura prpria.
ln s ficheiroAlvo nomeDoLink
8/28/2003 Sistemas Operativos 49

Departamento de Engenharia Informtica

Ficheiro Directrio

Inode 0 12 24 40 54 79 23 256

Dimenso Dimenso Tipo Nome do registo do nome 12 1 2 . \0 \0 \0 12 2 2 . . \0 \0 16 6 1 c a r l o s \0 \0 16 7 1 m a r q u e s \0

8/28/2003

Sistemas Operativos

50

24

Departamento de Engenharia Informtica

Abertura de um ficheiro
/home/carlos.ribeiro/.cshrc 1. Procurar o i-node do directrio raiz / no superbloco do dispositivo principal. 2. Obter os blocos desse directrio e encontrar a entrada home 3. Ler o i-node do ficheiro tipo directrio home. 4. Ler os blocos de dados do home. 5. Encontrar a entrada carlos.ribeiro e ler o seu i-node. 6. Encontrar a entrada de .cshrc e ler o seu i-node e deste os blocos com a informao.
Sistemas Operativos 51

8/28/2003

Departamento de Engenharia Informtica

Virtual File System


Permite aceder a vrios sistemas de ficheiros diferentes em simultneo (EXT2, NTFS, FAT, NFS ...) Uma nica hierarquia de ficheiros composta pelos vrios sistemas de ficheiros. Facilita a construo de sistemas de ficheiros distribudos. Permite a construo de sistemas de ficheiros virtuais tais como o /proc
8/28/2003 Sistemas Operativos 52

25

Departamento de Engenharia Informtica

Um nico Sistema de Ficheiros


Processo

programa
stdio
FILE*

iobuf flush

open/read/write/close

Tabela de descritores do processo

Tabela de Ficheiros abertos

Cdigo de manipulao das estruturas

Tabela de i-nodes

CACHE

Leitura de blocos do disco para a cache. Leitura de i-nodes do disco para a tabela de i-nodes 8/28/2003 Leitura de directrios

Sistemas Operativos

53

Departamento de Engenharia Informtica

Mais do que um Sistema de ficheiros


Cada entrada: Processo - designada por VFS programa superblock. - contm informaes sobre FILE* iobuf stdio cada sistema de ficheiros flush - contm um vector de open/read/write/close ponteiros para funes que Tabela de descritores do processo sabem ler o sistema de ficheiros.

Tabela de Ficheiros abertos

Tabela de Cdigo de descritores manipulao de sistemas das estruturas de ficheiros

Tabela de i-nodes

CACHE

Cdigo de manipulao das estruturas


8/28/2003

Cdigo de manipulao das estruturas


Sistemas Operativos

Cada entrada da Tabela de ficheiros abertos e cada entrada da tabela de inodes contm um apontador para o vector de funes que sabe manipular o sistema de ficheiros onde este se encontra. 54

26

Departamento de Engenharia Informtica

Sistemas de Ficheiros virtuais


Processo

programa
stdio
FILE*

iobuf flush

open/read/write/close

Tabela de descritores do processo

Alguns sistemas de ficheiros no tm suporte fsico. A informao mantida Tabela de Cdigo de noutros locais e.g. descritores manipulao Ncleo, rede sistemas de das estruturas
de ficheiros

Tabela de Ficheiros abertos

Tabela de i-nodes

CACHE

Cdigo de manipulao das estruturas


8/28/2003

Cdigo de manipulao das estruturas


Sistemas Operativos

Ncleo Rede
55

Departamento de Engenharia Informtica

Organizao global
mount t ntfs o rw /dev/hd1 /ficheirosWindows
Inode do directrio /ficheirosWindows marcado como mountpoint

Inode raiz do NTFS EXT2

NTFS FAT

MountPoints
8/28/2003 Sistemas Operativos 56

27

Departamento de Engenharia Informtica

Caches
Existem trs tipos de caches no sistema de ficheiros do linux:
Cache de blocos de disco. Cache de i-nodes. Cache de directrios.

8/28/2003

Sistemas Operativos

57

Departamento de Engenharia Informtica

Cache de Blocos
o ncleo poderia ler e escrever directamente para o disco em todos os acesso a ficheiros:
implicaria elevados tempos de resposta do sistema devido aos tempos de acesso ao disco

para melhorar o desempenho:


minimizar os acessos ao disco atravs de uma cache que contm os blocos que foram recentemente acedidos as rotinas de leitura e escrita analisam os blocos na cache antes de acederem ao disco

dois nveis de cache:


biblioteca de I/O que adapta as operaes de leitura/escrita ao tamanho dos blocos em disco zona de memria entre os processos e os gestores dos discos
8/28/2003 Sistemas Operativos 58

28

Departamento de Engenharia Informtica

Cache de Blocos (2)


cache para escrita/leitura em disco:
permitir manter em memria blocos de dados que possam ser reutilizados pelos processos constituda por blocos de memria em nmero que um parmetro de gerao dos sistema os blocos da cache tm dimenso igual dos blocos em disco os blocos na cache contm informao resultante de leituras/escrita anteriores do/para disco

cada bloco da cache representado por:


identificador do bloco estado apontador para os dados apontadores que permitem a sua incluso em listas duplamente ligadas

8/28/2003

Sistemas Operativos

59

Departamento de Engenharia Informtica

ESTRUTURA DOS BUFFERS


device num block num status
prt to previous buf on hash queue prt to data area

prt to next buf on hash queue

prt to previous buf on free list

prt to next buf on free list

device identifica o sistema de ficheiros bloco identificador do bloco no sistema de ficheiros


8/28/2003 Sistemas Operativos 60

29

Departamento de Engenharia Informtica

Cache de blocos
Hashed pelo device e pelo n do bloco Listas com os blocos utilizados por ordem de utilizao e pelo estado do bloco. Listas de blocos livres organizadas por dimenso do bloco. Note-se que a cache para ser utilizada por vrios discos com diferentes dimenses de bloco

Listas LRU
Tabela de Hash
Dirty Locked Clean

Listas de blocos livres


0.5K 1K 2K 4K 8K

8/28/2003

Estrutura com o endereo e dimenso do buffer com o bloco Sistemasde disco Operativos

61

Departamento de Engenharia Informtica

Cache (cont.)
para cada radical da funo de hash, os blocos so colocados numa lista duplamente ligada lista de blocos livres gerida em LRU. um bloco no est livre quando est a ser usado para uma operao de leitura/escrita do/para o disco ou para o espao de endereamento do processo depois da operao antes referida, o bloco est livre quando o SO quer ler/escrever um bloco procura primeira na cache (funo de hash) se o bloco procurado no est em memria, obtm o primeiro da lista de blocos livres mdulo 0 mdulo 1 mdulo 2 mdulo 3
16 4 28

37

17

13

22

38

19

39

15

lista de blocos livres

8/28/2003

Sistemas Operativos

62

30

Departamento de Engenharia Informtica

Cache de Blocos
Na escrita no h acesso ao disco:
o bloco fica marcado como delayed write o bloco fica tambm na lista de blocos livres antes do bloco ser reutilizado, os dados so escritos para disco periodicamente os blocos marcados como delayed write so escritos em disco mdulo 0 mdulo 1 mdulo 2 mdulo 3
19 39 16 4 28

37

17

13

22

38

15

Vantagem:
Apenas se efectua a escrita da ultima actualizao do bloco. Se o bloco for imediatamente lido no h acesso ao disco lista de blocos livres

Desvantagem;
A informao permanece voltil durante algum tempo e fica sujeita a perder-se se existir uma falha da mquina.
8/28/2003 Sistemas Operativos 63

Departamento de Engenharia Informtica

Cache de i-nodes
Tabela de inodes Os i-nodes candidatos substituio so os que tm o contador de utilizaes a zero.

Tabela de Hash

Hashed pelo nmero do dispositivo e pelo i-node 8/28/2003

I-nodes. Contm um contador de utilizaes. Cada i-node pode estar a ser usado por mais do que um descritor de ficheiro.
Sistemas Operativos 64

31

Departamento de Engenharia Informtica

Cache de directrios
Hashed pelo device e pelo nome do directrio LRU Least Recent Used com dois nveis. 1.Cada nova entrada inserida no final da lista de nvel um. 2.Quando 1 entrada acedida segunda vez colocada no final da lista de nvel dois. 3.De cada vez que se coloca um elemento no final de cada uma das listas e no existem mais blocos para reservar removido o elemento que est no topo dessa lista.

Tabela de Hash

Nvel I

Nvel II

Cada entrada contm um componente do pathname, o device onde esse ficheiro est e o inode.

8/28/2003

Sistemas Operativos

65

Departamento de Engenharia Informtica

ACESSO A FICHEIROS MAPEADOS EM MEMRIA

MapearFicheiro

(Fd, posio , endereo, dimenso)

DesmapearFicheiro (endereo, dimenso)

A primitiva MapearFicheiro permite aceder ao contedo de um ficheiro da mesma forma que se acede a uma qualquer outra estrutura em memria. O contedo do ficheiro indicado por Fd :
mapeado a partir da posio indicada pelo parmetro posio, no endereo de memria a indicado pelo parmetro endereo, numa extenso indicada pelo parmetro dimenso.

A partir deste momento possvel aceder directamente ao ficheiro acedendo directamente s posies de memria indicadas.
8/28/2003 Sistemas Operativos 66

32

Departamento de Engenharia Informtica

Evoluo da Cache em Linux Suporte a ficheiros mapeados em memria


Processos Processos

mmap

read/write

mmap

read/write

Cache de pginas

Cache de pginas

Cache de blocos

Cache de blocos

Disco

Disco

Verso 2.2
8/28/2003 Sistemas Operativos

Verso 2.4
67

Departamento de Engenharia Informtica

Cache de Pginas
Inode Regio de memria Tabela de Hash de pginas Dirty Locked Clean Inode Regio de memria Dirty Locked Clean

Descritor de pgina Descritor de bloco

8/28/2003

Sistemas Operativos

68

33

Departamento de Engenharia Informtica

Cache e consistncia do sistema


A poltica de cache agressiva praticada pelo Linux particularmente til para o desempenho global do sistema, mas prejudicial para a garantia de persistncia dos dados. Por exemplo, para efectuar a escrita de dados no final de um ficheiro necessrio:
localizar um bloco livre, actualizar o bitmap de blocos livres situado no grupo de blocos do sistema de ficheiros guardar o nmero do bloco no inode do ficheiro a que o bloco vai pertencer, escrever o contedo do bloco actualizar um conjunto de elementos do inode.

Se durante uma destas operaes existir uma falha do sistema, o ficheiro poder ficar corrompido.

8/28/2003

Sistemas Operativos

69

Departamento de Engenharia Informtica

Cache e consistncia do sistema


O problema resolvido marcando o sistema de ficheiros como sujo no incio do sistema e s o considerar limpo se for correctamente desassociado, por uma operao explcita ou por uma operao de shutdown. Se no arranque se verificar que o sistema de ficheiros est sujo executada uma operao de verificao (fsck) de todos os inodes, blocos ocupados e blocos livres existentes nessa partio. Esta operao sempre foi uma operao demorada, mas com a dimenso dos discos actuais tornou-se intolervel.
8/28/2003 Sistemas Operativos 70

34

Departamento de Engenharia Informtica

Journaling
O objectivo da camada do ncleo Journal Block Device (JBD) impedir que o sistema de ficheiros fique num estado inconsistente.
A JBD actualmente utilizada apenas pelo sistema de ficheiros EXT3 (terceira verso do sistema de ficheiros extend).

O JBD evita que uma operao de escrita seja parcialmente realizada, sendo efectuada de forma atmica. O JBD escreve os blocos a actualizar no journal e s depois de se ter assegurado que a informao j existe de forma persistente, que a actualiza nos blocos do sistema de ficheiros. Se acontecer uma falha nesse perodo o sistema operativo aquando do reincio pode recuperar e refazer a escrita pois ela estava registada no journal.
8/28/2003 Sistemas Operativos 71

Departamento de Engenharia Informtica

Journaling
A dupla escrita, no journal e no sistema de ficheiros, introduz uma penalizao no desempenho do sistema pelo que muitos sistemas de journal s garantem a consistncia dos metadados do sistema de ficheiros. O JBD permite configurar o tipo de journaling que se pretende efectuar, na associao do sistema de ficheiros a um directrio (mount). Para alm das duas opes j referidas o JBD fornece ainda uma terceira opo (por omisso) em que apenas os metadados so enviados para o journal, mas os blocos de dados relativos a um bloco de metadados so escritos primeiro que os metadados

8/28/2003

Sistemas Operativos

72

35

Você também pode gostar