Documente Academic
Documente Profesional
Documente Cultură
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.
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).
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.
Principalele operatii care se pot realiza asupra fisierelor sint cele prezentate mai jos:
In ceea ce priveste operatiile care se pot realiza cu inregistrarile dintr-un fisier, acestea
sint:
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
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.
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
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:
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 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.
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:
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;
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
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.
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;
/usr (users) - acest director contine informatii utile utilizatorilor, grupate la rindul
lor in urmatoarele subdirectoare:
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.
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.
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
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:
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:
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.