so_teorie

17
Un sistem de operare reprezinta un set de programe care asigura gestionarea resurselor unui sistem de calcul implemenand algoritmi destinati sa maximizeze performantele si realizeaza o interfata intre utilizator si sistemul de calcul, extinzand dar si simplificand setul de operatii disponibile. D.p.d.v al accesului la memorie SO pot fi: UMA,NUMA,NORMA. Sisteme de operare de timp real- trebuie sa opereze in cadrul unor constrangeri de timp si au viteze mari de calcul, raspuns rapid. Task-urile pot fi sporadice (asincron si nepredictibil), aperiodice (ciclu cu perioade de timp variabile) si periodice (ciclitate regulata). D.p.d.v al importantei deadline-ului sistemele de timp real sunt:hard-real time-task-urile trebuie terminate intr-un anumiti interval de timp soft-real time – sunt mai putin restrictive si tolereaza neindeplinirea unei constrangeri de timp) Windows 2000. HAL (Hardware abstraction layer) – izoleaza SO de specificul platformei hardware. Un SO contine 2 mari parti: Partea de Control (se executa in nucleu si realizeaza legatura cu sistemul de calcul), si Partea de Servicii (se excuta in mod utilizator si asigura legatura cu utilizatorul). Structura unui sistem de calcul: hardware (CPU,memorie,dispositive I/O),sistem de operare, programe utilitare,aplicatii, utilizatori. Functiile unui sistem de operare: Interfata cu utillizatorul, gestiunea fisierelor, gestiunea perifericilor, gestiunea memoriei, gestiunea proceselor, tratarea erorilor, gestiunea sistemului. Kernel-ul (nucleul) este inima sistemului de operare si ofera mijloacele primare necesare ca un sistem de calcul sa functioneze. Functii: planificarea proceselor,gestionarea memoriei, administrarea sistemului de fisiere, tratarea erorilor,

Upload: gabriel-enasoaie

Post on 18-Dec-2015

10 views

Category:

Documents


5 download

DESCRIPTION

sisteme de operare teorie linux

TRANSCRIPT

Un sistem de operare reprezinta un set de programe care asigura gestionarea resurselor unui sistem de calcul implemenand algoritmi destinati sa maximizeze performantele si realizeaza o interfata intre utilizator si sistemul de calcul, extinzand dar si simplificand setul de operatii disponibile.D.p.d.v al accesului la memorie SO pot fi: UMA,NUMA,NORMA.Sisteme de operare de timp real- trebuie sa opereze in cadrul unor constrangeri de timp si au viteze mari de calcul, raspuns rapid.Task-urile pot fi sporadice (asincron si nepredictibil), aperiodice (ciclu cu perioade de timp variabile) si periodice (ciclitate regulata).D.p.d.v al importantei deadline-ului sistemele de timp real sunt:hard-real time-task-urile trebuie terminate intr-un anumiti interval de timp soft-real time sunt mai putin restrictive si tolereaza neindeplinirea unei constrangeri de timp)Windows 2000. HAL (Hardware abstraction layer) izoleaza SO de specificul platformei hardware.Un SO contine 2 mari parti: Partea de Control (se executa in nucleu si realizeaza legatura cu sistemul de calcul), si Partea de Servicii (se excuta in mod utilizator si asigura legatura cu utilizatorul).Structura unui sistem de calcul: hardware (CPU,memorie,dispositive I/O),sistem de operare, programe utilitare,aplicatii, utilizatori.Functiile unui sistem de operare: Interfata cu utillizatorul, gestiunea fisierelor, gestiunea perifericilor, gestiunea memoriei, gestiunea proceselor, tratarea erorilor, gestiunea sistemului.Kernel-ul (nucleul) este inima sistemului de operare si ofera mijloacele primare necesare ca un sistem de calcul sa functioneze. Functii: planificarea proceselor,gestionarea memoriei, administrarea sistemului de fisiere, tratarea erorilor, verificarea securitatii, tratarea initiala a apelurilor sistem, interactiunea dintre aplicatii si partea hardware.Tipuri de nucleu: monolit, modular, extensibil, multinivel, micronucleu.Microkernel-sistemul de operare este alcatuit din mai multe procese, fiecare asigurand anumite servicii.Procesul este instant executiei unui program (fisierul executat de proces).Executia unui process se poate face in 2 moduri: mod utilizator procesele au acces numai la propria zona de cod, date si stiva utilizator. mod nucleu procesul contine instructiuni privilegiate si poate avea acces la structurile de date ale nucleului.

