Professional Documents
Culture Documents
Sistemas de Arquivos
Sistema de Arquivos
Arquivos
Diretrios
Mapa de Bits (Vetor de Bits) Lista Ligada Simples Lista Ligada com Agrupamento Tabela de Blocos Livres Agrupados Alocao Contgua Alocao Encadeada (Lista Ligada) Lista Ligada usando ndice Alocao Indexada (N-I)
Implementaes de Diretrios
Eduardo Nicola F. Zagari
Sistemas Operacionais
Sistemas de Arquivos
Para a maioria dos usurios, o Sistema de
Arquivos o aspecto mais visvel do SO a parte do SO responsvel pelo armazenamento e acesso de dados e programas do SO e dos usurios Consiste de:
conjunto
Sistemas Operacionais
Arquivos
Computadores armazenam informao em
fsico
Sistemas Operacionais
Arquivos
Arquivo um conjunto nomeado de informaes
linhas ou registros, cujo significado definido pelo criador do arquivo ou pelo usurio.
5
Sistemas Operacionais
Atributos
Tipicamente: Nome: informao para consumo humano Tipo: necessrio quando o SO diferencia tipos Localizao: ponteiro para dispositivo fsico e localizao dentro dele Tamanho: quantidade de bytes, palavras ou blocos do arquivo (e, possivelmente, o tamanho mximo permitido) Proteo: informao de controle de acesso ao arquivo (leitura, escrita, execuo) Dono: dono do arquivo Data, hora e usurio: usado para (1) criao, (2) ltima modificao e (3) ltimo uso informao til para proteo, segurana e monitoramento de uso Senha: utilizada no acesso
Eduardo Nicola F. Zagari
6
Sistemas Operacionais
Operaes
Unix system calls :
fd:
descritor de arquivo = referncia para tabela de arquivos fd = creat(nome, modo) fd = open(arq, como) s = close(fd) n = read(fd, buffer, nbytes) n = write(fd, buffer, nbytes) pos = lseek(fd, offset, inicio/atual/fim) s = stat(nome, &buf) s = chmod(nome, modo)
7
Sistemas Operacionais
Tipos
Um arquivo binrio executvel no Unix
16 bits Nmero mgico Tamanho do cdigo Tamanho dos dados Tamanho do BSS Tamanho da tabela de smbolos Ponto de entrada Flags
. . .
Cdigo Dados Bits de relocao Tabela de smbolos
Cabealho
. . .
8
Sistemas Operacionais
Tipos
Um arquivo binrio no executvel (biblioteca de mdulos) no Unix
Cabealho Mdulo objeto Cabealho Mdulo objeto Cabealho Mdulo objeto
9
Sistemas Operacionais
Diretrios
O sistema de arquivo pode ser grande para se
cada disco contm pelo menos uma partio usadas para fornecer reas separadas em disco cada uma tratada como um dispositivo de armazenamento diferente alguns sistemas permitem que uma partio agrupe vrios discos em uma nica estrutura lgica
10
Sistemas Operacionais
Diretrios
Cada
diretrio
Partio A
diretrio
Disco 2 Disco 1 Partio C
Partio B
arquivos
11
Disco 3
Sistemas Operacionais
armazenamento de arquivos:
alocao alocao
Tamanho do Bloco: Candidatos a serem a unidade de alocao: o tamanho do setor, da trilha, do cilindro e da pgina (se SO paginado) Unid. de alocao grande: provvel desperdcio de memria Unid. de alocao pequena: baixa taxa de transferncia
12
Sistemas Operacionais
Livre = 1 ocupado = 0
Disco: 1,3 Gbytes Consome muito espao de memria: Bloco: 512 bytes Bitmap: 333k Exemplo:
0 4 8 12 16
1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
14
Sistemas Operacionais
armazenados no primeiro bloco. Os primeiros n-1 endereos esto disponveis e o ltimo endereo aponta para outro bloco com endereos livres
230 162 612 342 160 664 216 320 482 86 234 897 422 140
Ex.: Blocos de 1K End. do bloco: 16 bits cada bloco guarda 511 blocos livres Disco de 20M 20K blocos precisa, no mximo, de uma lista ligada de 40 blocos
Sistemas Operacionais
15
liberados simultaneamente Encontrar um nmero grande de blocos livres mais rpido Tabela menor Bloco 4 5 18 1 23 7 35 30 253 5
16
Contador
Sistemas Operacionais
17
Sistemas Operacionais
Alocao Contgua
Cada arquivo deve ocupar um conjunto de blocos
de implementar guardar apenas o end. do 1o bloco Acessos seqencial e direto facilitados Excelente performance leitura em uma nica operao
seqncia de blocos livres igual ou maior que o arquivo A alocao de blocos em uma rea contgua pode ser feita atravs de algoritmos de estratgia de alocao como o First-Fit, Best-Fit e Worst-Fit.
18
Sistemas Operacionais
Alocao Contgua
Desvantagens:
Necessrio
conhecer o tamanho dos arquivos no instante de sua criao (se reservar pouco necessidade de cpia, se reservar muito desperdcio) Fragmentao do disco compactao cara.
Diretrio
Incio 0 14 19 6
0 4 8 12 16
1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
Tamanho 2 3 1 2
19
Sistemas Operacionais
Dados
4 bytes prximo bloco
0 47 8 12 x 16 1 5 9 13 17 2 10 63 1012 14 x 18 3 11 72 1114 15 19
Diretrio
Incio 4 6
Tamanho 5 4
Para criar um arquivo: Incio (1o bloco) = -1 Tamanho = 0 Para escrever: Aloca-se um bloco etc
Sistemas Operacionais
20
21
Sistemas Operacionais
ponteiros que encadeiam os blocos em tabela ou ndice na memria A tabela fica no incio de cada partio e usada como uma lista ligada 0 FAT (File Allocation Table) 0 1 0
Entrada no diretrio
prog.c a.out nome ... ... 4 6 bloco inicial
2 3 4 5 6 7 8 9 10 11 12 13 14
10 11 7 0 3 2 0 0 12 14 eof 0 eof
FAT
22
Sistemas Operacionais
Vantagens: Bloco fica livre para armazenamento apenas da informao Apesar de randmico, o acesso baseado na cadeia que est inteiramente na memria principal (basta realizar a busca na FAT) Entrada no diretrio precisa conter apenas o nmero do bloco inicial Desvantagem: Tabela deve permanecer na memria durante todo o tempo
500 MBytes Disco de 500.000 blocos Blocos de 1K Tabela com 500.000 entradas vezes 4 bytes = 2 MBytes
23
Sistemas Operacionais
ndices (n-i), que lista seus atributos e endereos em disco (um vetor de endereos) O diretrio contm o endereo da tabela de ndices Permite acesso direto ao n-simo bloco
24
Sistemas Operacionais
15
0 4 8 12 16 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19
4 7 2 10 12
Arquivo prog.c
Diretrio
Incio 15
25
Sistemas Operacionais
primeiros endereos so armazenados no prprio ni arquivos pequenos Um dos endereos apontados pelo n-i o endereo do bloco indireto simples, que aponta para endereos do arquivo no disco Outro apontador do n-i para o bloco indireto duplo, que contm uma lista de blocos de endereo simples Existe ainda o bloco indireto triplo
Eduardo Nicola F. Zagari
26
Sistemas Operacionais
Implementao de Diretrios
Para abrir um arquivo o SO usa o nome do caminho para
localizar sua entrada no diretrio Dependendo do sistema, tal entrada fornece informaes do tipo:
endereo
do bloco (alocao contgua) nmero do primeiro bloco (alocao com listas ligadas) nmero do n-i relativo ao arquivo (alocao indexada)
dos arquivos devem estar armazenados: diretamente na entrada do diretrio ou nos ns-i, no caso dos sistemas que usam alocao indexada
27
Sistemas Operacionais
Diretrios no MS-DOS
Setor primrio de boot Partio 1 Partio 2 Partio 3 Part. 4 Tab. de alocao de arquivos Diretrio-raiz
FAT
Cpia opcional da FAT Blocos de dados
Setor de boot: comea com um desvio incondicional para cdigo de boot lista de parmetros: no de bytes por setor, no de setor por bloco, no de arquivo na tabela de alocao, tamanho do diretrio raiz, ... Tabela de partio (mximo 4): uma deve ser ativa
Eduardo Nicola F. Zagari
28
Sistemas Operacionais
Diretrios no MS-DOS
8 3 1 10 2 2 2 4
Tamanho
Hora
Nmero do 1o bloco
- 1 quando arquivo modificado D - 1 quando for diretrio V - 1 quando for nome do volume S - 1 arquivo do sistema H - 1 arquivo escondido R - 1 arquivo no pode ser escrito
Sistemas Operacionais
Diretrios no UNIX
Ns-I Super -Bloco Blocos de dados
contm o cdigo de boot Super-bloco: no de ns-i, no de blocos e incio da lista de blocos livres (crtico para o sistema) Ns-i: atrib. do arquivo mais a localizao dos blocos Blocos de dados: armazenam arquivos e diretrios
30
Sistemas Operacionais
Bloco de boot
Diretrios no UNIX
No do n-i
2 14 ou 255 (dependendo da verso)
Nome do arquivo
Diretrio raiz
1 . 1 .. 4 bin 7 dev 14 Arq.txt 9 etc 6 usr 8 tmp Procura usr Obtm n-i 6
N-i 30
Modo Tamanho Tempos
Bl. 406: /usr/enfz 30 . 6 .. 64 Prog1.c 92 books 60 mbox 81 minix 17 src Procura /usr/enfz/mbox Obtm n-i 60
Sistemas Operacionais
31
Diretrios no UNIX
N-i
Modo Contador de ligaes Uid Gid Tamanho do arquivo Tempos End dos primeiros 10 blocos de disco Indireto nico Indireto duplo Indireto triplo