Sunteți pe pagina 1din 13

69

Capitolul 5 – Gestiunea informatiei

In acest capitol sint discutate aspecte conexe stocarii informatiei pe un suport extern de informatei. Sint
prezentate principalele sarcini ale unui sistem de fisiere, si, in acest context, operatiile care se pot face
Obiective asupra fisierelor si a componentelor lor. In continuare sint ilustrate notiunile teoretice prezentate pentru
cazul SO Unix.

Functii ale sistemului de fisiere


Tipuri de fisiere in USVR4 (Unix System V Release 4)
Continut Structura standard a sistemului de fisiere Unix
Sisteme de fisiere multivolum
Structura volumului de disc

Cuvinte cheie:fisier, director, sistem de fisiere, drepturi de acces

Modul1 – Functii ale sistemului de fisiere

Echipamentele periferice dintr-un SC prezinta o mare varietate si ca urmare a


acestui fapt operatiile de I/O vor fi diferite, corespunzatoare structurii acestor
echipamente. Pentru a simplifica accesul la periferice SO trebuie sa realizeze o interfata
comoda intre programele utilizatorului si susbsitemul de I/O. El face acest lucru prin
abstractizarea proprietatilor fizice ale acestor echipamente. Aceasta abstractizare se face
prin definirea unor unitati logice de acces la periferice numite fisiere. Un fisier poate sa
contina un program sau date (de diverse tipuri), fiind alcatuit din entitati mai mici, numite
inregistrari (cu format fix sau variabil). Un fisier este referit de catre utilizator printr-un
nume simbolic.
Una din cele mai importante functii ale unui SO este gestiunea informatiei, adica
a fisierelor proprii si a celor ale utilizatorilor. Aceste fisiere se regasesc intr-o organizare
speciala, numita sistem de (gestiune) fisiere (SF sau SGF). Sistemul de fisiere
implementeaza la nivelul SO operatiile de creare si intretinere a fisierelor. SF considera
EP ca fiind de doua tipuri:

 EP monfisier, care contin un singur fisier (de exemplu consola sau imprimanta);
 EP multifisier, acestea continind mai multe fisiere (cum ar fi discul sau banda
magnetica).

Fig.43. Echipamente periferice diverse


70

Principalele functii ale SF sint:

 furnizarea unui mecanism de acces cit mai flexibil pentru utilizator, detaliile de
implementare raminind transparente pentru acesta;
 asigurarea utilizarii eficiente a EP;
 pastrarea unei independente cit mai mari a programelor fata de particularitatile SC;
 oferirea posibilitatii de acces concurent la fisiere;
 asigurarea integritatii si a securitatii datelor din fisiere.

Dintre DP discul magnetic are structura de inregistrare a informatiei cea mai


Observati complexa (una, doua sau mai multe fete, fiecare fata fiind impartita in piste,
e impartite la rindul lor in mai multe sectoare). Sectorul constituie cantitatea
minima de informatie care se citeste/scrie de pe/pe disc.

Principalele operatii care se pot realiza asupra fisierelor sint cele prezentate mai jos:

 crearea unui fisier nou;


 modificarea drepturilor de acces la fisiere (prin modificarea atributelor acestora);
 stergerea unui fisier;
 copierea unui fisier;
 schimbarea numelui unui fisier.

In ceea ce priveste operatiile care se pot realiza cu inregistrarile dintr-un fisier, acestea
sint:

 scrierea/citirea unei inregistrari;


 inserarea unei noi inregistrari;
 inlocuirea unei inregistrari;
 stergerea unei inregistrari.

SO stie in orice moment care este starea fiecarui fisier. Fisierele pot fi "activate" printr-o
operatie de deschidere (open). La executarea unei astfel de operatii se specifica conditiile
de exploatare ale fisierului si se aloca resursele necesare realizarii operatiilor de transfer
(buffer-ele pentru inregistrari). Operatia pentru "dezactivarea" fisierelor (close)
actualizeaza anumite informatii referitoare la fisier (cum ar fi lungimea), dupa care
elibereaza resursele alocate.
Exista trei metode de acces la informatia continuta in fisiere:

 acces secvential, care presupune ca daca se doreste acces la a n-a inregistrare din