Un process este creat: la initializarea sistemului (reboot) la executia unui apel de functie pentru creare de procese (fork) la cererea unui utilizator de creare a unui nou proces la initializarea unui jobUn process este terminat: normal-terminarea prgramului eroare-terminare cu eroare fatal error divide by 0, core dump terminat de un alt processStarile unui process :new (creare), run (executare), blocat (implicare in operatie I/O, prea lent, nepregatit), ready, terminat.Prioritate=baza(60)+utilizare_recenta_CPU/constanta(2)+valoare_nice (pp nula)PCB furnizeaza date cu privire la identificarea procesului, informatii de stare, informatii de control al procesului.Tabela proceselor contine: starea procesului, localizarea procesului in memorie, dimensiunea lui, identificatori atasati utilizatorului si grupului sau, identificatorul procesului, descriptorul evenimentului care a produs trecerea proceslui in starea de asteptare, parametri de planificare pentru obtinerea procesorului, semnale netratate transmise procesului, timp de executie, camp pentru SIGALARM.Zona u contine: pointer la intrarea in tabela proceselor, identificator utilizator real si efectiv, timpi de executie, mod de reactie la semnale, identificatorul terminalului de control, valoarea returnata de o functie sistem, eroare aparuta la apel, parametrii I/O, directorul current, tabela descriptorilor de fisiere utilizator, dim limita a procesului si fiserelor, masca pentru drepturi de acces la fisiere create.Tabela regiunilor per process poate intra in tabela proceselor, in zona u, sau intr-o zona de memorie alocata acestui scop.Contextul unui process: contextul nivel utilizator-segmentul de text, date,stiva-utilizator contextul registrelor-nr de instructiuni,registrul de stare program,de stiva, modul de executie, registri generali contextul nivel nucleu- intrarea in tabela proceselor,zona u, tabela regiunilor per process, stiva nucleuPasii pentru o schimbare de context sunt: decizia schimbarii de context salvarea contextului vechiului proces alegerea unui nou process de catre planificatorul de procese restaurarea contextului noului processUn thread reprezinta unul sau mai multe subtask-uri in cadrul task-ului executat de un proces.Operatii care se pot realiza asupra unui thread: spawn-creare, block-astepare eveniment, unblock-aparitie eveniment, finish-terminare.LWP(lightweight proceses)- intermediar intre thread-urile utilizator si cele kernel (suporta mai multe thread-uri utilizator care vor corespunde unui thread kernel).Zombie-procesul este terminat dar din anumite motive inca mai are structura sa in tabela de procese.In Linux nu exista o distinctive clara intre process si thread, nu este definite o structura de date separate pentru thread-uri.

