Sunteți pe pagina 1din 19

100) Gestiunea informaiei. Problemele proteciei.

Informaia, care circul ntr-un sistem de calcul const din obiecte. Obiectele sunt entitile asupra
crora sunt efectuate anumite operaii. Toate operaiile pot fi clasificate n patru categorii:

de creare,
de modificare,
de cutare,
de distrugere a obiectelor.

Fiecare obiect are o reprezentare extern (n afara calculatorului) i una intern, determinat de
suportul fizic. Un obiect poate fi accesat cu ajutorul funciilor de acces.

Vom nelege prin termenul protecie mulimea metodelor i mecanismelor, care vizeaz specificarea
regulilor de utilizare a obiectelor i garanteaz respectarea acestor reguli. Protecia este asigurat de o
combinaie de dispozitive fizice i logice.

Prezentm succint cteva probleme, legate de implementarea proteciei n sistemele informatice:

Protecie ierarhizat - n aceast situaie simpl vrem s protejm un subsistem A contra


erorilor sau aciunilor prohibitive, provenite dintr-un subsistem B, care utilizeaz serviciile
subsistemului A, dar nu are vre-un drept asupra lui A. n acelai timp A poate accesa fr
restricii toate informaiile lui B. Subsistemul A este, de exemplu, un sistem de operare, iar B -
o aplicaie. Aceast problem este rezolvat prin mecanisme ierarhice cum ar fi regimurile
supervizor/sclav, cu trecere obligatorie printr-un apel la regimul supervizor pentru
comunicarea ntre A i B. Schema inelelor de protecie (v.5.4.2.5) este o generalizare a acestui
principiu.
Subsisteme reciproc suspicioase - Exist o suspiciune reciproc ntre dou subsisteme n cazul
n care fiecare specific, c unele din informaiile sale trebuie s fie protejate contra erorilor
sau aciunilor prohibitive ale celuilalt subsistem. Aceast situaie nu poate fi tratat cu
ajutorul unui mecanism de protecie ierarhic.
Acordarea i retragerea drepturilor de acces - Problema pus aici este problema modificrii
dinamice a drepturilor de acces. n particular, este posibil s se doreasc s avem
posibilitatea de a extinde sau restrnge drepturile unui domeniu. Cnd transmiterea
drepturilor este tranzitiv (extinderea drepturilor unui domeniu permindu-i la rndul su s
transmit drepturi), poate fi foarte dificil s se cunoasc la un moment de timp dat mulimea
drepturilor ataate unui obiect anume. Apare o problem, dac se va decide restrngerea sau
suprimarea acestor drepturi pentru toate domeniile sau doar pentru o parte a lor, care pot
accede obiectul. O soluie posibil const n introducerea unui pasaj unic (descriptor) la
traversarea cruia se vor permite accesrile obiectului. ns aceast metod nu permite
tratarea cazului unei retrageri selective, pentru care poate fi necesar s fie parcurse legturile
inverse ntre obiect i domeniile, care au acces la obiect.
101) Desemnarea i legarea fiierelor i intrrilor-ieirilor.

Scrie ca este info in Capitolul 6, dar nu am gasit dupa asa taguri.

102) Ci de acces la un fiier.

Un fiier este un obiect compus: el posed un descriptor, care conine informaiile, necesare localizrii
sale fizice i realizrii funciilor de acces. Pentru sistemul de operare, numele descriptorului unei fiier
(adresa fizic sau indicile ntr-un tabel de descriptori) permite accesul la fiier. Acest nume al
descriptorului, de obicei necunoscut de utilizatori i rezervat doar pentru sistemul de operare, este
numit nume intern al fiierului. Descriptorul i numele intern al fiierului sunt unice. Un fiier este
desemnat de ctre utilizatorii externi cu ajutorul identificatorilor nume externe. Structurile de date,
care permit construirea cii de acces la un fiier pornind de la unul din numele sale externe, sunt numite
cataloage sau directorii. n afara numelor interne i externe, adesea mai este definit un nume, zis local
sau temporar. Un nume local este definit ntr-un mediu propriu unui utilizator i are o existen doar
temporar (de exemplu, durata de execuie a unui program).

Necesitatea unui asemenea nume rezid n urmtoarele:

Eficacitate: numele locale sunt definite ntr-un mediu mai restrns dect numele externe i
interpretarea lor este, deci mai rapid (cataloagele nu sunt parcurse la fiecare accesare a
fiierului)
Comoditatea utilizrii i adaptabilitatea programelor: acelai nume poate fi refolosit pentru a
desemna fiiere diferite pentru instane de timp distincte, ceea ce permite reutilizarea unui
program cu fiiere diferite fr a fi necesar s se modifice textul programului
Acces selectiv: interpretarea numelor locale permite introducerea unui acces selectiv la un
fiier n dependen de utilizator (funcii de acces sau drepturi de acces diferite).
103) Desemnarea extern a fiierelor. Cataloage. Organizarea arborescent

Un catalog definete un mediu, adic o mulime de identificatori (sau o lexic) i regulile de interpretare
a acestor identificatori. Organizarea cea mai simpl poate fi schematic reprezentat de un tabel, care
asociaz unui identificator descriptorul fiierului pe care acesta l desemneaz.

Aceasta organizare trateaz la acelai nivel toate numele, ceea ce implic urmtoarele inconveniente:

ntr-un sistem mono-utilizator ar fi bine s avem la dispoziie posibilitatea de a clasifica


fiierele pe rubric
ntr-un sistem multi-utilizator conflictele datorate omonimiei a dou fiiere de utilizatori
diferii, restricioneaz libera alegere a numelor
n toate cazurile, cutarea unui fiier cu numele dat, se efectueaz pe toat mulimea
numelor, n timp ce informaii referitoare la natura sau apartenena fiierului ar putea
accelera aceast cutare.

Este preferat organizarea ierarhic pe mai multe nivele n care fiierele i cataloagele sunt organizate
conform unei structuri arborescente. Adncimea arborescenei poate fi limitat: de exemplu, o structur
cu dou nivele permite definirea a cte un catalog pentru fiecare utilizator a unui sistem, aceste
cataloage fiind i ele grupate ntr-un catalog general.

O organizare arborescent este definit dup cum urmeaz:

Unui catalog i se asociaz o mulime (care poate fi vid) de alte cataloage i fiiere; aceste
obiecte se numesc incluse n catalog; ele sunt desemnate aici printr-un identificator zis nume
simple. Relaia ntre un catalog i un alt catalog, inclus n primul, se numete relaie de
legtur; ea permite s se defineasc un fiu (catalogul inclus) i un tat.
Exist un catalog, i numai unul singur, numit rdcin, care nu are tat. Orice alt catalog are
un tat, i doar unul singur.

Relaia de legtur definete o arborescen de cataloage cu rdcina n catalogul rdcin. Sunt utilizai
termenii de predecesori sau descendeni pentru a desemna cataloagele la care poate ajunge de la un
catalog dat prin intermediul unei suite de relaii tat sau fiu.
Plecnd de la un catalog dat, exist o cale unic ntr-o arborescen pentru a ajunge la oricare din
descendenii si. Aceast proprietate este utilizat pentru desemnare: numele unui catalog este
construit prin concatenarea numelor simple succesive, care desemneaz predecesorii si, ncepnd cu
catalogul iniial; numele unui fiier este concatenarea catalogului, care l include i a numelui su simplu.
n identificatorii construii astfel (zise nume calificate sau compuse) este utilizat un simbol special (> n
Multics, / n Unix sau / n MS DOS) pentru separarea numelor simple succesive.

Desemnarea printelui. Prin convenie, un simbol special (< n Multics, .. n Unix)


desemneaz n orice catalog diferit de rdcin, tatl catalogului dat. Utilizarea poate fi
iterat (<< desemneaz bunelul, etc.). Pot fi de asemenea desemnate simplu obiecte
incluse n cataloagele frate sau verior ai catalogului curent.
Creare de legturi. Numim legtur asocierea unui nume simplu (numele legturii) i a unui
alt nume (nume obiectiv sau scop). Crearea unei legturi ntr-un catalog introduce aici
numele simplu (numele legturii), care trebuie s fie unic n cadrul catalogului dat. Aceast
operaie este o legare prin nlnuire: cnd numele legturii este interpretat, n mediul
catalogului unde a fost creat, el este nlocuit prin numele obiectiv.

104) Legarea fiierelor cu fluxurile de intrare-ieire

