Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Sisteme de Operare

Informatica



















Sisteme de Operare












Curs Implementarea sistemelor de

fi iere


Suport curs





OSC


Capitolul File-System Implementation


Sec iunile 8


MOS


Capitolul File Systems


Sec iunile 4


Cuprins





Structura sistemului de fi iere


Alocarea spa iului pe disc


Implementarea directoarelor i link urilor


Gestiunea spa iului liber


Considerente de performan


Consisten a sistemelor de fi iere


Sisteme de fi ire jurnalizate


Sistemul de fi iere MINIX FS


Sistemul de fi iere





Perspectiva utilizatorului


Ierarhie de directoare i fi iere


Nume drepturi de acces utilizator grup

timpi de acces


Perspectiva sistemului de operare


Structuri i algoritmi de stocare eficient i

scalabil a informa iei


Suport persistent

Implementarea unui sistem de

fi iere


Un sistem de fi iere este un mod de

organizare a datelor pe un suport

persistent


Dou roluri


Oferirea unei interfe e facile utilizatorului


Fi iere directoare ierarhie


Atribute (drepturi nume timpi)


Algoritmi de alocare i organizare a

informa iei pe suportul fizic


Translatare cereri de la utilizator n sectoare

Interfe e de

utilizare implementare


Structura sistemului de fi iere











Fi ierul





Entitatea de baz a unui sistem de fi iere


Abstractizeaz datele informa iile


n Unix totul e un fi ier dac nu e fi ier

atunci e proces


Un fi ier este descris de date i metadate


Date blocurile de date efective


Metadate informatie despre date structur

specializat


File Control Block (i node n Unix)


De la descriptor de fi ier la FCB


















  fd                                                                                      structur

fi ier

deschis

copie FCB

n memorie                                  FCB








Tabela de descriptori a

procesului



cached data







data







user space                                                                       kernel space disc


Alocarea spa iului pe disc





Mecanismul prin care sistemul de operare

gestioneaz spa iul liber


Alocare contigu


Alocare cu liste


Alocare indexat


Alocarea spa iului pe disc n sistemele de

fi iere obi nuite se face la nivel de bloc


Un bloc are dimensiunea multiplu de sector octeti)


Alocare contigu





Fiecare fi ier este stocat ca o secven

contignu pe disc


Avantaje


Identificare blocurilor fi ierului se face simplu: blocul

de start dimensiunea fi ierului n blocuri


Viteza mare la citire


Dezavantaje


Fragmentare extern


Utilizatorul trebuie s specifice dimensiunea fi ierului

la crearea acestuia


Alocare contigu


Alocare cu liste





Blocurile fi ierului con in pointeri c tre

urm torul bloc


Avantaje


Nu mai exist fragmentare extern


Este necesar doar primul bloc pentru a localiza

fi ierul pe disc


Dezavantaje


Timpul de acces pentru ultimele blocuri este extrem

de mic


Alocare cu liste


Tabela de alocare a fi ierelor





Pointerii c tre blocurile fi ierului nu se

mai in la un loc cu datele ci ntr o zon

separat FAT


Dac FAT ul are dimesiune redus se

poate ncarc n memorie


Dac nu la deschiderea fisierului se pot

citi din FAT o parte a blocurilor de date

ale fisierului n memorie


Se reduce semnificativ timpul de acces

Tabela de alocare a fi ierelor



Alocare indexat





Fiecare fi ier are alocat un index block = i node


i node-ul con ine o tabel care mapeaz

blocurile logice ale fi ierului n blocuri fizice


Avantaje


Nu exist fragmentare extern


Timp de acces bun


Dezavantaje


Num rul de intr ri n tabela de indexare este limitat


Ultimele intr ri con in pointeri c tre alte tabele de

indec i deci laten a cre te la accesarea acestor

blocuri                                                                                                                                                                                                        


Alocare indexat


Exemplu de i node


Directory entry





Numele unui fi ier este reprezentat de o

structur directory entry dentry


struct dirent POSIX