Sincronizarea este actiunea ce perimite modificare starii unui proces.Zona din program prin care se apeleaza o resursa critica se numeste sectiune critica.Accesul unor procese la resursele critice se face printr-un protocol de excludere mutuala ce presupune sincronizarea starii proceselor si eventual comunicatii intre ele.Un semafor este un mecanism de sincronizare a proceselor. El este caracterizat de valoare si coada de asteptare de tip FIFO si poate fi binar (lucreaza cu valori de 0 si 1) sau intreg (lucreaza cu valori intre n si n). Un semafor are asociat operatile de creare, distrugere, intrare in SC (p), iesire din SC (v).Sectiunile critice trebuie incadrate intre p si v iar un proces nu poate fi distrus in SC.In cazul semafoarelor private numai un singur proces poate aplica p si v asupra lui, celelalte putand aplica doar v. Are starea initiala 0.Sincronizarea prin asteptare activa se poate face numai daca exista variabile comune care sunt testate, iar testul si modificarea variabilelor trebuie sa fie operatii indivizibile. Aceasta are urmatoarele dezavantaje: consuma timp CPU inutil pentru un proces in asteptare,dificultate mare in elaborarea protocoalelor de intrare/iesire.Un monitor reprezinta o structura de date formata din variabile de sincronizare (de conditie), resurse partajate si procedeuri externe sau interne de acces la resurse.Atunci cand se acceseaza o procedura a monitorului un process trece prin starile: asteptare in coada de intrare a monitorului asteptare intr-o coada pe o variabila de conditie(wait) suspendarea prin signal, care reactiveaza un proces in asteptare pe o variabila de conditie executia normal a instructiunilor unei procedure din monitorStarile proceselor in cazul sincronizarii folosind bariere: toate procesele mai putin unul ajung la bariera si sunt blocate; ultimul process ajunge la bariera toate procesele isi continua executia mai departe.Sincronizarea folosind bariere are dezavantajul ca se consuma timp CPU inutil daca nu este echilibrata incarcarea proceselor.Se numeste blocaj situatia in care o resursa ceruta de un process este mentinuta in starea ocupat de catre alt process aflat la randul lui in asteptarea eliberarii unei resurse.Etapele parcurse de un process pentru obtinerea unei resurse sunt: cerere de acces procesul asteapta pana cand cererea este satisfacuta utilizare eliberareResursele pot fi reutilizabile utilizate de un process si apoi eliberate pentru a putea fi utilizate si de alte procese (timp CPU, semafoare, memorie virtuala,fisiere), si consumabile (intreruperi, semnale, mesaje).Un set de procese se afla in starea de interblocare atunci cand un proces din set se afla in asteptarea unui eveniment ce poate fi produs numai de catre un alt process din setul respectiv.Interblocarea apare in sistem daca sunt indeplinite conditiile: excluderea mutuala, ocupare si asteptare, imposibilitatea achizitionarii fortate, asteptare circulara.Graf de alocare a resurselor sistemului-poate descrie starea de interblocare.Daca graful nu contine bucle atunci in sistem nu exista interblocare.Daca fiecare tip de resursa este format dintr-un singur element atunci existenta unei bucle in cadrul grafului arata ca in sistem exista interblocare.Metode de tratare a blocajelor:1)Prevenirea blocajelor: Inlaturearea excluderii mutuala Inlaturearea starii de tip Hold and Wait (la crearea proceselor sa se realizeze cereri pentru toate resursele necesare, blocarea proceselor pana cand se pot satisface simultan cererile, procesele sa poata astepa mult timp eliberarea resurselor, resursele alocate ce pot ramane un timp indelungat nefolosite sa poata fi utilizate de alt process) Inlaturarea planificarii nepreemtive (daca unui proces ii sunt blocate unele cereri, atunci el trebuie sa elibereze resursele alocate, daca un process cere o resursa care este alocata altui process, SO poate preempta al doilea process si sa-I ceara sa elibereze resursa) Inlaturarea asteptarii circulare (definirea unei ordonari liniare a resurselor, odata ce o resursa a fost obtinuta, numai resursele care urmeaza din lista pot fi obtinute)2)Evitarea blocajelor (nu se permite startarea unui process daca cererile de resurse pot duce la blocaj, nu se permit cereri successive de resurse ale unui process daca alocarea lor poate duce la blocaj.3)Detectarea blocajelor (atunci cand SO detecteaza un blocaj se poate aplica una din strategiile pentru a reveni din blocaje: sunt oprite toate procesele blocate starea proceselor blocate este salvata inainte de aparitia blocajului, apoi procesele sunt restartate. Procesele sunt oprite succesiv pana cand se iese din blocaj Alocarea preemtiva a resurselor pana la disparitia blocajului Restartarea proceselor de la un puct anterior aparitiei blocajului Achizitionarea fortata a resurselor de la anumite procese si alocarea lor altor procese pana la disparitia blocajului)4)Algoritmul bancherilor (la creare procesul trebuie sa declare nr maxim de elemente din fiecare tip de resursa care i-ar putea fi necesar, cand procesul formuleaza o cerere trebuie sa se verifice daca va lasa sistemul intr-o stare sigura, daca nu trebuie sa astepte pana cand vor fi eliberate resurse de catre alte procese, sufiecient de multe pentru ca cererea lui sa fie satisfacuta)

