You are on page 1of 32

Sistemas Operacionais

Sistemas de Arquivos

Sistema de Arquivos
Arquivos

Diretrios

Atributos Operaes Tipos

Gerncia de Espao Livre

Alocao de Espao em Disco


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

de arquivos estrutura de diretrios partio

Eduardo Nicola F. Zagari

Sistemas Operacionais

Arquivos
Computadores armazenam informao em

diferentes tipos de dispositivos fsicos:


fitas

SO abstrai as propriedades fsicas do

magnticas discos magnticos discos ticos, ...

dispositivo definindo uma unidade de armazenamento lgica: O arquivo

O SO associa cada arquivo a um dispositivo

fsico

Eduardo Nicola F. Zagari

Sistemas Operacionais

Arquivos
Arquivo um conjunto nomeado de informaes

que so gravadas em memria secundria


Programas:

cdigo-fonte ou objeto Dados: numricos , alfabticos, alfanumricos ou binrios


Formato: Livre: arquivos-texto Rigidamente Formatado Geralmente uma seqncia de bits, bytes,

linhas ou registros, cujo significado definido pelo criador do arquivo ou pelo usurio.
5 Sistemas Operacionais

Eduardo Nicola F. Zagari

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

Eduardo Nicola F. Zagari

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

Eduardo Nicola F. Zagari

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

Nome do mdulo Data Proprietrio Proteo Tamanho

Eduardo Nicola F. Zagari

Diretrios
O sistema de arquivo pode ser grande para se

gerenciar os dados, torna-se necessrios organiz-los A organizao feita em duas partes:


O

sistema dividido em parties (volumes):

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

Eduardo Nicola F. Zagari

10

Sistemas Operacionais

Diretrios
Cada

partio contm informao sobre os arquivos que ela armazena:


mantida em diretrio de dispositivo ou tabela de contedo do volume (mais conhecido como diretrio) o diretrio registra informaes como nome, localizao, tamanho, tipo, etc...

diretrio
Partio A

diretrio
Disco 2 Disco 1 Partio C

arquivos diretrio arquivos

Partio B

arquivos
11

Disco 3

Eduardo Nicola F. Zagari

Sistemas Operacionais

Gerncia de Espao Livre


So possveis duas estratgias genricas para

armazenamento de arquivos:
alocao alocao

de n bytes consecutivos no disco de blocos no necessariamente contguos

apresenta um problema bvio quando o arquivo cresce...

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

Para poder criar arquivos, o SO precisa saber se h blocos

livres e quais so lista de espao livre

Eduardo Nicola F. Zagari

12

Sistemas Operacionais

Mapa de Bits (Vetor de Bits)


Cada entrada da tabela aponta para um bloco Define-se: Simples

Livre = 1 ocupado = 0

Disco: 1,3 Gbytes Consome muito espao de memria: Bloco: 512 bytes Bitmap: 333k Exemplo:

2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26 e 27 livres


Eduardo Nicola F. Zagari

00111100 11111100 01100000 01110000


13

Usado quando se tem espao na memria principal para todo o vetor


Sistemas Operacionais

Lista Ligada Simples


Cada bloco livre aponta para o prximo livre Acesso seqencial Ineficiente

Primeiro bloco livre

0 4 8 12 16

1 5 9 13 17

2 6 10 14 18

3 7 11 15 19

Eduardo Nicola F. Zagari

14

Sistemas Operacionais

Lista Ligada com Agrupamento


Os endereos dos n primeiros blocos livres so

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

42 136 210 97 41 63 21 147 48

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

Eduardo Nicola F. Zagari

15

Tabela de Blocos Livres (Contagem)


Geralmente blocos contguos so alocados ou

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

Eduardo Nicola F. Zagari

Sistemas Operacionais

Mtodos de Alocao de Espao em Disco


A natureza do acesso direto aos discos permite

flexibilidade na implementao de arquivos A questo principal do projeto de um Sistema de Arquivos :


Como alocar espao aos arquivos de modo que o uso do espao em disco seja eficaz e que o acesso aos dados seja rpido?

Eduardo Nicola F. Zagari

17

Sistemas Operacionais