Un program schimb informaii cu mediul exterior prin intermediul unor operaii de intrare-ieire. care
permit comunicarea cu un fiier sau un periferic. n momentul elaborrii programului nu este nc
cunoscut cu care fiier sau periferic se vor produce intrrile-ieirile; adesea este necesar s se utilizeze
fiiere sau periferice, care difer de la o execuie la alt. Din aceste considerente este util s se poat
ntrzia legtura unui program cu fiierele sau perifericele pe care acesta le utilizeaz. n acest scop se
introduce noiunea de flux de intrare-ieire. Un flux de intrare-ieire este un obiect, care posed toate
caracteristicile unui periferic de intrare-ieire (nume, operaii de acces), dar care nu are o existen
real. Pentru a fi efectiv utilizat n transferul informaiilor, un flux trebuie s fie n prealabil legat, cu
ajutorul unei operaii, numite asociere, cu un fiier sau periferic. Transferul informaiei, descris de
operaiile asupra fluxului, vor fi executate asupra fiierului sau perifericului, asociat fluxului. Asocierea
poate fi modificat de la o execuie la alta, ns textul programului, care face referin doar la numele
fluxului, rmne invariant.

La realizarea asocierii este folosit legarea prin nlnuire. Fiecrui flux i se asociaz un descriptor.
Operaia de asociere cere ca acest descriptor s conin un pointer spre descriptorul fiierului sau
perifericului, pe care l asociaz fluxului. La execuia unei operaii de intrare-ieire asupra fluxului, o
direcionare permite obinerea suportului corespunztor.

Asemeni editrii legturilor, asocierea fluxurilor utilizate de un program poate fi realizat la dou dintre
etapele de derulare:

naintea execuiei programului, cu ajutorul unei instruciuni a limbajului de comand


n timpul execuiei, cu ajutorul unei primitive de sistem, implementat printr-un apel de
supervizor.

Sistemele de operare ofer utilizatorilor un set de fluxuri predefinite i asociate iniial, n mod implicit, la
periferice determinate. De exemplu, un sistem interactiv utilizeaz un flux standard de intrare i un flux
standard de ieire; n momentul n care un utilizator este admis n sistem aceste fluxuri sunt asociate,
implicit, la tastatur i ecran. Ele pot fi temporar reasociate fiierelor; n caz de eroare, asocierea
implicit este n mod automat restabilit pentru a permite utilizatorului s intervin.

Sistemele ofer de asemenea de obicei posibilitatea de a crea fluxuri noi, care se adaug celor
predefinite. Ca i asocierea, aceast creare poate fi cerut de o instruciune sau de un apel al regimului
supervizor.

105) Legarea programelor i datelor


3) Program compus - Constituirea unui program unic, pornind de la programe construite independent,
se realizeaz pornind de la programe obiect n adrese relative (deplasabile), adic obinute dup
translatare, prin legarea referinelor externe.

106) Etapele de via a unui program - este descries in punctual 105.

107) Funcionarea unui ncrctor

Un ncrctor este destinat s pun n form absolut un program (sau modul) obiect n adrese relative.
Aceast operaie const n nlocuirea tuturor adreselor relative la originea modulului prin adrese
absolute. Pentru aceasta se va efectua un lucru preliminar n faza de translatare: nregistrrilor
modulului obiect, care conin o adres translatabil, li se va ataa un indicator, care va fixa poziia
acestei adrese n interiorul nregistrrii (dac poziia nu este specificat n mod implicit).

Adresele translatabile pot s apar:

sau n cmpul de adres al instruciunii


sau n cazul datelor, n expresii pentru calcularea adresei, destinate a fi utilizate ca relaii de
direcionare sau s fie ncrcate n registrele de baz

ncrctorul utilizeaz metoda substituiei: orice adres relativ a este nlocuit prin adresa absolut
a+originea, unde originea este adresa absolut ncepnd cu care este ncrcat modulul. Pentru un
calculator cu registre de baz acest lucru este simplificat considerabil; reamplasarea este realizat la
execuie prin calcularea adresei, cu condiia c registrele de baz sunt ncrcate corect.
Dac programul ncrcat trebuie imediat executat, o funcie suplimentar a ncrctorului va determina
adresa absolut de la care trebuie s nceap execuia. Aceast adres este adesea fixat prin convenie
(de exemplu, se va porni de la primul amplasament al modulului). Pentru cazuri mai generale, modulul
poate avea mai multe puncte de intrare, desemnate cu ajutorul identificatorilor; el va conine n acest
caz un tabel al punctelor de intrare, construit de translator, care asociaz o adres relativ fiecrui
identificator. Aceste adrese sunt transformate n adrese absolute; adresa punctului de intrare este
determinat pornind de la identificator prin intermediul unei cutri n tabel.