Planificarea este functia principala a SO. Avem planificare uniprocesor (task-uri cu resurse independente sau partajate), multiprocessor(procesele din lista de executie formeaza un graf de precedenta), statica(ordine prestabilota de executare) si dinamica (pot aparea variatii in caracteristicele proceselor ceea ce conduce la modificarea prioritatii).Planificarea nepreemtiva- cand un process trece din starea runnig in starea waiting sau cand un process este terminat.Planificarea preemtiva-cand un process trece din starea running in ready sau din starea waiting in ready.Niveluri de planificare- pe termen lung (alegerea job-ului, alocarea resurselor si crearea proceselor), pe termen mediu (evaluari, procese evacuate/readuse in memorie), pe termen scurt (procese read->run si invers, dispercerul de procesoare).Timpul de asteptare al unui process este timpul cand un process asteapta in coada de executie.Timpul de ciclare-de la crearea procesului pana la terminarea executiei lui.Functionarea unui planificator: Modalitatea de interventie stabileste momentele in care planificatorul intra in actiune. Functia de prioritate are ca argument procesele si parametrii sistemului Regula de arbitraj stabileste o ordine in caz de prioritati egale (servirea in ordine cronlogica, circular sau aleatoare)Algoritmi de plaificare:FCFS (first come, first served)-procesele sunt planificare pe masura sosirii lor in coada de executieSJF(shortest job first) nepreemtiv - planificarea se face in functie de timpul de executie cel mai mic.SJF preemtiv-planificarea se face in functie de timpul de executie ramas cel mai mic.PS (priority scheduling)-planificarea se face in functie de prioritate (mica->mare). Se poate introduce un mechanism de prioritati dinamice in care pe masura ce creste timpul de asteptare creste si prioritatea (linux).RR(round-robin)-preemtiv, destinat sistemelor de tip time-sharing si se bazeaza pe distribuirea in mod egal a timpului de procesare intre procese.HRRN(highest response ratio next)-planificarea se face in functie de rata cea mai mare de deservire. Sunt favorizate procesele cu durata cea mai mica de executie.Feedback-sunt penalizate procesele care ruleaza prea mult si se poate ajunge la fenomenul de infometare a proceselor daca nu variem algoritmii de planificare si prioritatile in functie de cozile de asteptare.Liste multinivel: combinative intre algoritmi pe baza de prioritati, round robin si algoritmi pentru tratarea proceselor de aceeasi prioritate.Inversarea prioritatii apare atunci cand un process de prioritate scazuta acceseaza o SC apoi un process de prioritate mare acceseaza si el SC respective si se blocheaza.Pentru a preveni inversarea prioritatii se foloseste mostenirea prioritatii de fiecare data cand un process detine o SC pentru care asteapta si alte procese, I se acorda respectivului proces maximul prioritatii proceselor aflate in asteptare.Efectul de convoi-apare cand o multime de procese au nevoie de o resursa pentru un timp scurt, iar un altul detine resursa pentru un timp mult prea lung blocandu-le pe primele.Pentru Unix avem trei algoritmi (clase) de planificare: real time, kernel, time-shared. Pentru Linux avem trei clase de planificare: FIFO-real time, round-robin real time, non-real-time).