fisier, se va face mai intii acces la cele n-1 inregistrari anterioare. Ca exemple de fisiere
cu acces secvential se pot enumera fisierele asociate cu: imprimanta, consola sau banda
magnetica;
 acces direct, care considera ca toate inregistrarile fizice (sectoarele) sint echivalente
din punctul de vedere al mecanismului de acces. Din aceasta clasa face parte discul
magnetic. In acect caz, fisierele sint alcauite din inregistrari fizice de lungime fixa.
71

Determinarea adresei unei inregistrari se va face pe baza adresei de inceput a fisierului,


lungimii unei inregistrari si a numarului de ordine al inregistrarii dorite, in cadrul
fisierului;
 accesul indexat, acesta fiind o forma de acces care se bazeaza pe accesul direct. El
consta in realizarea unui index in care se pastreaza adresele pentru fiecare inregistrare,
conform cu cerintele aplicatiei deservite de carte acest index.

Organizarea directoarelor pe disc

Pentru a se pastra o evidenta a fisierelor aflate pe disc se utilizeaza un fisier


special, avind o pozitie fixa pe disc, numit director. Intr-un director se regasesc informatii
despre fiecare fisier continut pe discul respectiv, cum ar fi:

 numele fisierului;
 tipul acestuia, reprezentat de tipul informatiei continute de fisier (text,
program obiect etc.);
 adresa de inceput si dimensiunea fisierului;
 drepturile de acces la fisier;
 data crearii;
 versiunea.

Cu un director se pot executa mai multe operatii cum ar fi:

 stergerea unei intrari, care este simultana cu stergerea unui fisier;


 crearea unei intrari la crearea unui nou fisier;
 cautarea intrarii corespunzatoare unui nume dat de fisier;
 listarea caracteristicilor tuturor fisierelor care indeplinesc a anumita conditie.

Modalitatile de organizare a unui director folosite de-a lungul evolutiei SO sint cele de
mai jos:

1. Lista liniara. In acest caz accesul la elementele listei se face secvential, ca urmare
operatiile de actualizare si cautare sint mari consumatoare de timp;
2. Director pe doua nivele. In cazul in care mai multi utilizatori au acces la acelasi disc
este de preferat ca fiecare utilizator sa aiba propriul sau director, ca in figura urmatoare:
72

Fig.44. Sistem de directoare pe 2 niveluri

3. Director de tip arbore, care este caracteristic SO noi (incepind cu MS-DOS). Acest tip
de organizare arborescenta presupune existenta unei radacini unice si a mai multor
subdirectoare pentru ea. Acestea pot contine la rindul lor atit intrari care descriu fisiere,
cit si intrari care descriu alte subdirectoare. Un exemplu de astfel de arbore poate fi vazut
in figura urmatoare:

Fig.45. Sistem de directoare arborescent

Metode pentru alocarea spatiului pe disc

Alocarea spatiului pe disc se poate face continuu, inlantuit sau indexat. Sa vedem
in continuare care sint principalele caracteristici ale celor trei moduri de alocare:

 alocarea continua: in acest caz la crearea fisierului i se aloca intergal spatiul


necesar (deci dimensiunea finala a fisierului trebuie cunoscuta inca de la creare).
Sectoarele corespunzind fisierului vor fi asezate la adrese succesive. In director se va
memora numai adresa de inceput a fisierului si lungimea sa. Un dezavantaj important al
acestei metode este acela ca utilizatorul, necunoscind apriori care este dimensiunea unui
fisier, va solicita un spatiu acoperitor maxim, ceea ce conduce la io utilizare ineficienta a
discului. Mecanismul de alocarea a spatiului liber este asemanator cu cel descris la
partitionare. Si in acest caz se foloseste una din tehnicile "fit": first-fit sau best-fit.
Deasemenea, si aici poate aparea fragmentare, solutia de rezolvare a ei, fiind tot
compactarea;
73

 alocarea inlantuita: presupune ca fiecare fisier este format dintr-o lista inlantuita
de sectoare pe disc. Cimpul adresa al fiecarei celule de lista va pastra adresa urmatorului
sector din fisier. Ca urmare a folosirii acestei tehnici de alocare a spatiului pe disc, pentru
un fisier se va aloca, dinamic, exact atit spatiu cit ii este necesar;
 alocarea indexata: considera discul impartit in unitati de alocare de lungime fixa