Pentru a ilustra prezentm un format posibil al unui modul obiect translatabil i programul
corespunztor al ncrctorului.
Procedura translatare(cod) modific <cod>-ul, translatnd adresele relative ale acestuia: fiecare adres
relativ este incrementat cu adr_ncrcare. Poziia acestor adrese n interiorul nregistrrii trebuie,
deci, s fie cunoscut (cel mai des, fiecare nregistrare conine o instruciune unic n care adresa ocup
o poziie fix).

108) Funcionarea unui editor de legturi

Editor de legturi - mai ndeplinete i ncrcarea. Editorul de legturi primete la intrare un set de
module obiect translatabile i construiete la ieire un modul obiect absolut. El este obligat, deci, pentru
fiecare modul obiect:

s determine adresa de implantare a acestuia


s ndeplineasc modificrile informaiilor translatabile
s realizeze legarea referinelor externe

109) Legarea prin substituie

n cazul editrii legturilor prin substituie fiecare referin la un obiect extern n cadrul unui modul este
nlocuit prin adresa absolut a acestui obiect. Prin definiie, un modul A utilizeaz un modul B dac
programul lui A face referine la obiecte, coninute n B. Deoarece graful relaiei utilizeaz poate conine
circuite, editarea legturilor folosete un algoritm n doi pai. Primul pas construiete planul implantrii
modulelor i determin adresa absolut a tuturor obiectelor externe; al doilea pas soluioneaz
referinele la aceste obiecte.

Formatul modulelor obiect, indicate n 5.3.2, este completat de un tabel de referine externe, care
conine identificatorii tuturor obiectelor externe, folosite de modul; o referin extern din program
este nlocuit printr-o referin la intrarea corespunztoare a tabelului. Aceast ordonare permite s fie
pstrat doar un exemplar a fiecrui identificator extern i evit dispersarea acestor identificatori n
corpul modulului

Pentru prezentarea unui algoritm al editorului de legturi indicm un format posibil al modulelor
translatabile.

110) Legarea prin nlnuire

Vector de transfer - Metoda vectorului de transfer este relativ puin utilizat pentru programele
compilate, totui descriem principiile acestei tehnici, deoarece:

ea este aplicabil n cazul programelor interpretate sau celor combinate


ea permite introducerea ntr-o form primitiv a noiunii de segment de legtur, noiune
dezvoltat n continuare

Fiecare modul conine un tabel, numit vector de transfer, care are cte o intrare pentru o referin
extern. n corpul modulului fiecare referin la un obiect extern este nlocuit printr-o referin
indirect la intrarea respectiv a vectorului de transfer. Prima trecere a editrii legturilor const n
asocierea intrrilor vectorilor de transfer din diferite module cu adresele corespunztoare a obiectelor
externe. La execuie, accesul la un obiect extern este, deci, realizat prin direcionarea via un cuvnt al
vectorului de transfer. Aceast metod este costisitoare n spaiu (vectorii de transfer trebuie pstrai) i
n timp (referire indirect). Ea convine pentru cazul nlocuirii unui modul ntr-un program deja legat;
anume din aceast cauz metoda vectorilor de transfer prezint interes pentru programele interpretate
sau pentru sistemele de depanare.

Registre de baz - Ca i n cazul ncrctorului, adresarea cu ajutorul registrelor de baz simplific lucrul
editorului de legturi. Exist dou moduri distincte de utilizare a acestor registre:

Registrele de baz sunt accesibile utilizatorilor: n acest caz sunt definite convenii de utilizare
care permit, de exemplu, folosirea registrelor de baz specificai pentru a adresa un
subprogram, o zon de date, un bloc de parametri etc. Aceste convenii sunt implementate
de ctre translatoare sau direct de ctre utilizatori, dac acetia programeaz n limbaj de
asamblare.
Registrele de baz sunt administrate de sistemul de operare i sunt inaccesibili utilizatorilor.
n acest caz, sistemul asociaz un registru de baz fiecrui fragment independent (program
sau zon de date) i asigur realocarea acestor registre, dac numrul lor este insuficient.

111) Mecanisme de gestiune a obiectelor. Segmentarea

Utilizarea registrelor de baz permite reimplantarea independent n memorie a procedurilor i datelor


unui program. Totui, acest mecanism are dou restricii:

pentru utilizator: necesitatea de a se conforma conveniilor de folosire a registrelor de baz


pentru sistemul de operare: necesitatea gestiunii alocrii registrelor de baz, dac acestea sunt
n numr insufficient