Memoria Cache-contine informatiile cele mai recent utilizate de CPU. Are capacitate mica dar timp de acces foarte rapid.Memoria operativa-contine programele si datele pentru toate procesele existente in sistem. Viteza de acces foarte mare (secundara).Memoria secundara-extenise a memoriei operative, mai lenta, bazata pe mecanisme de memorie virtuala. (are ca support disk-ul magnetic)Memoria expandata-mecanism ce permite ca mai multe chip-uri de memorie operative sa aiba alternativ, acceasi adresa de memorie (memorie expandata ce are ca support memoria interna).Memoria interna=memoria cache+memoria operativa.Memoria de arhivare-este gestionata de utilizator si consta in fisiere, baza de date, rezidente pe diferite suporturi de stocare a informatiei.Adresarea memoriei consta in realizarea legaturii intre un obiect al programului si adresa corespunzatoare din memoria fizica.Fazele translatarii unui program:compilare (module obiect), editare de legaturi (fisier executabil), incarcare (program incarcat in memorie), executie.Functia de translatare a adresei-transformarea adreselor relocabile in adrese fizice.Moduri de adresare: Adresare absoluta Adresare bazata reg general ca registru de baza Adresare indexata-specificarea unui reg index Adresare relative-realizarea de salturi in program Adresare indirecta-invocarea parametrilor actuali din cadrul unui subprogProtectia memoriei-fiecare entitate de memorie alocata are o cheie de protectie (sir de biti-posibilitatile de citire,scriere,executie), iar fiecare entitate de program incarcabila in memorie la un moment dat are o cheie de acces (sir de biti- drepturi de acces).Scheme de alocare a memoriei:1) Alocarea realaLa sistemele monoutlizator gestiunea spatiului cade in sarcina utilizatorului, existand tehnici de suprapunere pentru rularea programelor mari.Alocarea cu partiti fixe (Memory Fix Task- MFT) presupune decuparea memoriei in zone de lungime fixa numite partitii. Alocarea absoluta-pentru programe pregatite de editorul de legaturi pentru a fi rulate intro zona de memorie si numai acolo. Alocarea relocabila-adresarea in partitie se face cu baza si deplasament (adresa de inceput a partitiei se pune in registrul de baza).Alocarea cu partitii variabile(Memory variable task MVT) permite o exploatare mai eficienta a memoriei sistemului de calcul, adica numarul si dimensiuena partitiilor se modifica automat in functie de solicitari, memorie disponibila.

2)Alocarea virtualaAlocarea paginata a memoriei instructiunile si datele fiecarui program sunt impartite in zone de lungime fixa numite pagini virtuale care se pastreaza in memoria secundara. Memoria operativa este impartita in zone de lungime fixa numite pagini fizice sau cadre. Fiecare process are propria lui tabela de pagini, in care este trecuta adresa fizica a paginii virtuale, daca ea este prezenta in memoria operative.Procedura reentranta- folosirea in comun a instructiunilor unei proceduri de catre mai multe programe.Implementarea tabelei de pagina- set de registre specializate (dim redusa), registru specializat-RBTP (dim mare), folosirea unei memorii hardware speciale de dim mici (TLB-translation look-aside buffer)Alocarea segmentata a memoriei-textul unui program poate fi plasat in zone de memorie distincte, fiecare zona continand o bucata din program numita segment.Adresa virtuala=numarul segmentului si deplasamentul in cadrul segmentului. Ei ii corespunde o adresa fizica, corespondenta fiind facuta prin tabela de segmente.Alocarea segmentata si paginate- fiecare process are propria lui tabela de segmente si fiecare segment are propria lui tabela de pagini. Aceasta rezolva problema aparitiei fenomenului de fragmentare.Memorie virtuala-tehnica prin care se poate folosi un disk ca support automat pentru extinderea memoriei interne, programele avand astfel un spatiu de memorie virtual mai mare decat cel al memoriei interne. Astfel programele se pot executa chiar daca acestea nu se afla integral in memorie. Implementare- paginarea la cerere, segmentarea la cerere.Paginarea la cerere-nu se introduce in memorie intreg programul, ci numai cateva pagini, atunci cand sunt necesare. Tabela de pagina a unui process va contine in plus un bit care semnaleaza prezenta/absenta din memorie a paginii respective. Daca se incearca o folosirea unei pagini care nu este in memorie se va genera o eroare de tip pagina lipsa. Incercarea de folosire a unei adrese de memorie nepermise generaza o eroare care duce la inchiderea fortata a programuluiInlocuirea paginii- se elibereaza un cadru care nu este utilizat in acel moment pentru a fi folosit pentru aducerea paginii solicitate in momentul aparitiei erorii de tip pagina lipsa.Algoritmi de inlocuire a paginii:1) FIFO-fiecarei pagini i se asociaza momentul de timp la care a fost adusa in memorie si cand este necesara o inlocuire se alege cea mai veche pagina. Anomalia lui Belady- rata de apartiei a erorilor creste odata cu numarul de cadre alocate, in loc sa scada.2) LRU(last recently used)-asociaza fiecarei pagini momentul de timp al ultimei utilizatri, pagina cu cea mai lunga durata de neutilizare este aleasa pentru inlocuire. Este posibil ca o pagina sa fie inlocuita chiar daca ea urmeaza a fi referita din nou la momentul urmator.3) A doua sansa (clock algorithm)-daca bitul de referire este 0, pagina va fi inlocuita, daca este 1 atunci el va primi valoarea 0, timpul de sosire primeste valoarea momentului current. Paginii care I s-a dat a doua sansa ramane in memorie pana cand toate celelalte pagini au fost inlocuite sau au primit si ele o a doua sansa. Daca o pagina este folosita destul de des pentru ca valoarea bitului sau sa ramana 1, ea nu va fi inlocuita niciodata.4) LFU(last frequently used)-inregistreaza numarul de referii pentru fiecare pagina. Este selectata pentru inlocuire pagina care are cel mai mic numar de referiri. Dezavantaj-daca la inceputul programului o pagina este intens folosita, si apoi nu mai este utilizata deloc ea va ramane in memorie deoarece numarul ei de referiri va fi destul de mare.5) MFU(most frequently used)-considera ca o pagina cu nr mic de referiri este probabil cea mai recent introdusa si este posbil sa fie folosita in continuare. Are insa o implementare foarte costisitoare.Alocarea cadrelor-metode:1) First-fit(primei potriviri)-memoria solicitata este alocata in prima zona in care incape. 2) Best-fit(celei mai bune potriviri)-se cauta acea zona libera care dupa alocare lasa cel mai putin spatiu liber. Dez: Timp suplimentar de cautare,fragmentare interna excesiva.3) Worst-fit(celei mai rele potriviri)-se cauta zonele libere care dupa alocare lasa cel mai mult spatiu liber. Timp de cautare mare.4) Buddy-system(prin camarazi)-exploateaza reprezentarea binara a adreselor si faptul ca dimensiunea memoriei interne este multiplu de 2.Pentru Linux: Adresarea memoriei virtuala-tabela cu trei niveluri, Alocarea Paginilor Fizice (algoritmul Buddy), inlocuirea paginii (algorimul a doua sansa), alocarea memorie pentru kernel (Buddy)