WIN FIND DATA Win


Pe disc structura dentry con ine numele

fi ierului i un identificator al FCB i node

number


n sistemele Unix numele dentry este

separat de FCB i node


Implementarea directoarelor





Un director este un tip de fi ier care con ine

structuri dentry


Un director dispune de un FCB i node intrare

n tabela FAT)


Intr rile i sunt speciale


Dimensiunea unui director este dat structurile

dentry con inute


ls  ld /


drwxr-xr-x     4 root root 8 /


ls  ld etc


drwxr-xr-x              6 root root 0 etc

Implementare de director n

ext




Link uri





Hard links


Dou structuri dentry care refer acela i i-

node


Nu pot fi folosite ntre sisteme de fi iere

diferite de ce Hint ce con ine un dentry )


Sym bolic links soft links


i node specializat


i node-ul con ine numele fi ierului referit


Pe ext numele se stocheaz n inode dac are

sub de caractere


Link uri





touch a


ln a b


ls -l -i



-rw-r -r--


razvan

razvan


08 05- 1

:26

a




-rw-r -r--




razvan


razvan




08 05- 1


:26


b


a c




ln

-s




ls


-l


  -i



-rw-r -r--


razvan

razvan


08 05- 1

:26

a






-rw-r -r--




razvan


razvan




08 05- 1


:26


b






lrwxrwxrwx




razvan


razvan




08 05- 1


:27


c


>


a



rm

b





ls


-l


-i



-rw-r -r--


razvan

razvan


08 05- 1

:26

a







lrwxrwxrwx




razvan


razvan




08 05- 1


:27


c


>


a



Gestiunea spa iului liber





Vector de bi i


blocul este liber


blocul este ocupat


Liste nl n uite


Se men ine o list nl n uit n care primul bloc liber

con ine un pointer c tre al doilea etc.


Capul listei este inut n memorie


O versiune mai bun este cea n care se men in

tabele de blocuri libere


Se poate optimiza n plus dac se men in zone

contigue n tabele


Gestiunea spa iului liber





Spa iul necesar pentru lista vectorul de

bi i de blocuri libere pentru un disc de

GB cu blocuri de KB i adresa unui

bloc pe de bi i


List ^ = ^

de blocuri


Vector ^ = ^ = de

blocuri


Considerente de performan





Pentru a spori performan ele sistemelor

de fi iere se folosesc mecanisme de


Caching


Free-behind/Read ahead


Reducerea timpului de seek vezi i

planificarea opera iilor de I O)


Page cache





Folose te pagini n loc de blocuri


Folosit de memory mapped files


Apelurile read write folosesc buffer cache


Pentru flush scrierea pe disc a paginilor

modificate


msync pentru page cache


fsync pentru buffer cache


Este posibil ca discul s aib un cache intern

la scriere


Buffer cache





Men ine n memorie blocurile recent citite

de pe disc


Dimensiunea cache-ului este relativ mare =>

se folosesc tabele hash pentru a verifica dac

un bloc se afl sau nu n cache


Algoritmi de nlocuire FIFO LRU second

chance


LRU este mult mai u or eficient de

implementat datorit faptului c referirea

unei pagini se face mult mai rar


Non unified buffer cache


Unified buffer cache


Alte cache uri





Cache-ul pentru i noduri icache


n sistemele UNIX atributele fi ierelor sunt men inute

n inoduri dar sunt afi ate de comnezi uzuale (ls)


Cache-ul pentru rezolvarea numelor n inode- uri dcache


O rezolvare de nume > inode poate avea ca efect

citirea mai multor blocuri (se parcurge ntreaga cale)


Pentru a m ri viteza de c utare se folosesc tabele

hash


Backup uri





Backup uri


Sunt toate informa iile salvate


Da => full backup


Nu, numai cele care nu au fost salvate de la

ultimul backup => incremental backup


Sunt salvate toate blocurile sistemului de

fi iere


Da => physical dump; nu se pot face backup uri

incrementale