Aceste restricii vor fi eliminate, dac utilizatorul ar putea numi cu un nume la alegere proprie
elementele de informaie i dac sistemul ar dispune de un mecanism de plasare n memorie i de
legare pentru a administra astfel de elemente. Anume la aceste dou ntrebri ncearc s rspund
segmentarea.

Un segment este p mulime de informaii considerat ca o unitate logic i desemnat de un nume;


reprezentarea sa ocup o mulime de amplasamente adiacente (contigue). Un segment poate fi de
lungime variabil. n interiorul unui segment informaiile sunt desemnate cu ajutorul unei deplasri, care
este o adres relativ n raport cu nceputul segmentului. O informaie este desemnat de un cuplu
(nume de segment, deplasare), care se numete adres segmentat.

Este important s se noteze, c segmentele sunt reciproc independente att din punct de vedere fizic,
ct i logic. Fizic, un segment poate fi implantat la o adres oarecare, cu condiia s fie ocupate adrese
adiacente. Logic, diferite segmente, administrate de un sistem de operare, sunt independente i trebuie
considerate ca tot attea spaii de adresare liniare distincte. Chiar dac numele segmentelor sunt
frecvent reprezentate de numere ntregi consecutive, nu exist o relaie de adiacen ntre ultimul
amplasament al segmentului i i primul amplasament al segmentului i+1. Folosirea unei deplasri
negative sau mai mare dect lungimea segmentului utilizat este o eroare de adresare.
Segmentele sunt utilizate

ca uniti de secionare logic a unui program, pentru reprezentarea, de exemplu, a diferitor


proceduri, module, date legate logic (tabele, structuri)
ca unitate de partajare ntre mai muli utilizatori
ca unitate de protecie (consecin a partajrii): segmentul este entitatea la care sunt ataate
drepturile de acces

Realizarea adresrii segmentate utilizeaz principiul:

Fiecrui segment i este asociat un descriptor; el conine (cel puin) adresa de implantare a segmentului,
lungimea sa i drepturile de acces. Descriptorii se afl n tabelul segmentelor; un segment este
desemnat de indicele descriptorului su n acest tabel. Exist mai multe posibiliti de realizare, care
sunt dictate de organizarea tabelelor descriptorilor:
Tabel unic. Toi descriptorii sunt pstrai ntr-un singur tabel; numele unic al unui segment este
indicile descriptorului su din acest tabel. Descriptorul conine o list de acces, care definete
drepturile fiecrui utilizator al segmentului. Aceast metod permite partajarea segmentelor,
ns toi utilizatorii sunt obligai s utilizeze unul i acelai nume unic, ceea ce adesea nu este
comod.
Tabele multiple. Exist un tabel distinct pentru fiecare mediu; ntr-un mediu oarecare numele
segmentului (dac este accesibil n acest mediu) este indicele descriptorului su n acest tabel
local. Un tabel accesibil n mai multe medii are mai muli descriptori i mai multe nume distincte.
Organizare mixt. Fiecare segment posed un descriptor central, care conine caracteristicile sale
de implantare fizic (lungimea, adresa). El mai posed un descriptor local n fiecare mediu n care
este accesibil; acest descriptor conine informaiile proprii mediului (subliniem drepturile de
acces) i puncteaz pe descriptorul central. Un segment are n acest mod un nume distinct
pentru fiecare mediu, iar caracteristicile fizice sunt situate ntr-un loc unic, descriptorul central.

112) Gestiunea fiierelor. Noiuni generale

Numim fiier o mulime de informaii, formate cu scopul pstrrii i utilizrii lor n cadrul unui sistem
informatic. Fiierele au de obicei o durat de via superioar timpului de execuie a unui program sau
duratei unei sesiuni de lucru: ca rezultat, suportul lor permanent este memoria secundar. Fiierul este
un obiect: el posed un nume, care permite desemnarea sa, are asociate funcii de acces, adic operaii,
care permit crearea sau distrugerea, consultarea sau modificarea informaiilor, etc. Componentele unui
sistem de operare, care asigur posibilitatea pstrrii fiierelor i realizeaz funciile de acces se
numete sistem de gestiune a fiierelor (SGF).

Utilizatorul unui sistem informatic organizeaz informaiile conform necesitilor proprii, impunndu-le
o structur sau organizare, numit logic; funciile de acces sunt exprimate cu ajutorul acestei structuri.
Reprezentarea informaiilor fiierelor n memoria secundar (adresa de implantare, codificarea
informaiei) determin organizarea fizic a fiierelor. Reprezentarea structurii logice a fiierelor printr-o
organizare fizic este sarcina SGF.

113) Funciile unui sistem de gestiune a fiierelor

Funciile principale, asigurate de un sistem de gestiune a fiierelor sunt:

crearea unui fiier (definirea numelui, alocarea eventual a spaiului),


distrugerea unui fiier (eliberarea numelui i a spaiului, alocat fiierului),
deschiderea unui fiier (declararea inteniei de a folosi fiierul cu ajutorul funciilor de acces i a
drepturilor specificate),
nchiderea unui fiier deschis (interzicerea oricrui acces ulterior),
diverse funcii de consultare i modificare: citire, scriere, modificarea lungimii, etc. (detaliile
legate de aceste funcii depind de organizarea logic a fiierului).

Pstrarea fiierelor i realizarea funciilor de acces impune SGF s aib n arj:

gestiunea suporturilor fizice ale informaiei, ascunznd unui utilizator obinuit detaliile
organizrii fizice;
securitatea i protecia fiierelor, adic garantarea integritii,confidenialitii i accesibilitii n
caz de accident sau de rea voin i respectarea regulilor stabilite de utilizare (drepturi de acces,
condiii de partajare).

114) Organizarea general a unui sistem de gestiune a fiierelor (SGF)

SGF realizeaz corespondena ntre organizarea logic i organizarea fizic a fiierelor. Organizarea
logic, unic cunoscut de utilizatorii obinuii, este determinat de consideraii de comoditate i
universalitate. Organizarea fizic, legat de suporturile de memorie utilizate, este determinat de
considerente de economisire a spaiului i eficacitatea accesului. Aceste dou organizri sunt, n genere,
diferite fiecare fiind definite prin structuri de date proprii, controlate de SGF. Drept rezultat, SGF sunt
construite conform unei structuri ierarhice, care are cel puin dou niveluri corespunztoare celor dou
organizri, menionate mai sus: orice aciune, definit la nivelul logic este interpretat de un set de
aciuni la nivelul fizic. Pentru facilitarea concepiei sau pentru a rspunde unor necesiti specifice
(portabilitate, de exemplu) pot fi definite i unele nivele intermediare. Pentru separarea organizrii fizice
de organizarea logic este recomandabil s fie introdus o organizare intermediar, care joac rol de
interfa. Aceast organizare intermediar poate fi un segment, adic o suit de amplasamente
adiacente, desemnate de valori ntregi pozitive, numite adrese logice sau deplasri. Putem separa, n
acest caz, n dou etape stabilirea corespondenei ntre organizarea logic i cea fizic:
traducerea numelor, specificate de funciile de acces la fiier, n adrese logice (un atare nume
desemneaz o nregistrare sau un cmp al acesteia)
traducerea adreselor logice n adrese fizice

115) Organizarea logic a fiierelor. Acces secvenial

Pentru specificarea organizrii logice a unui fiier definim mai nti o structur abstract a fiierului.
Pentru aceasta vom utiliza un model simplu de descriere a datelor, care ne va permite s caracterizm
nregistrrile, s definim organizarea global a fiierului i s exprimm funciile de acces. Vom preciza
mai apoi reprezentarea concret a informaiilor, care se conin n fiier.

Un fiier este o mulime de nregistrri (articole). Fiecrui articol i este asociat un numr constant de n
atribute, aceleai pentru toate articolele. Un atribut este definit printr-un nume i un domeniu de valori.
Numele este pentru desemnarea atributului; dou atribute distincte au nume diferite. Domeniul de
valori specific valorile pe care le poate lua atributul. Specificarea organizrii fiierului este completat
de restriciile, care trebuie s fie satisfcute de ctre articole. Aceste restricii pot lua forme diverse
(restricii de ordine a articolelor, restricii legate de valorile atributelor, relaii ntre atributele diferitelor
articole, etc.). Desemnarea articolelor, n expresia funciilor de acces, utilizeaz atributele articolelor,
innd cont de restriciile specificate.

Fiier secvenial de caractere. Fiecare nregistrare a fiierului posed urmtoarele atribute: (numr,
<ntreg>) (coninut, <caracter ASCII>). Restricia este, c articolele fiierului sunt ordonate, articolele
succesive avnd drept numr valori ntregi consecutive.

n reprezentarea fiierului atributul numr nu este reprezentat explicit, dar este definit de ordinea
articolelor. Mai mult, atributul valoare este reprezentat doar prin valoarea sa, iar fiierul este simplu
reprezentat sub forma unei secvene de caractere.

n cadrul unei organizri secveniale nregistrrile sunt ordonate i pot fi desemnate de valori ntregi
consecutive. Totui, aceste numere de ordine nu pot fi folosite n cadrul funciilor de acces; este permis
doar utilizarea funciei succesor. Accesul secvenial este modul obinuit de utilizare a unui fiier,
implantat fizic pe un suport n care accesarea amplasamentelor este ea nsi secvenial, cum ar fi
banda magnetic.

Un fiier f poate fi deschis pentru citire sau scriere. Unele organizri autorizeaz scrierea ncepnd de la
o nregistrare oarecare. Vom considera c scrierea se face la sfritul fiierului i deschiderea pentru
scriere iniializeaz fiierul n vid.

116) Organizarea logic a fiierelor. Acces direct. Cheie unic

n cadrul organizrilor cu acces direct funciile de acces sunt exprimate ca funcii ale atributelor
nregistrrilor; aceste atribute sunt valori ale diferitor cmpuri. Se numete cheie orice cmp al unei
nregistrri valoarea cruia poate servi la identificarea nregistrrii. Conform organizrii adoptate, una
sau mai multe cmpuri pot servi drept cheie.

ntr-un fiier cu cheie unic fiecare nregistrare conine o singur cheie, care identific nregistrarea fr
ambiguitate; restul nregistrrii este informaia propriu-zis. Dou nregistrri distincte vor avea
totdeauna dou valori diferite ale cheii. Definim o procedur cutare(cheie, al), care pentru orice
valoare a cheii:

sau pune la dispoziie adresa logic al (unic) a nregistrrii pentru care cheia posed valoarea
dat (caz de succes)
sau semnalizeaz cu ajutorul unui mecanism special, c o atare nregistrare nu exist (caz de
eec): excepie, cod de condiie; valoarea al este adresa la care nregistrarea ar putea fi inserat
(valoare special, dac nu mai este spaiu liber).

Procedura cutare servete la realizarea funciilor elementare de acces direct citire(cheie, info),
adugare(cheie, info), suprimare(cheie, info), modificare(cheie, info). Funciile citire, suprimare,
modificare pot conduce la erori, dac procedura cutare eueaz; procedura adugare genereaz o
eroare, dac procedura cutare se termin cu succes.

117) Organizarea logic a fiierelor. Chei multiple

Este cazul cnd pot fi utilizate mai multe chei pentru a desemna o nregistrare. n caz general, pot exista
mai multe nregistrri pentru care o cheie particular are o valoare dat. O cheie, valoarea creia
determin nregistrarea n mod univoc, se numete cheie primar; acest termen este aplicat, prin
extensie, i pentru o combinaie de chei. Tehnica de baz folosit pentru manipularea unui fiier cu chei
multiple este organizarea multilist. Este utilizat cte un indice distinct pentru fiecare cheie. Fiecare
intrare a tabelului indicilor, asociat unei chei concrete, care corespunde unei valori distincte a acestei
chei, puncteaz topul unei liste n care sunt toate nregistrrile pentru care cheia considerat posed
valoarea dat. Pentru realizarea acestor liste fiecare nregistrare trebuie s conin tot atia pointeri
cte chei ale referinelor distincte exist.
118) Organizarea fizic a fiierelor. Implantare secvenial. Implantare non contigu

n acest caz fiecare fiier ocup o mulime de blocuri consecutive n memoria secundar. Este unicul
mod de implantare n cazul unei benzi magnetice: fiierele sunt aranjate consecutiv pe band, fiecare
fiind separat de urmtorul cu ajutorul unui simbol, numit sfrit de fiier (end of file, EOF). Un EOF dublu
marcheaz sfritul prii utilizate a benzii. Descriptorul unui fiier este plasat la nceputul fiierului i,
adesea, repetat la sfritul fiierului. n interiorul fiierului nregistrrile sunt aranjate consecutiv; dac
lungimea lor este variabil, ea va fi prezent la nceputul fiecrei nregistrri. Caracterul EOF este
detectat n mod automat de controlerul mecanismului de derulare a benzii. O operaie cutarea EOF-
ului fiierului permite saltul de la un fiier la altul pentru cutarea unui fiier cu numele dat.

Implantarea secvenial poate fi n egal msur folosit i pentru discuri. Avantajul principal const n
garantarea unui acces secvenial eficient (informaiile cu adrese logice succesive sunt implantate n
blocuri adiacente) permind n acelai timp un acces direct eficient (calcularea adresei fizice pornind de
la adresa logic este foarte simpl i nu cere accesarea discului). Totui, aceast metod prezint
inconveniente grave n cazul n care crearea, distrugerea sau modificarea lungimii unui fiier sunt
operaii frecvente:

memoria secundar devine fragmentat, defragmentarea periodic este costisitoare;


este complicat organizarea modificrii lungimii unui fiier: un fiier poate fi de o lungime mai
mare doar recopiindu-l integral ntr-o zon de memorie mai mare.

Drept consecin, implantarea secvenial pe disc este utilizat doar n cazurile n care dezavantajele
susmenionate pot fi diminuate:

pentru fiierele numrul i lungimea crora nu variaz (de exemplu, fiiere create odat pentru
totdeauna i utilizate mai apoi doar pentru consultare);
sisteme primitive pentru microcalculatoare, cnd simplitatea realizrii este un factor
preponderent.

Implantare non contigu - Dac abandonm restricia contiguitii implantrii, memoria secundar se
transform ntr-o resurs banalizat, blocurile memoriei secundare fiind echivalente din punctul de
vedere al alocrii lor. Pentru nceput introducem informaiile necesare pentru realizarea funciilor de
acces;

119) Organizarea fizic. Blocuri nlnuite. Tabele de implantare. Alocarea memoriei secundare

Blocurile fizice, care conin amplasamente logice consecutive sunt nlnuite ntre ele; pentru aceast
nlnuire trebuie s fie rezervat n fiecare bloc un pointer. Descriptorul conine un pointer la primul i
ultimul bloc i numrul blocurilor ocupate.
Ultimul bloc, care poate fi utilizat parial, trebuie s conin indicaii despre numrul de amplasamente
ocupate. Deci, este necesar un amplasament n fiecare bloc pentru aceast informaie sau cel puin un
bit (indicator) pentru marcarea ultimul bloc. Deoarece exist un pointer la ultimul bloc este simplu s
extindem un fiier, adugnd informaii la sfrit.

Acest mod de alocare este bine adaptat accesului secvenial. Ca rezultat, putem accesa un bloc doar
respectnd nlnuirea; accesul direct este costisitor, deoarece fiecare citire a unui pointer necesit o
accesare a discului. La fel i extinderea altfel, dect la sfrit, este foarte dificil: trebuie s permitem
existena blocurilor parial pline, s prevedem o dubl nlnuire, etc. Utilizarea alocrii nlnuite este
limitat de cazul sistemelor mici, n special pentru organizarea fiierelor pe dischete.

Tabele de implantare - n cazul accesului direct timpul de acces la un bloc trebuie s nu depind de
adresa sa, ceea ce poate fi obinut punnd toi pointerii ntr-un tabel unic de implantare. Descriem mai
multe variante ale acestei metode, care difer prin modul de organizare a tabelului. Problema principal
este garantarea uniformitii timpilor de acces pentru tabelele de lungime mare i permiterea inserrii i
distrugerii blocurilor n orice punct al fiierului.

Tabel unic - Lungimea fiierului este limitat de numrul blocurilor pe care descriptorul le
definete n tabel (el nsui coninndu-se ntr-un numr ntreg de blocuri).
Tabel nlnuit - Tabela de implantare const dintr-o suit de blocuri nlnuite. Putem depi n
acest fel limitarea dimensiunii unui fiier, devine posibil inserarea blocurilor n mijlocul
fiierului, cu condiia rezervrii unor amplasamente libere n tabel. Reorganizarea generat de
inserare este legat de un bloc al tabelului, iar dimensiunea tabelului de implantare este limitat
de costul cutrii n acest tabel. Pentru tabele mari organizarea descris este mai eficace.
Tabele cu mai multe nivele - tabelul de implantare a fiierului este organizat n mod arborescent,
pe niveluri (de obicei, dou sau trei niveluri).
Alocarea memoriei secundare - Problema alocrii memoriei secundare poate fi pus n termeni similari
cu cea a memoriei principale; restriciile principale sunt:

alocarea prin blocuri de lungime fix


costul ridicat al accesului
caracteristicile proprii fiecrui suport: organizarea pe piste, dispozitive de citire-scriere mobile
sau fixe.

Interfaa alocatorului memoriei secundare conine dou primitive:

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