SGF- sistemul de gestiune a fisierelorSGF- operatii la nivel de fisier:denumire si manipulare fisiere, persistenta datelor, mecanisme de acces concurrent al proceselor la informatiile stocate.Fisiere- asambluri de informatii grupate de catre SOArticol/inregistrare-mica entitate din cadrul unui fisier la care utilizatorul are acces la un moment dat.Clasificarea fisierelor:D.p.d.v structural secventa de octeti, secventa de inregistrari, structura arborescenta.D.p.d.v. al tipului: normale(ASCII sau binare), directoare, special, legaturi simboliceDescriptorul de fisier contine informatii de descriere a unui fisier(identificatorul fisierului, adresele fizice pe care le ocupa, acces, organizare si calendaristice).Modul de organizare-aranjarea articolelor sau unele parti din ele astfel incat sa permita modurile de acees dorite.1)Fisiere de tip pile(gramada)-datele sunt colectate in ordinea in care apar, scopul este acumularea si salvarea unei cantitati de date, nu au o structura bine definite, accesul la un articol poate fi costisitot ca timp.2)Fisiere cu organizarea secventiala-inregistrarile au format fix, cautarea implica procesarea tuturor articolelor, inserearea de articole noi se face greu.3)Fisiere cu acces direct prin pozitie- articole cu fromat fix, plasate in sectoare vecine.4)Fisiere inverse-contin pentru fiecare cheie specificata de utilizator adresele disc la care se afla articolele care contin cheia respectiva.5)Fisiere multilista-fiecarei chei dintr-un articol ii este atasata un pointer catre articolul urmator care contine aceeasi cheie.6)Fisiere secvential-indexate-articolele sunt scrise pe support in acces secvential si plasate in orindea crescatoare a indexului. Articolele sunt grupate in blocuri de informatii numite pagini.7)Fisiere selective-materializarea functiei de regasire printr-un simplu calcul efectuat de CPU. Acces direct prin continut.8)Fisiere organizate folosind B-arbori-cheile sunt furnizate in orice ordine, cautarea se face strict in acces direct.Fiecare nod contine m locuri in care pot fi memorate m chei. B+arboreal contine chei numai in nodurile terminale ale arborelui. B-arborele extins-acces relative, adaugarea unei informatii suplimentare pe langa fiecare pointer din B-arbore, nr intreg ce contine subarborele indicat de pointer.SGF- operatii la nivel de disk- implementarea unui sistem de regasire a fisierelor, evidenta spatiului neutilizat, alocarea spatiului pentru fisiere disc.Sistemul de directoare(cataloage)-realizeaza legatura intru numele atribuit de utilizator unui fisier si localizarea fizica pe disc a informatiei associate acestuia: mapare.Tipuri de structura pentru directoare:1) Directoare cu un singur nivel-toate fisierele de pe disk sunt in acelasi director2) Directoare cu doua nivele-la nivel superior MFD (master file director) care contine pointeri catre UFD (user file directory), de unde se face accesul catre fisierele utilizatorului respectiv.3) Directoare cu structura de arbore-extenise a celei cu doua nivele4) Directoare cu structura de graf aciclic-permit ca anumite fisiere sa fie accesibile din mai multe directoare parinte.Alocarea spatiului pentru fisiere pe disc: Alocarea statica(prealocare)-specificarea dimensiunii spatiului ce va fi ocupat de fisier. Alocare dinamica-fisierul va ocupa atat spatiu cat este necesarFAT-file allocation table-pastreaza informatii legate de spatiul alocat fiecarui fisier.Alocarea contigua-un fisier ocupa un set de adrese consecutive pe disc.Alocarea inlantuita-evitarea fenomenului de fragmentare, fiecare fisier este inregistrat intr-un sir de blocuri legate intre ele printr-o lista inlantuita.Alocarea indexata-pe langa blocurile atasate fisierului , se creeaza un bloc special, numit bloc de index, lucru ce ajuta la accesarea directa.Evidenta spatiului liber pe disc se face pe baza fisierelor inverse si a listelor inlantuite.Planificarea accesului la disc- etape pozitionarea furcii pe care se afla capetele de citire pe cilindrul care contine sectorul dorit asteptarea rotatiei discului pana cand sectorul trece prin fata capului de citire/scriere schimbul de informatie propriu-zisAlgoritmi de planificare a accesului la disc(pozitionarea capetelor de citire/scriere a discului discul are 199 cilindri):1)FCFS-executa cererile in ordinea in care au venit (neeficient, necesita miscari de pozitionare)2)SSTF(shortest seek time first)-executa cererea care solicita cea mai scurta pozitionare, fata de locul current (poate amana indefinit anumite cereri deoarece coada de asteptare se modifca permanent)3)SCAN-miscarea capetelor incepe de la ultimul cilindru, mergand spre primul si servind toate cererile pe care le intalneste. Cand ajunge la cererea de la cea mai mica adresa, capetele isi schimba sensul de mers, servind cererile aparute ulterior, s.a.m.d. Este posibil ca unele cereri sa astepte doua parcurgeri pana sunt servite.4)C-SCAN (circular SCAN) servirea cererilor se face numai cand capetele se deplaseaza de la adrese mici spre adrese mari. Cand ajunge la ultimul cilindru, capetele sunt retrase automat pe cilindrul 0.5)LOOK-capul de citire/scriere se deplaseaza spre cilindrul cel mai apropiat la care se gaseste.6)C-LOOK-capetele se deplaseaza cat de mult posibil in directia in care exista cereri, dupa care, daca nu mai sunt cereri in directia curenta, este schimbata directia. La schimbarea directiei nu este servita nicio cerere.Algoritmii de servire a cererilor la disc sunt implementati in controller-ul de disc. SO va trimite cererile in ordinea FCFS, iar controller-ul le va prelua si le va servi intr-o ordine optima.