(egala de obicei cu un multiplu al numarului de octeti dintr-un sector). Pentru fiecare fisier
se pastreaza un index (sub forma unei liste inlantuite) al adreselor tuturor unitatilor de
alocare care formeaza fisierul. Alocarea este deasemenea dinamica, adica ea se afce pe
masura ce fisierul creste.

Modul2 - Tipuri de fisiere in USVR4 (Unix System V Release 4)

Incepind cu acest modul vom arunca o privire asupra felului in care se face
gestiunea informatiei in SO Unix, sistem care este "acoperitor" in ceea ce priveste
caracteristicile unui SO oarecare (in sensul ca Unix, fiind un SO cu o functionalitate
deosebit de complexa, necesita folosirea unei bune parti a caracteristicilor si tehnicilor
prezentate la nivel teoretic de-a lungul acestui curs).
Vom incepe prin a enumera tipurile de fisiere intilnite in standardul Unix cunscut
sub denumirea de USVR4 (de la Unix System Five Release 4):

 ordinar - acest tip de fisier este format dintr-un sir de octeti, fara o organizare logica
speciala. Ele pot contine informatie binara (fisiere in format executabil) sau text (linii
de text separate prin caracterul de linie noua NewLine). In acest caz, structurarea
logica a informatiei cade exclusiv in sarcina progamatorului;
 director - fisierele director constituie o modalitate de a structura logic SF. Ele sint
folosite pentru a grupa fisiere, de obicei "inrudite". Practic, un director este o tabela
care contine cite o intrare pentru fiecare fisier din acel director. Fiecare astfel de
intrare pastreaza diverse informatii referitoare la fisierul respectiv, cum ar fi
identificatorul sau intern, numele, tipul fisierului, s.a. Un fisier director poate contine
orice tip de fisier;
 special - in Unix, DP se asociaza cu fisiere de un tip special. Consecintele directe ale
acestui fapt sint urmatoarele:

 oriunde apare un nume de fisier, poate aparea un DP;


 fisierelor li se pot asocia drepturi de acces, ca urmare se poate face acest lucru
si cu EP;
 operatiile de R/W se fac prin intermediul fisierului special asociat DP.

 FIFO (First In First Out) - aceste fisiere permit comunicatia intre procese;
 legaturi simbolice - un fisier de legare simbolica este un fisier ce reprezinta simbolic
alt fisier. El contine un pointer catre fisierul reprezentat. Un exemplu de folosire a
acestui fel de fisier este legarea simbolica a directorului /usr/news/ la directorul
/var/news din motive de asigurare a compatibilitatii intre diversele versiuni de Unix;

Observati Primele doua tipuri de fisiere se regasesc in orice SO;


e In SO Unix, orice obiect este fisier!
74

Reprezentarea interna a unui fisier

La nivelul SO un fisier este reprezentat de o intrare intr-o tabela de fisiere


(director) avind urmatorul continut:

i-number i-node Name information (data)

Semnificatia cimpurilor de mai sus este urmatoarea:

i-number= identificatorul unic de fisier;


i-node (information node)= acest cimp contine informatii referitoare la fisierul in
cauza cum ar fi: tipul fisierului, proprietarul, drepturile de acces, marimea,
momentele crearii/ultimei modificari/ultimului acces, numarul de legaturi la fisier
si lista blocurilor fizice apartinind fisierului;
name= numele fisierului - cu observatia ca un fisier poate fi legat la mai multe
nume;
information (data)= datele propriu-zise continute in fisier.

Pentru a nu se creste exagerat dimensiunea i-node-ului, lista blocurilor (un


Observati
bloc are dimensiunea de 512 octeti) fizice apartinind unui fisier se pastreaza
e
folosind indirectarea astfel:

Fig.46. Lista blocurilor fizice corespunzind unui fisier


75

