Activitatea de gestionare a datelor sub
controlul sistemului de operare consta in organizarea datelor pe
suportii de memorie externa in scopul stocarii lor si
pentru a permite regasirea lor, in vederea realizarii schimbului de
date cu celelalte componente ale sistemului de calcul.
Fisierul reprezinta unitatea logica de organizare a datelor pe suportul
de memorie externa.
Componenta sistemului de operare care
asigura gestiunea datelor pe suportii de memorie externa se
numeste sistemul de gestiune a fisierelor (SGF).
Sistemul de operare defineste
unitati logice corespunzatoare echipamentelor periferice,
echipamente de intrare/iesire, dispozitive de memorie externa numite device-uri.
Pentru fiecare tip de device, sistemul de operare furnizeaza cate un
program de interfata numit driver.
Schimbul de date gestionat de SGF se
realizeaza la nivel de fisier, prin cooperarea rutinelor SGF cu
programele driver corespunzatoare echipamentelor periferice implicate.
Functiile
indeplinite de SGF pentru gestionarea datelor stocate pe suportii de
memorie externa sunt:
- functia de evidenta a
fisierelor, care trebuie sa ofere date despre fisiere
si despre modul de organizare a fisierelor pe suport cat si
despre drepturile de acces ale utilizatorilor la fisiere;
- functia de alocare a memoriei externe,
pentru stocarea fisierelor; pentru realizarea acestei functii,
sistemul de operare trebuie sa realizeze si o evidenta
a ocuparii dispozitivelor de memorie externa;
- functia de dezalocare a memoriei externe, prin eliberarea
memoriei externe ocupate;
- functia de acces la date, care trebuie sa faciliteze accesul
utilizatorului la date, prin localizarea inregistrarii dorite si
accesarea ei, conform drepturilor de acces.
Utilizand conceptul de fisier, se poate
spune ca SGF este acea componenta a sistemului de operare care
implementeaza operatiile de creare, intretinere si
exploatare a fisierelor.
Tinand cont de functiile pe care
trebuie sa le indeplineasca in sistemul de calcul, SGF trebuie
sa satisfaca urmatoarele conditii:
- sa asigure un mecanism de lucru cu fisierele cat mai
accesibil pentru utilizator
- sa permita o utilizare cat mai eficienta a
dispozitivelor de memorie externa
- sa asigure o independenta
maxima a programelor fata de particularitatile
hardware ale sistemului de calcul
- sa permita accesul concurent la
fisiere
- sa asigure securitatea
si integritatea datelor memorate in fisiere.
Evidenta fisierelor
Functia
SGF de evidenta a fisierelor pe suportii de memorie
externa trebuie sa rezolve urmatoarele
probleme:
- identificarea fisierului si memorarea caracteristicilor
generale ale sale
- organizarea unui sistem de cataloage pentru inregistrarea tuturor
fisierelor de pe un dispozitiv de memorie externa.
Dintre toate dispozitivele de memorie
externa, discurile magnetice necesita cea mai complexa
evidenta a fisierelor pe care le memoreaza, pentru ca
sunt dispozitive care permit stocarea simultana a mai multor fisiere
(dispozitive multifisier) si sunt direct
adresabile, deci modul de organizare a evidentei fisierelor
pe suport trebuie sa permita accesul direct la fisiere.
Fiecare volum de disc contine cate o
tabela cu informatii despre fisierele memorate in volumul
respectiv, tabela numita catalog de fisiere sau director.
Accesul la fisiere se face pe baza datelor din aceasta tabela;
fiecare intrare in tabela director contine cate un descriptor de
fisier, ce cuprinde date despre fisier, si anume:
- identificatorul de fisier, format dintr-o pereche de valori, de forma (Nume,Indicativ), unde
Nume este numele simbolic al fisierului, recunoscut de utilizator,
iar Indicativ este un numar prin care fisierul este identificat
intern, de catre SGF;
- informatii de adresa care permit localizarea fisierului in disc; natura acestor
informatii difera, in functie de modul de alocare a
discului folosit pentru generarea fisierului;
- informatii pentru controlul accesului la fisier,
prin care sistemul de operare realizeaza functia de
protectie a datelor:
- atributele de
fisier (de exemplu: fisier read-only, fisier sistem,
fisier ascuns aplicatiilor obisnuite)
- utilizatorii si drepturile de acces la fisier pe care le au
(de exemplu: W acces in scriere, R acces in citire, A acces pentru
modificare, D acces pentru stergere)
- drepturi de partajare a fisierului, de exemplu in cadrul unei
retele de calculatoare;
- informatii despre date calendaristice, de exemplu:
data cand a fost creat fisierul, data ultimei actualizari, data
ultimei consultari;
- alte informatii despre fisier, de exemplu: modul de
organizare, dupa modul de alocare a suportului (contigua,
inlantuita, indexata), tipul de fisier, dupa
formatul articolului (cu format fix, variabil, nedeterminat), dupa
modul de codificare a datelor (fisier binar, fisier text),
dupa durata stocarii pe suport (permanent, temporar, la termen),
numarul de accese la fisier, etc.
Modul
de organizare a sistemului de fisiere in directori poate fi:
- cu un singur
nivel, definind un director unic pentru fiecare volum de disc;
acest director are dimensiune fixa, deci numarul de intrari
in director este fix, adica numarul maxim de fisiere care
pot fi memorate in volumul de disc este limitat de aceasta valoare
maxima. Pentru o astfel de organizare a
sistemului de fisiere, pe un volum de disc poate fi un singur
fisier cu un anumit nume (identificator);
- cu doua niveluri, intre
care exista o relatie de subordonare:
- pe primul nivel se
defineste un director principal MFD (Master File Directory), avand
cate o intrare pentru fiecare utilizator; in felul acesta se asigura
protectia datelor intre utilizatori, pentru ca drepturile de
acces ale unui utilizator se pot limita la fisierele din propriul
sau director
- pe al doilea nivel
sunt definiti directorii utilizatorilor, UFD (User File Directory),
care contin cate o intrare pentru fiecare fisier al
utilizatorului respectiv. Pentru o astfel de
organizare, pot exista pe un volum de disc mai multe fisiere cu
acelasi nume, cu conditia sa apartina la UFD-uri
diferite;
- cu structura de arbore, care extinde modul de
organizare de mai sus la mai multe niveluri; fiecare volum contine un
director principal, numit radacina; intrarile unui
director contine descriptori pentru toate fisierele pe care le
include; un director este tot un fisier, care difera de
fisierele utilizator numai prin continut; rezulta ca
un director poate contine oricati directori sau oricate
fisiere, cu conditia ca orice fisier sa se
gaseasca intr-un singur director;
- cu structura de graf aciclic,
asemanatoare organizarii in arbore de directori, dar cu
deosebirea ca un fisier poate sa apartina la mai
multi directori.
1.
Evidenta ocuparii volumului de disc
Pentru a realiza alocarea spatiului din
disc, sistemul de operare trebuie sa asigure o evidenta a
modului in care este ocupat fiecare volum si a spatiului liber din
disc. In acest scop, volumul este
impartit in unitati de alocare de lungime fixa, numite
blocuri si numerotate secvential; exista mai
multe modalitati de realizare a evidentei blocurilor libere
si a celor ocupate:
- cu ajutorul tabelei de ocupare a volumului (TOV), care
are atatea pozitii cate blocuri are volumul; in fiecare pozitie
se memoreaza cate un indicator, care este setat pe 0 daca blocul
nu este ocupat si pe o valoare diferita de 0 la ocuparea
blocului;
- cu ajutorul unei liste inlantuite a blocurilor libere;
in directorul volumului se memoreaza un pointer la primul bloc liber
de pe volum; fiecare bloc liber contine un pointer la urmatorul
bloc liber; ultimul bloc liber contine un indicator de sfarsit
de lista; alocarea unui bloc se face cu scoaterea lui din lista
(de obicei de la unul din capetele listei); eliberarea unui bloc se face
cu inserarea blocului in lista; dezavantajul este ca pentru
consultarea listei, de exemplu pentru a determina numarul blocurilor
libere din disc, trebuie incarcate in memoria interna atatea
blocuri cate se consulta;
- o metoda mai eficienta este evidenta printr-o
lista inlantuita si indexata a ocuparii
volumului; in primul bloc liber din volum se memoreaza cate adrese de
blocuri libere incap; acest bloc se numeste bloc de index;
daca numarul blocurilor libere depaseste
capacitatea blocului de index, pe ultima pozitie din blocul de index
se memoreaza adresa unui nou bloc de index, samd; in directorul
volumului se memoreaza un pointer catre primul bloc de index;
alocarea de blocuri libere ca si inserarea unor blocuri eliberate in
blocurile de index se realizeaza la nivelul ultimului bloc de index.
1.2. Alocarea spatiului pe disc
In functie de modalitatea de alocare a
discului se determina modul de acces la fisier si
informatiile care se memoreaza in descriptorul de fisier, pentru
a permite accesarea fisierului. Exista mai multe moduri de alocare a
discului pentru generarea unui fisier:
- alocarea este contigua atunci cand fisierul
ocupa un set de adrese consecutive in disc; pentru a face posibil
accesul la fisier, in descriptorul de fisier trebuiesc
precizate: adresa de inceput a fisierului si lungimea
fisierului; in cazul utilizarii alocarii contigue poate
sa apara, in timp, o fragmentare a discului si necesitatea
compactarii datelor din volum;
- alocarea inlantuita se realizeaza
cand blocurile fisierului alcatuiesc o lista
inlantuita; acest mod de alocare permite numai accesul
secvential la fisier; in descriptorul de fisier se
memoreaza adresa primului bloc al fisierului, pentru a permite
citirea fisierului si adresa ultimului bloc, pentru a permite
extinderea fisierului;
alocarea indexata
foloseste un bloc suplimentar, numit bloc de index, care se genereaza
odata cu fisierul; in blocul de index se memoreaza, in ordinea
alocarii lor, adresele blocurilor fisierului; pentru fisiere
mari, blocurile de index se pot inlantui; aceasta alocare
permite accesul direct la un bloc de date din fisier; in descriptorul de
fisier se memoreaza adresa primului bloc de index si
numarul de blocuri alocate fisierului.
BIBLIOGRAFIE:
1.D.
Cramer, Interworking with TCP-IP, vol.1, Prentice Hall, New
-Jersey,1991.
2.Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall,1992.
3.Iosif Ignat, Emil Muntean, Kalman Pustzai, Microinformatica, 1992.
. Andrew
Tanenbaum, Sisteme de Operare Moderne, Editura Byblos,
Bucuresti, 2004.
Sorin
Adrian Ciureanu, Sisteme de operare,
suport de curs,
Grigore Albeanu, Sisteme de operare, suport de curs.