Managementul swap-ului: este utilizat in functie de felul in care SO implementeaza algoritmii de acces la memorie pot exista mai multe spatii de swap se poate afla in sistemul normal de fisiere (Windows) se poate afla pe o partitie create specialZona swap serveste pentru salvarea temporara a unor segmente de procese, care asteapta in memoria interna a calculatorului.Virtual File Systems(VFS)-modalitate de implementare a sistemelor de fisiere in diverse sisteme de operare, asemanatoare principiilor POO. Permit utilizarea acelorasi apeluri sistem pentru a accesa diverse sisteme de fisiere.Journal File System(JFS)-scrierile pe disc sunt realizare asincron datorita faptului ca, dupa terminarea unei cereri de scriere pe disc, informatiile sunt inregistrate in log-uri si apoi facute modificarile in tabelele descriptorilor de fisier. Ajantaj-refacerea rapida a datelor, dezavantaj-scrieri suplimentare pe disc, spatiu ocupat in plus.High Performance File System(HPFS)-organizeaza discul in volume si rezerva primele 18 sectoare pentru blocul de boot, superbloc si blocul de rezerva. Aceste blocuri contin informatiile de control care sunt utilizate pentru initializarea sistemului, gestiunea sistemului de fisiere si refacerea lui dupa producerea de erori.Windows-sistem de fisiere:NTFS,FAT16, FAT32. Sistemul de fisiere FAT foloseste ca mechanism de alocare lista inlantuita de indecsi. Tabela FAT reda modul de inlantuire a blocurilor ce alcatuiesc un fisier. NTFS foloseste o structura de tip B-arbore pentru descrierea localizarii pe disc. Fiecare volum NTFS contine o Master File Table ce cuprinde informatii despre fisierele din volum.Sisteme de fisiere distribuite-permit distribuirea sistemului de fisiere pe masini diferite fizic, pastrand totusi datele disponile de pe aceste masini. Avantaje: back-up usor al datelor si managementul acestora.Un sistem de fiiere distribuit permite accesul la fiiere care aparin mai multor sisteme de calcul, printr-o reea de calculatoare. Este deci posibil ca mai multi utilizatori s mpart fiiere i alte resurse. Sistemele de fiiere distribuite pot include faciliti de replicare transparent i toleran la erori,Unix- NFS, RFS; Windows-CODA, Active Directory,AFS.