Nu => logical dump

Consisten a sistemelor de

fi iere


Datorit faptului c SO cite te modific i scrie

mai t rziu blocuri pot ap rea inconsisten e


La blocurile de date: nu se poate detecta, nu sunt

foarte grave pentru consisten a ntregului sistem de

fi iere


La blocurile auxiliare metadate): se pot detecta pot

avea efecte grave asupra ntregului sistem de fi iere

dac nu sunt corectate


La boot are dac sistemul de fi iere nu a fost

demontat se verific consisten acestuia


fsck scandisk





Teste de consisten pentru blocuri


Se creaz dou tabele, una pentru blocuri libere i una pentru

blocuri utilizate


Se parcurg i node urile i tabelele de indec i i se

incrementeaz corespunz tor n tabela de blocuri utilizate


Se parcurge lista de blocuri libere i se incrementeaz

corespunz tor n tabela de blocuri libere


Test de consisten pentru fi iere


Se creaz o tabel cu num rul de referiri ale fi ierelor


Se parcurg intr rile de directoare i se incrementeaz

corespunz tor n tabela de referiri ale fi ierelor


fsck scandisk





Se repar inconsisten ele


Blocuri


Se verific ca un bloc sa fie contorizat o singur

dat numai ntr una din tabele


Dac nu se repar inconsisten a (vezi slide ul

urm tor


Fi iere


Contorul de utilizare n i node ul fi ierului nu

corespunde contorului din tabel > se for eaz n

i node valoarea din tabel


fsck scandisk












a SF consistent



b bloc pierdut

c bloc duplicat in lista

de blocuri libere

d bloc de date duplicat



Sisteme de fi iere jurnalizate





Journaling file systems ext ReiserFS

JFS


Opera iile sunt scrise ntr un jurnal


nainte de efectuare sunt sumarizate n jurnal

n forma unor tranzac ii


Dup ncheiere tranzac ia este tears din

jurnal


Tipuri de jurnalizare


TODO

Sisteme de fi iere jurnalizate



La montarea sistemului de fi iere se

consult jurnalul i se efectueaz

opera iile din tranzac ii replay rollback)


Avantaje


Reduce drastic timpul de verificare a

consisten ei


Reduce posibilitatea de a pierde date n urma

unui crash


Dezavantaje


ncetine te sistemul de fi iere



VFS





Virtual File System


Opera iile generice ale SF sunt separate

de implementare


vnode entitate ce identific n mod unic

un fi ier din sistem


Pe baza vnode-ul se determin tipul

sistemului de fi iere i se activeaz opera iile

specifice


VFS n Linux IFS n Windows


VFS


Sistemul de fi iere MINIX FS





Variant simplificat a unui sistem de

fi iere UNIX


Folosit ini ial de Linux


nlocuit de ext apoi de ext ext )


Simplu ca i FAT


Folosit n sisteme embedded


Structura MINIX FS













Superblocul





Inode bitmap





Men ine un vector de bi i pentru a

identifica inode urile libere i cele

ocupate


Intrarea nu este folosit din motive

dictate de implementare


Func ia care caut un inode liber ntoarce

dac nu mai exist inode-uri libere


Zone bitmap





O zon un num r de blocuri puteri ale

lui folosite pentru alocarea datelor unui

fi ier


Men ine zonele libere cu un vector de bi i


S au folosit zone pentru a ine blocurile

aceluia i fi ier la un loc i astfel a reduce

timpul de seek


Probleme de securitate


Date reziduale n zon


Inode ul


 


Structura directoarelor





Un director con ine n zona de date un

vector de intr ri de director dentry)


O intrare de director este format din


Numarul inode-ului


Numele fisierului de octeti V V )


Cuvinte cheie





sistem de fi iere


date metadate


FCB


FAT


i node


dentry


hard link


symbolic link

page cache


buffer cache


icache dcache


consisten a SF


fsck scandisk


jurnalizare


VFS


superbloc


bitmap


Document Info


Accesari: 1101
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )