Aritoni Ovidiu Sisteme de operare 1 Introducere



Yüklə 486,94 Kb.
səhifə4/27
tarix12.01.2019
ölçüsü486,94 Kb.
#96236
1   2   3   4   5   6   7   8   9   ...   27

B. Fişiere

O altă largă categorie de apeluri sistem se referă la sistemul de fişiere. O funcţie majoră a sistemului de operare este de a ascunde particularităţile discurilor şi de a altor echipamente de Intrare/Ieşire şi de a prezenta programatorului intr-un model abstract curat si ingrijit de fisiere independente de dispozitiv .

Apelurile de sistem sunt vădit intenţionate să creeze, să mute, să citească şi să scrie fişiere. Înainte ca un fişier să fie citit, el trebuie să fie deschis, şi după aceasta el trebuie închis după citire, astfel că apelurile-sistem susţin aceste lucruri.

Pentru a furniza un loc unde să fie ţinute fişierele, MINIX are implementat conceptul de director ce desemnează o modalitate de grupare a fişierelor împreună. Un student de exemplu, trebuie să aibă un director pentru fiecare curs la care participă, altul pentru poşta electronică, şi încă un director pentru propria pagină www. Apelurile sistem sunt astfel nevoite să creeze sau să mute directoare. Apelurile sistem sunt prevăzute astfel ca să poată introduce sau scoate fişiere din directoare. Conţinutul unui director este format de obicei din directoare şi fişiere. Acest model oferă de asemenea o structură ierarhică ca în figura următoare:




fig 1-6. Un sistem de fisiere pentru un departament universitar

Procesele şi ierarhia de fişiere sunt organizate ca şi arbori, dar similarităţile se opresc aici. Ierarhia de procese nu este foarte adâncă (nu are mai mult de 3 nivele), în timp ce ierarhia fişierelor are în mod uzual 4, 5 sau chiar mai multe nivele de adâncime. Ierarhia proceselor are în general o viaţă scurtă, de doar câteva minute în timp ce ierarhia directoarelor poate supravieţui ani de zile. Proprietăţile şi modalităţile de protecţie de asemenea diferă de la procese la fişiere. Uzual, doar un părinte-proces poate să aibă controlul sau chiar accesul la un proces-copil, dar mecanismele aproape întotdeauna există pentru a permite fişierelor şi directoarelor să fie citite de catre un grup mai mare nu doar de catre proprietar .


Fiecare fişier cu ierarhia sa de directoare poate fi specificat prin introducerea numelui căii (path name) din vârful ierarhiei de directoare, din directorul administratorului (root directory). Astfel numele căii absolute conţine o listă de directoare ce trebuie traversate din root directory pentru a obţine fişierul, cu slash-uri ce separă componentele. Slashurile de legătură indică faptul că numele căii este absolut.

La fiecare moment, fiecare proces are un director de lucru curent, în care numele căii nu începe cu un slash . Ca de exemplu, în ultima figură, dacă /Faculty/Prof Brown ar fost directorul de lucru, atunci utilizarea numelui de cale Courses/CS101/ ar duce la acelasi fisier ca si numele de cale de ami sus .

Procesele pot schimba directorul lor de lucru prin emiterea unui apel sistem ce specifică noul director de lucru.

Fişierele şi directoarele sunt protejate în MINIX prin asignarea unui cod de protecţie pe 9 biţi. Codul de protecţie conţine 3 câmpuri de biţi, unul pentru proprietar, unul pentru membrii grupului proprietarului şi unul pentru orice altă persoană. Fiecare câmp are un bit pentru accesul în citire, un bit pentru accesul în scriere, şi altul pentru accesul în execuţie. Aceşti 3 biţi sunt cunoscuţi ca biţi rwx. De exemplu, codul de protecţie rwx r-x--x înseamnă că proprietarul poate citi, scrie şi executa fişierul, alţi membrii ai grupului proprietarului pot să citească şi să execute fişierul în timp ce orice altă persoană poate doar să îl execute. Pentru directoare x înseamnă permisiunea de căutare. O literă absolută înseamnă că dreptul respectiv nu este permis.