Sistemul de I/O se ocupa de generarea de comenzi catre dispoztive, tratarea intreruperilor, tratarea erorilor posibile, interfata utilizator. Dispozitivele de I/O sunt formate dintr-o componenta mecanica si una electronica numita controller. Acesta poate gestiona mai multe dispositive identice.Comunicatia dintre controller si unitatea centrala se face prin intermediul unor registere care in general fac parte din spatial de adrese de memorie (registre mapate in memorie). Aceste registre au timp de acces mai redus si sunt utilizare de SO pentru a inscrie parametri si comenzi si pentru a citi starea dispozitivului respective si codurile de eroare.Direct Memory Acces (DMA)- operatia de copiere in memorie este efectuata de catre controller si nu de catre unitatea central. Astfel se poate transfera ma efficient un volum mare de date. Continutul blocului de date este stocat in buffer-ul intern si verificat, controllerul asteapta eliberarea magistralei sistemului si transfera intregul bloc de memorie.Buffer-ele sistemului de I/O au aparut din cauza urmatoarelor probleme: paginile care pastreaza data ce trebuie transferata trebuie sa ramana in memorie limitari la adresa actiunilor sistemului de operare procesele nu pot fi transferate complet in swap sau pot apare blocaje.Sistemul de I/O are urmatoarea structura hardware: dispositive bloc(discul), dispositive character(imprimanta, mouse, terminale,adaptoare de retea). Se mai aduga unitatile de banda si ceasul de timp real.Sistemul de I/O are urmatoare structura software: rutine de tratare a intreruperilor, driver, programe sistem independente de dispozitvie, primitive de nivel utilizator.Drivere-programe ce transforma apelurile functiilor I/O ale utilizatorului in cereri specifice componentei hardware.Primitive de nivel utilizator-au rolul de a transfera parametrii lor apelurilor sistem pe care le initiaza si pot oferi posibilitatea formatarii datelor de intrare/iesire.Job spooling-tehnica de inmagazinare pe benzi sau disk-uri.