Alocao Contgua
Cada arquivo deve ocupar um conjunto de blocos

contguo no disco Vantagens:


Simples

de implementar guardar apenas o end. do 1o bloco Acessos seqencial e direto facilitados Excelente performance leitura em uma nica operao

Dificuldade: achar espao para novo arquivo

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.

Eduardo Nicola F. Zagari

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

Arquivo prog.c a.out leiame arq.txt

Tamanho 2 3 1 2

Eduardo Nicola F. Zagari

19

Sistemas Operacionais

Alocao com Lista Ligada


Espao alocado mantido atravs de uma lista

ligada de blocos uma parte do bloco guarda a referncia para o prximo


512 bytes

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

Arquivo prog.c a.out

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

Eduardo Nicola F. Zagari

20

Alocao com Lista Ligada


Vantagens: No existe fragmentao Entrada do diretrio tb armazena apenas o end. do 1o bloco Desvantagens: Acesso randmico (mais lento) O acesso direto feito seqencialmente Tamanho til do bloco ( potncia de 2) Espao perdido com os ponteiros para prximo bloco soluo: clusters Confiabilidade: erro em qualquer um dos blocos do arquivo torna impossvel recuperao do restante soluo parcial: lista duplamente ligada

Eduardo Nicola F. Zagari

21

Sistemas Operacionais

Alocao com Lista Ligada usando um ndice


Similar ao mtodo anterior, colocando-se os

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

Eduardo Nicola F. Zagari

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

Alocao com Lista Ligada usando um ndice

Eduardo Nicola F. Zagari

Sistemas Operacionais

Alocao Indexada (N-I)


Assim como lista ligada, resolve problemas relativos : tamanho do arquivo alocao contgua fragmentao externa suporte a acesso direto alocao encadeada ... alm do problema da grande tabela em memria... Consiste em associar a cada arquivo uma pequena tabela de

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

s ler a n-sima entrada do n-i.

Eduardo Nicola F. Zagari

24

Sistemas Operacionais

Alocao Indexada (N-I)

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

Eduardo Nicola F. Zagari

25

Sistemas Operacionais

Alocao Indexada (N-I)


Desvantagem: Se o arquivo for pequeno, gasta-se

um bloco por ndice Soluo: ndices encadeados (vrios nveis)


Os

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)

Outro aspecto a ser considerado onde os atributos

dos arquivos devem estar armazenados: diretamente na entrada do diretrio ou nos ns-i, no caso dos sistemas que usam alocao indexada

Eduardo Nicola F. Zagari

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

Setor secundrio de boot

Diretrios no MS-DOS
8 3 1 10 2 2 2 4
Tamanho

Nome do arquivo Extenso Atributos Reservado Data

Hora

Nmero do 1o bloco

Nome e extenso: o ponto no armazenado Atributos: contm os seguintes bits


A

No se pode ter link no se pode ter 2 entradas

- 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

com mesmo nmero inicial de bloco


29

Eduardo Nicola F. Zagari

Sistemas Operacionais

Diretrios no UNIX
Ns-I Super -Bloco Blocos de dados

Bloco de boot: no usado pelo UNIX e muitas vezes

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

Eduardo Nicola F. Zagari

Diretrios no UNIX
No do n-i
2 14 ou 255 (dependendo da verso)

Nome do arquivo

Os atributos no esto armazenados na entrada

Diretrio raiz
1 . 1 .. 4 bin 7 dev 14 Arq.txt 9 etc 6 usr 8 tmp Procura usr Obtm n-i 6

do diretrio, mas no n-i Ex.: /usr/enfz/mbox


N-i 6
Modo Tamanho Tempos

Bloco 132: /usr


6 . 1 .. 19 ast 30 enfz 51 lff 26 lgsj 45 rcmp Procura /usr/enfz Obtm n-i 30

N-i 30
Modo Tamanho Tempos

132 usr est no bloco 132

406 /usr/enfz est no bloco 406

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

Eduardo Nicola F. Zagari

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

Bloco Indireto Triplo Bloco Indireto Duplo Bloco Indireto nico


Eduardo Nicola F. Zagari 32 Sistemas Operacionais

You might also like