Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Reprezentarea interna a unui fisier este data printr-un asa numit inode (index node), care contine o descriere a asezarii fizice a fisierului pe disc si alte informatii, ca de exemplu : proprietarul, atributele de acces, momentul la care a fost accesat. Fiecare fisier are un singur inode, dar poate avea mai multe nume care toate sunt mapate (indica) la acelasi inode. Fiecare nume este o asa numita legatura (link). Cand un proces creaza un nou fisier, nucleul ii atribuie un inode neutilizat. Inodurile sunt in compozitia sistemului de fisiere fizic, dar nucleul le citeste in memorie pentru a avea un acces mai rapid la fisiere. Nucleul contine in afara tabelului de inoduri, doua alte structuri de date : tabela de fisiere si tabela de descriptori pentru fisierele utilizator. Tabela de fisiere este o structura globala a nucleului, iar tabela de descriptori ai fisierelor utilizator este impartita pe procese.
Fig. 7.2-
Cand un proces deschide sau creaza un fisier, nucleul aloca o intrare din fiecare tabela corespunzatoare inodului fisierului. Intrarile din cele 3 structuri de date contin informatii despre starea fisierului si permit accesul la el. Tabela de fisiere de obicei con_ine deplasamentul in fisier unde va avea loc urmatoarea operatiune de citire sau scriere, de asemenea mai contine si drepturile de acces admise procesului care a deschis fisierul. Tabela de descriptori pentru fisierele utilizator contine date despre toate fisierele deschise de un anumit proces.
Un sistem de fisiere are urmatoarea structura :
Fig. 7.2-
Blocul de boot - ocupa inceputul unui sistem de fisiere, de obicei primul sector si poate con_ine codul de bootare necesar initializarii sistemului de operare. Desi doar un singur bloc de boot este necesar pentru a initializa un sistem, toate sistemele de fisiere au un bloc de boot.
Superblocul - descrie starea unui sistem de fisiere (dimensiune, cate fisiere poate contine, unde se gaseste spatiul liber, etc.)
Lista de inoduri - urmeaza superblocului si dimensiunea acestei liste se specifica la configurarea sistemului. Nucleul face referire la inoduri prin indecsii acestora. Unul din aceste inoduri este inodul radacina al sistemului de fisiere, adica este inodul prin care structura de directoare a sistemului de fisiere va fi accesibila dupa executia apelului sistem mount.
Blocurile de date - de obicei incep la sfarsitul listei de inoduri si contin datele fisierelor si date administrative. Un bloc alocat poate face parte dintr-un singur fisier din sistemul de fisiere.
Inodul - se afla pe disc si sunt citite intr-o zona de memorie. Contin campurile :
identificatorul proprietarului - proprietatea unui fisier e divizata intre un singur proprietar si grupul proprietar si defineste setul de utilizatori care au acces la fisiere. Superutilizatorul are acces la orice fisier.
tipul fisierului
fisiere regulare
fisiere directoare
fisiere speciale pe caracter
fisiere speciale pe bloc
fisiere FIFO
atributele de acces - sistemul protejeaza fisierele fata de 3 clase :
proprietarul
grupul proprietarului
altii
Fiecare clasa poate avea drepturi de acces pentru citire, scriere si executie;
timpii de acces la fisier:
Timpul la care fisierul a fost ultima data modificat.
Timpul cand a fost ultima oara accesat.
Timpul cand inodul a fost ultima data modificat;
numarul de legaturi la un fisier - reprezinta numarul de nume pe care un fisier le are in ierarhia de directoare;
tabela de adrese pentru blocurile de date din fisier;
dimensiunea fisierului;
Pentru o mai mare flexibilitate, nucleul aloca spatiu pentru un fisier doar cate un bloc pana cand se ajunge la spatiul necesar, permitand astfel ca datele dintr-un fisier sa fie imprastiate in sistemul de fisiere. Aceasta schema de alocare complica regasirea datelor.
Tabela cu adresele blocurilor ar putea consta dintr-o lista de numere de blocuri apartinand fisierului, dar manipularea unei liste de blocuri este destul de greoaie (consuma timp). Daca un bloc logic contine 1K atunci un fisier de 10K ar necesita un index avand 10 numere de blocuri. Pentru a mentine structura unui inod destul de mica dar totusi pentru a permite si fisiere de dimensiuni mari, tabela de adrese dintr-un inod are forma :
Fig. 7.2-
Copyright © 2024 - Toate drepturile rezervate