Dupa cum se poate observa din figura de mai sus, primele zece celule din lista
memoreaza adresele primelor zece blocuri de date al fisierului. Urmatoarea celula
(a 11-a) pastreaza adresa unui bloc de simpla indirectare, care are la rindul sau 128 de
intrari - acestea pot memora pina la 128 de adrese ale unor blocuri de date. Blocul al
doisprezecelea memoreaza adresa unui bloc de dubla indirectare, adica a unui bloc cu 128
de intrari, fiecare intrare continind la rindul ei adresa unui bloc de simpla indirectare cu
128 de intrari (care point-eaza catre adresele unor blocuri de date). Ultima intrare, a 13-a,
contine adresa unui bloc de tripla indirectare, care memoreaza 128 de adrese ale unor
blocuri de dubla indirectare asemanatoare cu cele de la penultima intrare. Ca urmare a
folosirii acestui tip de indirectare dimensiunea maxima a unui fisier este de 1Goctet;
Ca urmare a folosirii triplei indirectari, extragerea unui bloc de date presupune realizarea
a unu pina la patru accese.
Dimensiunea maxima a unui fisier depinde de marimea blocului fizic si de
dimensiunea adresei pentru un bloc. In ceea ce priveste dimensiunea unui bloc se opteaza
de obicei pentru o dimensiune medie, deoarece daca blocul este de dimensiune mare, desi
rata de transfer e buna (in sensul ca la un bloc acces se va transfera o cantitate mare de
date) se face risipa de spatiu, iar daca blocurile sint mici spatiul este folosit judicios, dar
rata de transfer este mica.
Pentru fisierle speciale lista blocurilor fizice contine in intrarea zero major-ul
pentru DP respectiv, in intrarea 1 minor-ul, celelalte blocuri raminind nefolosite.

Legaturi la fisiere

La crearea unui fisier, i se aloca acestuia un i-node liber (i-number-ul acestuia


devine identificatorul intern al fisierului) si se creeaza o noua intrare in directorul
corespunzator. Incepind cu acest moment, fisierul are numarul de legaturi unu (are un
singur nume).
Legaturile permit referirea fisierelor prin pseudonime, astfel:

 legatura simpla (obisnuita) permite folosirea pseudonimelor locale unui singur SF


si nu permite referirea la directoare. O noua legatura obisnuita la un fisier se face prin
crearea unei noi intrari intr-un director care va contine i-number fisierului respectiv si un
nume nou pentru acest fisier. La crearea acestei legaturi se incrementeaza si numarul de
legaturi din i-node-ul asociat fisierului.
 legatura simbolica ofera posibilitatea folosirii pseudonimelor globale. Legatura
speciala este un tip special de fisier ce reprezinta un alt fisier. Ea contine numele caii
catre fisierul/directorul pe care-l indica legatura. Se poate crea o legatura simbolica si
daac fisierul referit nu exista. Numarul de legaturi asociat fisierului referit de legatura nu
va fi incrementat. Crearea unei legaturi simbolice presupune:

 crearea unei noi intrari in director;


 crearea unui nou i-node;
 alocarea unui bloc de date ce va contine numele caii spre fisierul la care se refera
legatura simbolica.

Legaturile simbolice sint folosite in situatii ca cele de mai jos:


76

 existenta unor resurse partajate - in acest caz se impune sa existe o singura copie a
fisierelor administrative corespunzatoare acestor resurse partajate;
 partitie a epuizat spatiul alocat la configurare - pentru a rezolva o astfel de situatie, se
va crea o legatura simbolica de la un director al acestui SF la un director care nu este
inca plin din alt SF;
 modificarea structurii unui SF duce la aparitia unor efecte neplacute pentru
programele care folosesc numele de cai anterioare, deaorece ele ar trebui recompilate cu
aceste nume de cai modificate. Se poate evita acest proces nedorit de recompilare daca
vechile fisiere sint legaturi simbolice la noile fisiere.

Modul3 – Structura standard a sistemului de fisiere Unix

SF al SO Unix are o structura arborescenta, care este ilustrata in figura urmatoare:

Fig.47. Structura standard a SF UNIX

Dupa cum se poate observa, un SF Unix contine de obicei urmatoarele fisiere:

/dev (device) - care contine fisierele speciale asociate DP;


/bin (binary) - continind comenzi si programe utilitare in format executabil. Exista
o legatura simbolica intre /bin si /usr/bin pentru a se pastra compatibilitatea intre
diversele versiuni de Unix;
/var (variable) - avind in structura sa doua directoare si anume:

news: care contine cite un fisier pentru fiecare noutate din sistem;
mail: orice utilizator care are posta necitita, va avea cit un fisier asociat
(cu acelasi nume ca cel al contului apartinind utilizatorului respectiv) in
acest director;

/lib (library) - care contine bibliotecile folosite pentru programare;


/etc - continind programe administrative si informatii despre utilizatori;
/tmp (temporary) - in acest director se regasesc fisierele temporare, precum si
spatiul de lucru pentru comenzile Unix;
77

/usr (users) - acest director contine informatii utile utilizatorilor, grupate la rindul
lor in urmatoarele subdirectoare:

tmp - pentru fisiere temporare;


bin - continind comenzi sistem;
lib - incluzind biblioteci;
man - acest director contine documentatia standard a SO Unix;
dict - contine fisiere de tip dictionar, precum si ale fisiere folosite pentru
operatia de verificare sintactica (spelling) a unui text (in limba engleza!);
src - in acest director se regasesc sursele constituind SO Unix, daca ele
sint disponibile;
users - acesta este directorul propriu-zis al utilizatorilor in care se gaseste
cite un subdirector pentru fiecare utilizator din sistem (de exemplu, user1,
user2, .. usern).

In SO Unix, fisierelor li se pot asocia drepturi de acces cum ar fi:

R (read) - citire;
W (write) - scriere;
X (eXecute) - executie.

SO va permite efectuarea unei anumite prelucrari asupra unui fisier numai daca drepturile
de acces ale procesului care incearca sa efectueza aceasta prelucrare, sint in concordanta
cu natura prelucrarii (de exemplu, nu vom putea scrie intr-un fisier in care avem numai
drept de citire).
In ceea ce priveste semnificatia drepturilor de acces pentru fisiere obisnuite,
respectiv directoare, se pot face urmatoarele remarci:

 fisiere ordinare: dreptul de citire (R) permite citirea datelor din fisier/ dreptul de
scriere (W) permite modificare continutului fisierului / dreptul de executie (X) face
posibila executia unui fisier executabil (care poate fi citit!) ca si cum ar fi o comanda;
 directoare: R permite listarea continutului directorului/ W permite adaugarea,
stergerea sau redenumirea fisierelor, insa numai daca este prezent si dreptul de executie/
X permite accesul la fisierele incluse in director si deasemenea schimbarea directorului
cu o comanda de tip change directory.

La crearea unui fisier se vor asocia cu acesta doua informatii de identificare a


proprietarului sau (initial acesta coincide cu creatorul sau): identificatorul utilizatorului
proprietar(UIDF) si identificatorul grupului din care face parte acesta (GIDF). In
continuare, exista trei categorii de utilizatori care pot solicita accesul la fisier:
proprietarul sau (user), grupul din care face parte acesta (group) sau ceilalti utilizatori
(others). In momentul in care un (proces) utilizator (caracterizat de UID-ul si GID-ul
corespunzatoare) doreste sa execute o anumita operatie asupra unui fisier (caracterizat la
rindul sau de UIDF si GIDF) se va rula urmatorul algoritm de acces:
78

daca UID=UIDF atunci (procesul) utilizator are drepturile proprietarului


(deoarece este chiar acesta)
altfel
daca GID=GIDF atunci (procesul) utilizator apartine de grupul din care
face parte si proprietarul fisierului, avind aceleasi drepturi ca si ceilalti
membri ai acestui grup;
altfel (procesul) utlizator face parte din ceilalti utilizatori si va avea
drepturile permise acestora asupra fisierului respectiv.

Cu fiecare fisier se asociaza o masca a drepturilor de acces care arata astfel:

T uuu ggg ooo


tip fisier user group others

Un exemplu de astfel de masca este urmatorul: d rwx r-x r-x, in care liniuta de unire arata
ca dreptul respectiv este inhibat. Din acesta masca, aflam despre fisierul descris de ea ca
el este un director (d), ca proprietarul sau are toate drepturile asupra sa (rwx) si ca grupul
proprietarului, la fel ca si ceilalti au numai drepturi de citire (r) si de executie (x) asupra
acestui director, dreptul ed scriere fiind inhibat.

Modul4 - Sisteme de fisiere multivolum

O proprietate interesanta a SF este ca ele pot rezida pe diferite volume logice,


