Você está na página 1de 28

DETI

Sistemas de Operao
Antnio Rui Borges

Formatao do sistema de ficheiros SOFS13

Organizao interna do sistema de ficheiros - 1

super"loco

ta"ela de mapeamento cluster de dados # n-i

DETI
ta"ela $"itmap% de clusters de dados li&res

!ona de dados

ta"ela de ns-i

1-

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao interna do sistema de ficheiros - 2

( superbloco ) cont*m informa+o glo"al so"re o sistema de fic,eiros, nomeadamente so"re o taman,o e locali!a+o das regies restantes ( tabela de ns-i ) constitui um array cu-os elementos s+o ns-i .ue descre&em os atri"utos dos fic,eiros e/istentes0 os ns-i livres formam adicionalmente uma lista "iligada .ue est organi!ada como um 1I12 linear ( tabela de mapeamento cluster de dados n-i ) constitui um array com tantos elementos .uantos os clusters de dados e/istentes na zona de dados, a sua finalidade * especificar se o cluster em .uest+o est ou este&e anteriormente associado a um fic,eiro, caso em .ue o elemento cont*m o n3mero do n-i correspondente ( tabela $"itmap% de clusters de dados livres ) constitui um array de "its indicati&o de parte dos clusters da zona de dados .ue presentemente n+o est+o associados a .ual.uer fic,eiro0 cada "it do array referencia um cluster espec4fico, a.uele cu-o n3mero lgico corresponde ao respecti&o 4ndice ( zona de dados ) cont*m os clusters de dados5

DETI

1-'

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao interna do sistema de ficheiros - 3


A ocupa+o completa do array de "locos 7.ue forma o dispositi&o,8 impe .ue a e.ua+o a"ai/o ten,a solues inteiras

!"l# = 1 +

em .ue !"l# representa o n3mero total de "locos do dispositi&o, t$lt o n3mero total de clusters da !ona de dados, "%" o n3mero de refer9ncias a clusters $"itmap% .ue podem ser arma!enadas num "loco, &%" o n3mero de refer9ncias a clusters .ue podem ser arma!enadas num "loco, "%$ o n3mero de "locos cont4guos .ue formam um cluster, "l#'n! o n3mero de "locos .ue a ta"ela de ns-i ocupa e a fun+o o menor inteiro maior ou igual ao argumento5
1-6

DETI

!$lt !$lt + + "l#'n! + !$lt "%$ "%" &%"

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao do superbloco - 1
A estrutura de dados .ue define o superbloco pode considerar-se di&idida em seis grandes regies de parametri!a+o
( cabealho ) * formado pelos campos magic, version, name, ntotal e mstat .ue cont9m o cdigo de identifica+o e a &ers+o do sistema de fic,eiros, o nome e o taman,o $em n3mero de "locos% do dispositi&o de memria de massa onde ele est instalado e uma fla( de sinali!a+o .ue indica se o dispositi&o foi ade.uadamente desmontado $retirado de opera+o% a 3ltima &e! .ue foi montado $posto em opera+o% ( caracterizao da tabela de ns-i ) descre&e a locali!a+o itable_start, e o taman,o $em n3mero de "locos%, itable_size, e $em n3mero de elementos%, itotal, da ta"ela de ns-i .ue se supe estar organi!ada como um array0 esta ta"ela inclui ainda a lista ligada de ns-i li&res .ue interliga parte dos seus elementos, os .ue est+o livres, numa lista "iligada; ifree indica o n3mero de ns-i presentemente livres e ihead e itail, respecti&amente, os 4ndices dos elementos correspondentes aos pontos de retirada e de inser+o de &alores

DETI

1-:

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao do superbloco - 2
( caracterizao da tabela de mapeamento cluster de dados n-i ) descre&e a locali!a+o, ciutable_start, e o taman,o $em n3mero de "locos%, ciutable_size, da ta"ela de mapeamento .ue se supe estar organi!ada como um array ( caracterizao da zona de dados ) descre&e a locali!a+o dzone_start, e o taman,o $em n3mero de clusters%, dzone_size, da !ona de dados, indica ainda .uantos clusters est+o presentemente li&res, dzone_free ( caracterizao do acesso a clusters de dados livres ) fctable_start e fctable_size descre&em, respecti&amente, a locali!a+o e o taman,o $em n3mero de "locos% da ta"ela $"itmap% de clusters de dados li&res, e fctable_pos o 4ndice da ta"ela a partir do .ual se de&e iniciar a pes.uisa de no&os clusters li&res0 por outro lado, dzone_retriev e dzone_insert especificam duas regies de arma!enamento temporrio, caches, de refer9ncias a clusters li&res para e&itar o recurso directo = ta"ela ( zona reservada ) espao e/cedente para garantir .ue o taman,o em ">tes de SOSuperBlock * e/actamente igual a BLOCK_SIZ 5
1-<

DETI

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao das caches de referncias a clusters livres

cache cache id!

cache

DETI
cache id! cache de insero

elemento com referncia vlida elemento sem referncia vlida

cache de retirada

1-?

Departamento de Electrnica, Telecomunicaes e Informtica

"anipulao do superbloco

dispositivo

2 superbloco est locali!ado no "loco A do array .ue representa o dispositi&o5 As rotinas .ue efectuam a sua manipula+o est+o definidas em basicoper
( transfer*ncia do conte+do do superbloco do dispositivo para a ,rea de armazenamento interno; soLoadSuperBlock ( obteno de um ponteiro para a ,rea de armazenamento interno;
so!etSuperBlock

DETI

rea de armazenamento interno

( transfer*ncia do conte+do do superbloco da ,rea de armazenamento interno para o dispositivo; soStoreSuperBlock5

1-@

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - 1


Cm n-i, ou n identificador, * a estrutura de dados onde est+o alo-ados os restantes atri"utos de um fic,eiro5 2s ns-i est+o organi!ados numa ta"ela interna de taman,o fi/o5 D importante notar .ue, como cada fic,eiro do sistema de fic,eiros tem os seus atri"utos arma!enados num n-i, a.uele locali!ado na ta"ela com entrada correspondente ao seu identificador interno, o n3mero m/imo de fic,eiros distintos residentes no sistema de fic,eiros * tam"*m fi/o5 2 campo mode ser&e simultaneamente para especificar o estado do n-i, ocupado ou livre, o tipo do fic,eiro descrito, atalho, directrio ou ficheiro re(ular, e o controlo de acesso ao fic,eiro, indicando, ErE, .uem pode ler o seu conte3do $listar, se for um directrio%, E"E, alterar o seu conte3do $criar ou apagar fic,eiros, se for um directrio%, ou, E#E, reali!ar so"re ele operaes de e/ecu+o $aceder aos fic,eiros referenciados, se for um directrio%5 2s utili!adores est+o di&ididos em tr9s classes; o utili!ador a .ue pertence o fic,eiro, o-ner, os utili!adores inclu4dos no mesmo grupo do o-ner, (roup, e os utili!adores restantes, other5

DETI

1-B

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - 2


Torna-se muitas &e!es con&eniente manter refer9ncias para um dado fic,eiro em diferentes regies da r&ore de directrios5 Cma forma de se fa!er isso * criando um atalho .ue descre&a a locali!a+o do fic,eiro em causa atra&*s um caminho absoluto $inicia-se na rai! do sistema de fic,eiros% ou relativo $inicia-se no directrio onde * inclu4da a descri+o%5 Esta solu+o tem, no entanto, um pro"lema; .uando o fic,eiro referenciado * apagado, ou * mo&ido de um directrio para outro, ou o seu nome * modificado, os atal,os associados passam a referenciar coisa nen,uma e n+o * fcil, nem eficiente, esta"elecer um procedimento .ue resol&a a .uest+o5 Cm meio alternati&o mais seguro e efica! consiste no esta"elecimento da.uilo .ue se designa de li(ao primitiva $ou hard lin#%; a entrada de directrio .ue * criada, em &e! de referenciar o identificador interno de um fic,eiro de te/to, o atalho, .ue cont*m a descri+o da locali!a+o do fic,eiro em causa, passa a referenciar o identificador interno do prprio fic,eiro5 Festas condies, a altera+o do nome ou a deslocali!a+o de uma refer9ncia passam a ser pro"lemas puramente locais da liga+o primiti&a en&ol&ida na opera+o e n+o afectam as restantes ligaes e&entualmente e/istentes5

DETI

1 - 1A

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - 3

Do mesmo modo, mantendo a contagem do n3mero de ligaes primiti&as efectuadas, campo refcount, o apagamento de um fic,eiro passa a ser uma opera+o .ue se desen&ol&e prioritariamente so"re a entrada de directrio ) o fic,eiro s * realmente apagado .uando o n3mero de ligaes primiti&as se torna !ero5 2s campos o"ner e group definem a rela+o de pertena e s+o usados, con-untamente com os "its de controlo de acesso do campo mode, para esta"elecer o tipo de operaes .ue um utili!ador gen*rico pode reali!ar so"re o fic,eiro5 2s campos mtime e atime constituem a monitori!a+o de acesso ao fic,eiro5 Fote-se .ue eles s t9m este significado em ns-i ocupados5 Guando o n-i est li&re, de&em ser interpretados, respecti&amente, como prev e ne#t, ponteiros .ue &+o permitir implementar a lista de ns-i livres como uma lista "iligada5

DETI

1 - 11

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - $


2 acesso eficiente ao conte3do informati&o de um fic,eiro, como um continuum de dados, supe .ue se possa constituir uma lista ordenada de refer9ncias aos clusters f4sicos da unidade de memria de massa aonde a informa+o est arma!enada5 Tudo se passa como se o continuum fosse di&idido em pedaos com o taman,o de um cluster e a locali!a+o de cada cluster fosse arma!enada no elemento de um array d, designado de array de refer*ncias directas, cu-o 4ndice representa o seu n3mero de ordem5 Hom efeito, se-am p a posi+o actual de um dado ">te de informa+o no continuum de dados e d7l8 e off as &ari&eis .ue permitem locali!ar o mesmo ">te no cluster correspondente da memria de massa5 As relaes entre estas &ari&eis s+o e/pressas por

DETI
p = $./S!0S'12 l + off l = p di& $./S!0S'12 off = p mod $./S!0S'12

1-1

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - %

Referenciao directa

d7A8 d718

DETI
clusters de dados
Departamento de Electrnica, Telecomunicaes e Informtica

d7FIDIREHT)18

1 - 1'

Organizao da tabela de n#s-i - &

Referenciao simplesmente indirecta

DETI
d7FIDIREHT8 d7FIDIREHTJ18 clusters de dados
Departamento de Electrnica, Telecomunicaes e Informtica

i1 ou i17A8 d7FIDIREHTJRKH)18

1 - 16

Organizao da tabela de n#s-i - '

Referenciao duplamente indirecta


i3

i1718 i17 8 i17#8 i17RKH8

DETI
d7FIDIREHTJRKHL#8 d7FIDIREHTJRKHL#J18 d7FIDIREHTJRKHL$#J1%)18 clusters de dados
Departamento de Electrnica, Telecomunicaes e Informtica

1 - 1:

Organizao da tabela de n#s-i - (

2 o taman,o em n3mero de ">tes do fic,eiro descrito &em e/presso pelo campo size e o n3mero de clusters .ue o seu conte3do informati&o ocupa, pelo campo clucount5 Fote-se, por*m, .ue o entendimento dado a estas &ari&eis * muito preciso; tamanho significa o maior &alor alguma &e! assumido pela posio actual aps a escrita de um ">te no continuum de dados0 n+mero de clusters ocupados corresponde ao n3mero de clusters .ue est+o efecti&amente reser&ados para arma!enamento do conte3do informati&o, incluindo portanto, se necessrio, os clusters de arma!enamento dos arrays parcelares de refer*ncias directas e indirectas5

DETI

1 - 1<

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela de n#s-i - )

DETI
ihead tabela de n#s-i itail $ponto de insero%
1 - 1?

n-i ocupado

n-i li&re

lsta biligada de n#s-i livres

$ponto de retirada%

Departamento de Electrnica, Telecomunicaes e Informtica

"anipulao da tabela de n#s-i


A tabela de ns-i est locali!ada num espao cont4guo de "locos do array .ue representa o dispositi&o5 A sua manipula+o * efectuada um "loco de cada &e!5 As rotinas .ue o permitem fa!er est+o definidas em basicoper
( converso do n+mero de um n-i no n+mero 7l(ico8 do bloco e no deslocamento 7dentro do bloco8 onde o n-i est, localizado;
soConvert$efIn%

( transfer*ncia do conte+do de um bloco espec4fico do dispositivo para a ,rea de armazenamento interno; soLoadBlockIn% ( obteno de um ponteiro para a ,rea de armazenamento interno;
so!etBlockIn%

DETI

( transfer*ncia do conte+do de um bloco espec4fico da ,rea de armazenamento interno para o dispositivo; soStoreBlockIn%5
Departamento de Electrnica, Telecomunicaes e Informtica

1 - 1@

Organizao da tabela de mapeamento cluster * n#-i


A tabela de mapeamento cluster n-i constitui um array com tantos elementos
.uantos os clusters de dados e/istentes na zona de dados5 A sua finalidade * especificar se o cluster em .uest+o est ou este&e anteriormente associado a um fic,eiro, caso em .ue o elemento cont*m o n3mero do n-i correspondente55

DETI

1 - 1B

Departamento de Electrnica, Telecomunicaes e Informtica

"anipulao da tabela de mapeamento cluster * n#-i


A tabela de mapeamento cluster n-i est locali!ada num espao cont4guo de "locos do array .ue representa o dispositi&o5 A sua manipula+o * efectuada um "loco de cada &e!5 As rotinas .ue o permitem fa!er est+o definidas em basicoper
( converso de um 4ndice da tabela no n+mero 7l(ico8 do bloco e no deslocamento 7dentro do bloco8 onde o n+mero do n-i associado est, localizado; soConvert$efCIn&% ( transfer*ncia do conte+do de um bloco espec4fico do dispositivo para a ,rea de armazenamento interno; soLoadBlockC%In&% ( obteno de um ponteiro para a ,rea de armazenamento interno;
so!etBlockC%In&%

DETI

( transfer*ncia do conte+do de um bloco espec4fico da ,rea de armazenamento interno para o dispositivo; soStoreBlockC%In&%5
1- A

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela +bitmap, de clusters livres


A tabela $bitmap% de clusters livres constitui um array de "its indicati&o de parte
dos clusters da zona de dados .ue presentemente n+o est+o associados a .ual.uer fic,eiro0 cada "it do array referencia um cluster espec4fico, a.uele cu-o n3mero lgico corresponde ao respecti&o 4ndice5

fctable pos

DETI

2 incremento de fctable_pos * feito sempre mdulo dzone_total5

1- 1

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao da tabela +bitmap, de clusters livres


A tabela $bitmap% de clusters livres constitui um array de "its indicati&o de parte
dos clusters da zona de dados .ue presentemente n+o est+o associados a .ual.uer fic,eiro0 cada "it do array referencia um cluster espec4fico, a.uele cu-o n3mero lgico corresponde ao respecti&o 4ndice5

fctable pos

DETI

2 incremento de fctable_pos * feito sempre mdulo dzone_total5

1-

Departamento de Electrnica, Telecomunicaes e Informtica

"anipulao da tabela +bitmap, de clusters livres


A tabela $bitmap% de clusters livres est locali!ada num espao cont4guo de "locos do array .ue representa o dispositi&o5 A sua manipula+o * efectuada um "loco de cada &e!5 As rotinas .ue o permitem fa!er est+o definidas em basicoper
( converso de um 4ndice da tabela no n+mero 7l(ico8 do bloco5 no byte 7dentro do bloco8 e no bit 7dentro do byte8 onde a refer*ncia associada est, localizada; soConvert$efB&ap% ( transfer*ncia do conte+do de um bloco espec4fico do dispositivo para a ,rea de armazenamento interno; soLoadBlockB&ap% ( obteno de um ponteiro para a ,rea de armazenamento interno;
so!etBlockB&ap%

DETI

( transfer*ncia do conte+do de um bloco espec4fico da ,rea de armazenamento interno para o dispositivo; soStoreBlockB&ap%5
1- '

Departamento de Electrnica, Telecomunicaes e Informtica

Organizao de um direct#rio
Cm directrio Cm directrio constitui neste sentido um tipo particular de fic,eiro cu-a fun+o * materiali!ar a descri+o da estrutura ,ierr.uica su"-acente, contendo refer9ncias para os fic,eiros .ue s+o &is4&eis a um dado n4&el da ,ierar.uia interna5 2 seu conte3do informati&o pode ser entendido como uma ta"ela de refer9ncias onde cada entrada associa o nome do fic,eiro com o seu identificador interno5

DETI
nome n-n#-i

1- 6

Departamento de Electrnica, Telecomunicaes e Informtica

.arefas a efectuar

( ( ( ( (

preenc,imento dos campos do superbloco cria+o da tabela de ns-i cria+o da tabela de mapeamento cluster de dados n-i cria+o do directrio ra4z cria+o da tabela $bitmap% de clusters livres e iniciali!a+o condicional do conte3do dos clusters de dados

DETI

1- :

Departamento de Electrnica, Telecomunicaes e Informtica

/enrios de teste - 1
Teste 1 $dispositi&o de 1AA "locos%
'(create mpt)*ile m)+isk ,-'(mkfs_sofs,. /n SO*S,. /i ,-- /z m)+isk

Teste

$dispositi&o de 1AAA "locos%

'(create mpt)*ile m)+isk ,--'(mkfs_sofs,. /n SO*S,. /i ,-- /z m)+isk

Teste ' $dispositi&o de 1A6: "locos%

DETI

'(create mpt)*ile m)+isk ,-01 '(mkfs_sofs,. /n SO*S,. /i 0- /z m)+isk

$omparar os resultados obtidos com a6ueles 6ue resultam do recurso ao pro(rama de formatao fornecido5 mkfs_sofs,._bin5 usando a ferramenta sho"block_sofs,.7
1- <

Departamento de Electrnica, Telecomunicaes e Informtica

/enrios de teste - 2
Teste 6 $dispositi&o de 1AAA "locos%
'(create mpt)*ile m)+isk ,--'(mkfs_sofs,. /n SO*S,._,2.013456-,2.013456-,2. /i ,-- /z m)+isk

Teste

$dispositi&o de 1<6 @ "locos%

'(create mpt)*ile m)+isk ,3025 '(mkfs_sofs,. /n SO*S,. /i 0- /z m)+isk

Teste ' $dispositi&o de 1<6 B "locos%

DETI

'(create mpt)*ile m)+isk ,3026 '(mkfs_sofs,. /n SO*S,. /i 0- /z m)+isk

$omparar os resultados obtidos com a6ueles 6ue resultam do recurso ao pro(rama de formatao fornecido5 mkfs_sofs,._bin5 usando a ferramenta sho"block_sofs,.7
1- ?

Departamento de Electrnica, Telecomunicaes e Informtica

0escarregamento do pacote

7ruib8ruib/laptop2 teste9: ll total 60/r"/r//r// , ruib ruib 3,1265 Sep ,6 -6;15 SO*S,2_alunos'zip /r"/r//r// , ruib ruib ..04., Sep 2. -0;., SO*S,._alunos,'zip 7ruib8ruib/laptop2 teste9: 7ruib8ruib/laptop2 teste9: unzip SO*S,._alunos,'zip <rchive; SO*S,._alunos,'zip ' ' ' 7ruib8ruib/laptop2 teste9:

DETI

1- @

Departamento de Electrnica, Telecomunicaes e Informtica

Você também pode gostar