Înainte ca un fişier să poată fi citit sau scris, el trebuie deschis, moment în care permisiunea este verificată. Dacă accesul este permis, sistemul returnează un întreg mic denumit descriptor de fişier (file descriptor) pentru a-l utiliza în următoarele operaţii. Dacă accesul nu este permis, un cod de eroare este returnat.

Alt concept important în MINIX este montarea sistemului de fişiere. Aproape toate PC – urile au unul sau mai multe drivere de floppy-disk în care floppy-discurile pot fi inserate sau mutate. Pentru a furniza o cale simplă de a ocupa de aceste discuri amovibile (CD-ROM, floppy-disk). MINIX oferă sistemului de fişiere de pe un floppy-disk să fie ataşat arborelui principal de fişiere. Considerăm situaţia din figura următoare:




fig 1-7. (a) Inainte de montare fisierele de pe drive-ul 0 nu sunt accesibile

(b) Dupa montare ele fac parte din ierarhia fisierelor


Înaintare de apelul de montare (MOUNT call), discul RAM conţine fişierul administratorului de sistem sau şi driverul O conţine floppy discul ce conţine la rândul său alt sistem de fişiere.

Ori de câte ori, sistemul de fişiere de pe driverul O nu poate fi utilizat se datorează faptului că nu există un mod de a specifica numele căii. MINIX nu permite ca numele căii să fie prefixat de numele sau numărul unui driver.În schimb, apelurile sistem de montare permit sistemului de fişiere de pe driverul O să fie ataşate sistemului de fişiere ale administratorului de sistem (root) oriunde decide programul ca acestea sa fie atasate .

În ultima figură sistemul de fişiere de pe driverul O a fost montat în directorul b, acesta permiţând accesul la fişierele b/x şi b/y. Dacă directorul b ar fi conţinut orice alte fişiere care nu ar fi fost accesibile în timp ce driverul O a fost montat, prin /b ne-am fi referit la directorul administratorului despre driverul O.

Un alt concept important în MINIX este cel de fişiere speciale. Fişierele speciale fac ca dispozitivele de I/O să arate ca nişte fişiere. Astefel ele pot fi citite si scrise utilizanad aceleasi apeluri sistem care sunt utilizate pentru citirea si scrierea fisierelor .

Există 2 tipuri speciale de fişiere:



  • fişierele speciale de tip bloc (block special files);

  • fişierele speciale de tip caracter (character special files);

Fişierele speciale de tip bloc sunt utilizate pentru a modela dispozitivele constituite din colecţii aleatoare de blocuri adresabile, ca de exemplu discurile. Prin deschiderea unui fişier special şi citirea, să zicem a blocului 4, programul are acces direct asupra celui de-al patrulea bloc de pe dispozitiv, fără să aibe o privire asupra structurii de fişiere ce o conţine. Similar, fişierele speciale de tip caracter sunt utilizate pentru imprimante, modemuri şi alte dispozitive care acceptă un flux de caractere.

Ultima trăsătură pe care o vom trata în această prezentare generală este una care realizează legătura dintre fişiere şi procese : pipe (conductă). Un pipe este un tip de pseudofişier ce poate fi utilizat pentru a conecta două procese împreună ca în figura următoare;





fig 1-8. Doua procese conectate prin pipe
Când procesul A doreşte să transmită informaţii procesului B, el le scrie pe pipe aşa cum ar scrie pe un fişier de ieşire. Astfel comunicarea dintre procese în MINIX arată foarte mult ca fişierele obişnuite pot fi citite sau scrise.In plus crearea unui apel sistem special este singurul mod in care un proces poate sa descopere ca outputul pe care scrie nu este tocmai in fisier ci in pipe .



Yüklə 486,94 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   27




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2022
rəhbərliyinə müraciət

    Ana səhifə