respectiv dispozitive fizice, cu restrictia ca fisierele apartinind nucleului SO trebuie sa se
gaseasca pe acelasi volum, in directorul radacina al acestuia (root file system). Ca
urmare, discul Unix poate fi impartit in mai multe partitii, fiecare dintre ele putind
contine un SF diferit de celelalte. Exemple de astfel de SF sint cele de mai jos:

 s5 - care este SF traditional in USV produs de compania AT&T;


 ufs - SF din versiunea de Unix BSD dezvoltata la Universitatea Berkley California;
 rfs, nfs - acestea sint SF pentru retele de calculatoare; ele au fost dezvoltate de
compania AT&T.

Trebuie retinut ca orice SF, cu exceptia lui root file system (activ permanent), poate fi sau
nu activ (incorporat in structura accesibila) la un moment dat. Daca un Sf este accesibil se
spune ca el este montat. Fiecare volum Unix contine un SF propriu, a carui radacina
poate fi atasata la root file system printr-o operatie de montare, dupa cum se poate vedea
din figura urmatoare:
79

Fig.48. Montarea SF UNIX

Operatia de montare este transparenta pentru utilizator;


Observati Vechiul continut (daca exista) al catalogului punct de montare devine
e inaccesibil pina la demontare - ca urmare se recomanda folosirea ca punct
de montare a unui director vid, creat special pentru asta.

Modul5 – Structura volumului de disc

Implementarea unui SF se regaseste la nivelul structurii volumului de disc. In


cazul Unix, acesta arata ca in fiugra urmatoare:

Fig.49. Volumul de disc UNIX

Sa vedem in continuare ce contine fiecare din zonele marcate in aceasta figura:

 Blocul de boot este rezervat pentru programul de boot-are a SO si pentru informatii


legate de partitionarea discului;
 Superblocul contine informatii gemerale referitoare la SF, cum ar fi:
80

 dimensiunea SF;
 starea SF, alcatuita din eticheta, numele SF, marimea (in blocuri logice) a listei de
i-node-uri si data/momentul ultimei modificari a superblocului;
 informatii despre i-node-uri dupa cum urmeaza:

 numarul total de i-node-uri alocate;


 numarul de i-node-uri libere;
 un tablou cu numerele i-node-urilor libere;
 un index in acest tablou;

 informatii referitoare la blocurile de memorie, astfel:

 numarul total de blocuri libere;


 un tablou cu numerele a "n" blocuri libere;
 un index in acest tablou;

 Lista de i-node-uri cuprinde informatiile referitoare la toate i-node-urile din SF;


 Blocurile de date contin date administrative sau date obisnuite.

I-node-urile se afla stocate pe harddisk, dar – pentru a reduce timpul de


Observati
acces la aceasta lista - o copie a listei (tabelei) de i-node-uri se pastreaza in
e
memoria interna;

Alte structuri de date (continute in nucleul SO) folosite sint: cite o tabela
continind descriptori de fisiere pentru fiecare proces din sistem, alaturi de tabela de
fisiere a sistemului. Folosirea acestor tabele si a tabelei de i-node-uri permite grade
diferite de partajare a accesului la fisiere, in sensul ca:

. acelasi proces deschide de mai multe ori acelasi fisier;


. doua sau mai multe procese pot deschide acelasi fisier;

Cele doua moduri de partajare sint ilustrate in figura de mai jos:


81

Fig.50. Partajarea accesului la fisiere

Sumar Capitolul despre gestiunea fisierelor se ocupa cu prezentarea felului in care se face gestiunea informatiei
stocate pe un suport extern. Exista mai multe tipuri de fisiere in care informatia poate fi stocata, cele mai
raspindite astfel de tipuri in diversele SO, fiind fisierele ordinare si director.
In partea finala a acestui capitol se arunca o privire asupra elementelor de baza pe care le foloseste
modulul de administrare a fisierelelor din USVR4.

Exercitii 1. Care sint principalele functii ale unui SO?


Subiecte pentru dezbatere 2. Care sint tipurile de fisiere existente in SO Unix?
3. Care este sensul folosirii fisierelor de tip director?
4. Care sint efectele asignarii drepturilor de acces pentru fisiere
obisnuite/directoare?

S-ar putea să vă placă și