Sunteți pe pagina 1din 16

Sisteme de operare Cursul 1 Un sistem de calcul actual se compune din unul sau mai multe procesorare, dintr.

.o memorie interna, dintr.o serie de dispozitive de stocare, din placi de retea si alte dispozitive. A scrie programe direct pentru lucrul cu aceste dispozitive este destul de greu si nu intotdeauna putem obtine o eficienta si o optimizare maxima. De aceea intre HW si aplicatiile noaste se interpune un SW, numit sistem de operare, care are rolul unei interfete mai prietenoase intre HW si SW. Organizarea unui sistem de calcul Baze de date / CAD CAM Computer Aided Design / Browser / Jocuri Editoare de texte / Compilatoare interpretoare / Editoare de legaturi Nucleul Limbaj masina (Assembly) Microarhitectura Dispozitive electronice Dispozitivele electronice sunt constituite din totalitatea circuitelor electronice, a firelor si a a dispozitivelor periferice. Gruparea acestor dispozitive pe functii constituie ceea ce se numeste microarhitectura calculatoarelor. Modul in care datele se misca in calculatoare poate fi comandat de catre un SW special numeric CPU, sau direct de catre dispozitivele HW. Combinatia dintre microarhitectura si limbajul masina constituie ISA (Instruction SET Architecture) Limbajul masinii este compus dintr.un se de 50 pana la 300 de instructiuni care se pot executa fie intr.un ciclu masina, fie in mai multe cicluri masina (ASM) Spre exemplu: Daca dorim sa scriem un program care citeste sau scrie niste blocuri de date pe hard in limbaj masina, ar trebui sa scriem niste informatii in niste registre, cum ar fi : adresa de pe HDD, adresa din memorie, nr de octeti care urmeaza a fi transferati, directia in care se executa operatia. Mai complicate este situatia in care analizam si raspunsul HDD.ului in care incheie operatia. Sistemul de operare ne ajuta sa scapam de aceasta complexitate a HDD.ului sin e da posibilitatea sa scriem programele in limbaje de nivel inalt care permit o exprimare formala : read block from file Nucleul este partea cea mai condensate a sistemului de operare si el contine toate functionalitatile necesare unui sistem de calcul. SW nucleului lucreaza de obicei in modul de lucru numit kernel (sau supervisor) nu este accesibil utilizatorului sau programatorului. Programele de servicii si control ruleaza in calculator in modul utilizator, aceasta insemnand ca un utilizator poate avea acces la ele si acesta le poate schimba cu programele proprii. Nu acelasi lucru se poate intampla si in cazul nucleului, daca un utilizator vrea sa schimbe un editor de texte nu este nici o problema, dar ii este interzis sa schimbe rutina de ceas. In general, HW ofera familia care protejeaza nucleul SO. Aplicatiile - ultimul nivel sunt programele de aplicatie, care pot fi create fie de utilizator, fie pot fi cumparate de la firmele de software. Functiile unui SO Sistemele de operare trebuie sa indeplineasca doua functii de baza - extinderea masinii se refera la abstractia oferita de catre SO, care ne izoleaza de complexitatea HW sin e pune in fata unei masini virtuale mult mai usor de programat de catre utilizator. Modul de realizare al acestei abstractizari este foarte complex, dar poate fi sintetizat in cateva cuvinte, prin faptul ca SO pune la dispozitia utilizatorului o serie de functii, care pot fi accesate numai utilizand niste instructiuni speciale, numite apeluir de sistem. - gestionarea resurselor unui sistem de calcul intr.un calculator, de regula in memoria principala coexista mai multe lucrari in acelasi timp, care concura pentru resursele calculatorului. De aceea SO trebuie sa stie in orice moment cine, ce sau pentru cat timp utilizeaza o anumita resursa. Aceasta concurenta pentru resurse se accentueaza in mediul multiutilizator sau in retea. SO este cel care gestioneaza toate resursele. Gestiunea resurselor, numita si multiplexare (partajare) se realizeaza in 2 feluri : in timp si in spatiu. La multiplexare in timp o resursa este utilizata in mod secvential, fiecare lucrare primind resursa pe rand CPU, imprimanta. Multiplexarea in spatiu se realizeaza prin acordarea une parti dintr.o resursa fiecarei aplicatii memoria, HDD.

Sisteme de operare Cursul 2 Tehnici de exploatare a sistemelor de calcul Una dintre functiile de baza a unui sistem de operare este aceea de a optimiza utilizarea tuturor resurselor dintr.un sistem de calcul : timp - unitate centrala, memorie exploatare spatiu de memorie, registre, dispozitive periferice, rezultate ale prelucrarilor etc. La stabilirea unei strategii de planificare trebuie sa ne stabilim obiectivele care multe de ori sunt subiective si contradictorii, si care trebuie sa realizeze simultan urmatoarele cerinte: - executia unui volum cat mai mare de lucrari in unitatea de timp, aceeasta in cazul in care avem de.a face cu lucrari cu timp scurt de executie; - reducerea timpului de asteptare a unitatii centrale (cand avem lucrari care au de executie mari); - incarcarea dispozitivelor perferice la capacitatea maxima, atunci cand avem lucrari cu un timp mai scurt de procesare dar cu operatii de intrare iesire intense. Monoprogramarea tehnica ce s.a aplicat la DOS; aceasta tehnica presupune o executie secventiala a lucrarilor intr.un sistem de calcul; Caracteristici: - planificarea lucrarilor se realizeaza strict secvential dupa o ordine prestabilita; - la momentul executiei fiecare lucrare detine toate resursele sistemului; - in momentul executiei fiecarei lucrari I se acociaza un singur process astfel ca atunci cand apare o operatie de intrare iesire, CPU este obligat sa astepte terminarea acesteia pentru a putea continua executia lucrarii initiale; Obiectivul urmarit de aceasta metoda este reducerea timpului mediu petrecut de o lucrare in masina Executia lucrarilor in monoprogramare In aceasta tehnica de programare exista un asa numit procesor de comunicatie care se ocupa de transferal datelor intre memoria principala (RAM) si memoria auxiliara (HDD) DMA Direct Memory Access NPR (Not Processor Request). 1.

Nuc =[t4 (t3-t2)] )* 100/t4 Ncanal = t4-[t1+(t4-t3)*100/t4

Multiprogramare (Multitasking) primele forme de Windows 3.1; aceasta metoda presupune existenta simultana in memorie a mai multor lucrari. Aceasta face ca atunci cand procesorul se afla intr.o stare de asteptare sa poata fi preluat de o alta lucrare care are nevoie de el, imbunatatindu.se astfel productivitatea sitemului de calcul respective. Caracteristici: - existenta simultana a mai multor lucrari in memorie; - existenta unui mecanism de trecere de la o lucrare la alta; - existenta unui mechanism de protectie intr.e lucrari astfel incat lucrarile sa nu se derajzeze in mod recriproc si cu atat mai mult san u deranjeze sistemul de operare; - exista un mechanism pentru gestionarea resurselor fizice si logice a acordate lucrarilor curente; Planificarea executiei lucrarilor La aceasta tehnica SO are o componenta numita monitor de planificare al lucrarilor; acest monitor trebuie sa aleaga dintr.un grup de programe pe acelea care duc la o optimizare a exploatarii sistemului de calcul. Acest monitor de planificare are doua functii principale. Una este asigurarea prioritatilor, iar cea de.a doua este alocarea resurselor care utilizeaza aceste prioritati. (fiind mai multe resurse apar conflicte si trebuie facuta o disciplina; aceats treaba revine SO.ului asigura o echitate de lucru in masina ai sa se desfasoare toate procesele; exista ideea de prioriotati; fiicare lucrare din comp primea cate o cuanta de timp, si se forma o coada; prin evolutia PC.urilor este nevoie de info mult mai rapid si reteaua nu suporta timpuri mari de asteptare si daca lucrarile nu au o lista de priotitari). Pentru a putea pune in aplicatie ea va utiliza niste algoritmi de planificare. Toti acesti algoritmi presupum faptul ca lucrarile au fost deja ordonate intr.o coada de asteptare. - STF (Shortest Processing Time First) se executa mai intai lucrarile cu timp de executie cel mai scurt de executie; - LTF (Longest Processing Time First) se executa mai intai lucrarile cu timpul cel mai lung de executie; - SMF(Smallest Memory Requirement First) se executa mai intai lucrarile care solicita cea mai putina memorie; - LMF (Largest Memory Requirement First) se executa mai intai lucrarile care solicita cea mai multa memorie; - FIFO (First In, First Out) lucrarile se executa in ordinea aparitiei; - LIFO (Last In, First Out) lucrarile se executa in ordinea inverse aparitiei;\ - Round Robin acest algoritm presupune existenta unei cozi circulare de lucrari, in care fiecare lucrare primeste o cuanta de timp; cea mai folosita pana in present; Sincronizarea activitatii CPU cu cea a canalului spre exemplu in RAM avem 3 procese planificate dupa un algoritm RR La T1 are loc operatia de intrare iesire pentru P1; La T2, P1 se opreste are nevoie de informatii care nu este inca transfer si se porneste P2; La T3 se termina operatie de intrare iesire pentru P1; La T4 se initiaza o operatie de intrare iesire pentru P2; La T5, P2 se opresete si porneste procesul P3; La T6 se initiaza o operatie de intrare iesire pentru P3; La T7 se termina operatie de intrare iesire pentru P2; La T8 se termina operatia de intrare iesire pentru P La T9 se operese P3 si in acelasi timp se reporneste P1; La T10 se termina P1 si se reporneste P2; La T11 se termina P2; La T12 se termina transferal pt P3 si se reporneste P3; La T13 se termina P3;

2.

3.

Tehnica SPOOLING Simmultaneous Peripherials Operations Online Activitatea de suprapunere a operatiilor de intrare, prelucrare si iesire prin intermediul tehnicii SPOOLING duce la incarcarea maxima a dispozitivelor periferice, precum si la oferirea unei game de facilitate noi catre utilizator. Caracteristici : - se utilizeaza o memorie auxiliara de capacitate mare cu acces direct (DMA) la care se adauga multitasking.ul - se realizeaza o incarcare maxima a dispozitivelor periferice; - !! se realizeaza o serie de buffere de memorie care simuleaza dispozitivele fizice prin niste dispozitive periferice virutale care permit : 1. incarcarea unor lucrari in timp ce se executa altele; 2. printarea a unor lucrari in timp ce se executa alte lucrari; 3. executatea unor lucrari intr.o alta ordine decat cea naturala; 4. Posibilitatea schimbarii prioritatii lucrarilor.

Schema de organizare a tehnicii SPOOLING

Memoria auxiliara - HDD

CANAL Memoria principala - RAM

Unitatea centrala P1 si P2 lucrari introduce de la terminal; P3 si P4 lucrari in asteptare; P5 P8 lucrari in executie in RAM P11 si P12 sunt in curs de imprimare;

Sisteme de operare Cursul 3 4. Tehnica cu divizarea timpului (time sharing)

Tehnica de exploatare time sharing este caracterizata de utilizarea concurenta a resurselo unui sismtem de calcul de catre n utilizatori conectati local sau la distanta. Caracteristici: - caracteristici generale o protectia memoriei la aceste sisteme (server) fiecare program primeste o zona de memorie care de obicei se numeste partitie si nu are voie sa acceseze partitiile celorlalte programe existand o protectie reciproca intre programe; o independenta utilizatorilor care este caracterizata prin faptul ca fiecare lucrare a unui utilizator primeste o cuanta de timp pentru executie. Atunci cand lucrarea termina aceasta cuanta, dar nu si.a terminat activitatea programul sau lucrarea va fi evacuate in memoria externa unde va astepta intr.o coada sa.i vina randul la procesor; - caracteristici HW: o memorie interna de capacitate mare si o unitate centrala foarte rapid care ofera un timp de raspuns foarte bun; o un cead de timp real care sa genereze intreruperi periodice necesare comutarii lucrarilor; o o memorie auxiliara (externa) cu acces direct (DMA) care se permita lucrul cu perifericele fara interventia unitatii centrale; o un sistem de comunicatii compus din circuite, modemuri concentratoare, comutatoare (switch); o terminale si uc.uri rapide; - caracteristici SW: o alocarea resurselor conform unui algoritm de planificare; o stabilirea locului fiecarei lucrari in coada de asteptare pentru processor; o un mechanism de acordare a prioritatilor pentru planificari; o alocarea de memorie pentru fiecare lucrare si stabilirea adresei de incarcare a lucrarii; o tratarea intreruperilor prin analizarea intreruperii si prin lansarea in executie a rutinei specifice care stie sa o resolve; o prelucrarea colectiilor de date prin care se determina locul in care se afla aceste corectii cum pot fi accesate, parole si alte operatii legate de securitate. Multiprelucrare Un SO este exploatat in multiprelucrare daca cel putin doua UC lucreaza in parallel. Oricata putere de calcul s.ar accorda ea va fi intotdeauna insuficienta pentru utlilizator. CPU cu care lucram azi incep sa se apropie de limitele fizice. 30 cm/nsec viteza luminii in vid; 20 cm/nsec in orice mediu; 10 GHz => 2cm; 100 GHz => 2nm; Problema nu este miniaturizarea. Frecventa foarte mare trasforma energia in microunde. In momentul in care se intra in domeniul microundelor apare problema disiparii caldurii. Solutiile de viitor sunt doua : calculul paralel si calculatoarele biologice. O masina paralela presupune executarea sau rezolvarea a unei probleme pe mai multe procesoare dintr.o data. La ora actuala exista commercial calculatoare care au si 1000 de CPU incapsulate, iar in viitorul apropiat se vor produce si multiprocesoare cu 1 milion de unitati centrale. La o astfel de masina paralele, fiecare cpu poate fi un processor care functioneaza la frecventa normala (la zi). Problema apare atunci cand vrem sa facem aceste procesoare sa lucreze la o singura problema deoarece ele trebuie sa comunice intre ele. Cu alte cuvinte ne intereseaza foarte mult tegnica de interconectare. Diferentele intre masinile paralele constau in scara timpului, scala distantei si organizarea logica implicata. Toate calculatoarele parale comunica intre ele prin mesaje care sunt niste secvente de biti prestabilite.

1. mutiprocesorarele cu memorie partajata. C C C C C C

Memorie partajata (la care se afla conectate toate unitatile centrale)

Toate aceste UC comunica intre ele prin intermediul memoriei partajate. Fiecare dintre aceste unitati centrala are acces la orice zona din memoria partajata. Viteza cu care se poate comunica in aceste sisteme este cuprins intre 10 si 50 de nanosecunde. Desi pare simplu, acest system este foarte greu de implementat practice deoarece proiectarea protocoalelor de comunicatie si de sincronizare este foarte dificila. 2. Multicalculator cu pasarea mesajelor M M M M M M

Retea de interconectare

La aceasta organizare toate unitatile centrale dispun si de o memorie proprie. Fiecare unitate centrala nu are acces decat la aceasta memorie. Timpul de acces este intre 10 si 50 de microsecunde. Aceasta metoda are avantajul ca este mult mai usor de implementat practic. Fiecare din cele doua metode avand adeptii ei. 3. Calculatoare distribuite C M INTERNET C M C M C M

Aceasta organizare se mai numeste si slab cuplata deoarece calculatoarele sunt imprastiate pe un spatiu foarte mare. Timpul de acces este de 10 si 50 de milisecunde. Pe un calculator parallel se poate rula, fie un singur program, fie programe diferite. Din punct de vedere al gradului de planificare si al sistemului de comunicatie, intalnim in practica doua clase mari. 1. Sisteme de calcul parallel cu procesoare omogene 2. Sisteme de calcul parallel cu procesoare diferite. a. System master/slave LP
PC MASTER Lucrul cu periferice date

Alte periferice

HDD

SLAVE Prelucrare complexa

Intr.un system master / slave unul dintre procesoare este degrevat de procesarile complexe. El ramanand sa se ocupe numai de problemele de comunicatie lucrul cu perifericele si coordonarea activitatii din system. Acest processor se numeste master sau front-end processor. Procesorul slave se va ocupa in aceasta situatie strict de prelucrarile complexe. Daca procesorul master mai este utilizat si ca interfata intre slave.uri si colectiile mari de date atunci el se va numi back-end processor. Oportunitati in a folosi multiprelucrarea incarcarea partajata a programelor cand fiecare UC isi allege si prelucreaza o anumita lucrare din coada de asteptare; separarea diferitelor functii ale unui system de calcul cand fiecare processor va fi destinat unei anumite functii dintr.un system de calcul; cresterea fiabilitatii sitemului prin : o duplexarea sitemelor in care un CPU se ocupa de o anumita problema, el fiind dublat de un alt CPU care sta in stand by, care nu intra in actiune decat in cazul in care procesorul principal are o problema (defectiune). In unele siteme de calcul procesorul de rezerva poate fi folosit pentru alte activitati, atunci cand functioneaza cel principal; o sisteme duale in care doua procesoare se ocupa simultan de aceeasi problema, verificandu.se periodic in mod reciproc;

Sisteme de operare Cursul 4 Gestiunea resurselor unui system de calcul Pentru gestionarea resurselor, un SO trebuie sa indeplineasca unele activitati: - evidentierea fiecarei resurse partajate; - adoptarea unei strategii pentru a determina in orice clipa carui porces si cat dintr.o resursa la un moment de timp si pentru cat timp sa i se aloce; - alocarea resurselor, iar dupa terminarea lucrului cu acestea dezalocarea lor; SO are programele de gestiune impartite in 3 categorii dupa functiile pe care le indeplinesc: a) gestiunea microprocesorului si proceselor; - evidentierea proceselor existente ceea ce se numeste traffic controller; - stabilirea proceselor existente, cat timp processor au nevoie fiecare si pentru cat timp li se va aloca procesorul: processor scheduler (fiecare process primeste o cuanta de timp pe care va avea la dispozitie microprocesorul, pregatirea acestuia pentru lucru facandu.se prin alocarea unor register HW); - alocarea procesorului si dezalocarea lui cand procesul fie renunta la acesta fie s.a terminat, fie i.a expirat cuanta de timp; b) gestiunea memoriei; - evidentierea cantitatii de memorie libera, ce procese urmeaza sa primeasca aceasta memorie, sa se asigurea incarcarea proceselor in zona respective cu asigurarea protectiei; - eliberarea (dezalocarea) zonelor de memorie; c) gestiunea dispozitivelor periferice; - evidentierea tuturor dispozitivelor periferice, a controllerelor si a dispozitevelor de cand I/O traffica controller; - alocara fiecarui dispozitiv periferic in functie de optimizarea utilizarii acestuia simultan sau secvential; - dezalocarea dispozitivelor periferice si a unitatilor de canal; a) Gestiunea microprocesorului si a proceselor Datorita insuficientei resurselor (CPU), SO trebuie sa gestioneze si sa reglementeze alocarea acestora. Din aceasta cauza ele trebuie sa urmareasca in permanenta procesele intre inceputul acestora si terminarea lor. Procesele nu partajeaza numai resurse HW ci si informatii si canale de comunicatie. SO trebuie sa creeze un mediu echitabil de lucru. Procesele interactioneaza intre ele in doua moduri: indirect (cand concura pentru aceeasi resursa), direct (cand partajeaza simultan aceeasi resursa). Lansarea aplicatiei Activare Proces activ Deblocare Interblocarea proceselor (dead lock) Interblocarea presupune asteptarea reciproca a doua sau mai multe procese care ocupa doua sau mai multe resurse a caror eliberare se interconditioneaza. Exista doua procese P1 si P2 si doua resurse Ra si Rb. Procesul P1 ocupa resursa Ra si P2 oucpa resursa Rb. Sa presupumem ca la un moment dat procesul P1 are nevoie de resursa Rb. Acesta intra in asteptare deoarece Rb este ocupata de P2. Se poate ca in acelasi timp P2 sa aiba nevoie de resursa Ra si acesta intra in asteptare doarece Ra este ocupata de P1. Cele doua procese au ajunsin starea de interblocare si se vor astepta la infinit. Blocare

Interrupt nelansat

Proces pregatit in asteptare

Proces in asteptare

PR1 P1

PR2 P2

M1 Ra

M2 Rb

Metode de evitare a interblocarii: - prealocarea resurselor partajate alocarea resurselor in avans; - organizarea secventiala a cererilor si ierarhizarea resurselor astfel incat atunci cand o anumita resursa de la un anumit nivel este accesata sa nu mai poata fi accesate decat resurse de pe nivelurile superioare; - excluderea mutuala a proceselor prin care anumite zone din program sunt astfel facute incat sa nu poata fi accesate in acelasi timp; Sincornizarea proceselor - o activitate care un anumit process poate fi interrupt la un anumit moment de timp pana la aparitia unor evenimente generate de catre o alta activitate. Mecanismul de sincronizare Sincronizarea prin lock bit Un prim astfel de mechanism este constituit din bitii de atentie (lock bit). Fiecare resursa dispune de un astfel de bit care respecta urmatoarea conventie 0 disponibil / 1 ocupat. De exemplu o baza de date cu un astfel de bit poate fi accesata numai daca bitul de atentie este 0; in momentul in care baza este accesata, bitul de atentie trece pe 1. Daca bitul de atentie este pe 1, atunci procesul se va bloca in asteptare. Aceasta metoda prezinta un mare dezavantaj : se pierde foarte mult timp datorita investigarii periodice a bitului de atentie. Sincronizarea prin semafoare Semaforul asigura mijloacele necesare pentru intreruperea executiei unui process pana la aparitia unor anumite conditii. Din punct de vedere mathematic, semaforul este un cuplu format din 2 variabile vs si qs in care vs este o variabila numar intreg, iar qs este o coada in care se vor aseza procesele care opresc in fata semaforului. Semaforul dispune si de 2 primitive P si U (submultimi) care au rolul de a deschide / inchide semaforul. S=1 => Un process care ajunge la semafor face P si primitive poate avea doua atitudini. Daca semaforul esre deschis permite procesului accesul la resursa inchizand in acelasi timp semaforul. Daca semaforul este inchis atunci P va bloca procesul in fata semaforului asezandu.l in coada qs. Atunci cand un process iti termina treaba cu resurs dirijat de semafor acesta va landa in executie primitive V care va deschide semaforul si va elibera din coada qs un nou process in cazul in care acesta exista. Resursa aflata intre cele 2 primitive se numeste sectiune critica. Primitiva P permite intrarea, primitive V permite iesirea. Sincronizarea prin monitoare Monitorul permite o structurare superioara a proceselor concurente in raport cu semafoarele. Spre deosebire de semafoare, monitoarele contin informatii despre toate resursele partajate si modul lor de lucru intr.o zona numita declaratia monitorului. In plus monitorul contine si toate rutinele care stiu sa opereze cu o anumita resursa. Accesara unui monitor specific de catre un process se face prin excluderea mutuala (un process care are nevoie de o resursa va accesa un astfel de monitor. Daca un alt process doreste sa acceseze in acelasi timp monitorul el va fi blocat inr.o coada de asteptare pana la eliberarea monitorului are loc o excludere mutuala automata.

Comunicarea de tip send / receive Fiecare process dispune de o rutina de tip send si de una receive. Comunicarea directa prin cutii postale fiecare process creeaza o memorie tampon (buffer) care se comporta ca un dispozitiv de intrare iesire virtual si astfel fiecare process poate citi din buffer. Gestiunea memoriei Un system de calcul are de obicei mai multe dispozitive de memorare care pot fi insa in final impartite in 2 niveluri : memoria principala (interna, de obicei RAM) si memoria auxiliara (externa, de obicei HDD). Scopul sitemului de operare este de a decide impartirea informatiei intre aceste doua niveluri. Acest lucru se face in idea cresterii vitezei de executie a programelor concrete. Activitatea de gestionare a memoriei se realizeaza pe baza a trei algoritmi. - algoritmul de transfer care spune cand un bloc de informatie trebuie adus din HDD in RAM in timpul executiei / in avans de executie; - algoritmul de plasare care stabileste zona de memorie libera in care se va plasa blocul adus din memoria auxiliara; - algoritmul de reamplasare care stabileste momentul si blocurile care trebuie reamplasate in cadrul unui process; Conceptul de memorie virtuala constituie o combinatie intre HW si SW care ofera utilizatorului o serie de avantaje de operare dince care cel mai importane este un spatie mai mare de adresa logica. Adresa logica sau spatiul de adresa virtuala constituie domeniul de definitie a lui Ft : Ad. Virtuala -> in spatiul de adrese fizice. Aceasta functie de transferare este realizata de catre o combinatie HW si SW numita unitatea de management a memoriei (MMU Memory Management Unit) care se afla in subordonarea sistemului de operare. La baza conceptului de memorie virtuala stau trei notiuni: - spatiul de adresa fizica; - spatiul de adresa logica; - functia de translatare; Functia de translatare are la baza 2 elemente pagina (unitatea de memorie de dimensiune fixa) si segmental (o unitate de dimensiune variabila dar intre limite predefinite. Exemplu:

Memorie virtuala

Memorie principala

Memorie auxiliara

A = {0,,n} logic B={0,.,m} fizic dim A>>dim B Ft: A->B aceasta este o functie dependenta de timp deoarece memoria trebuie alocata la un anumit moment de timp Ft: A-> B U {multimea vida} Ft (ai) = bj informatia se afla in RAM Ft (ai) = 0 informatia se alfa in HDD si se va ridica un semnal care va intrerupe precesl si va da legatura unei rutine specializate care va incarca informatia necesara din memoria aux in RAM dupa care procesul se reia.

Sisteme de operare Cursul 5 Moduri de organizare a memoriei virtuale 1. Organizarea la nivel de adresa RVirtual ai RMemorie bj

CPU

ai

bj

CPU

bj Rezident Depasire Acces

HDD

La acest mod de organizare se lucreaza cu date la nivel de bloc. Procesul lanseaza adresa logica (virtuala) ai care se va memora in registrul RV; cu ajutorul acestei adrese se determina in tabela Ft locatia adresei fizice bj (ai este un index in tabela respective); bj se incarca in registrul RM si reprezinta adresa fizica a informatiei. - atunci cand RV este pus pe 0 si registrul de acces pus pe 1 => informatia esre deja adusa in memoria RAM (interna) bj<>0 (bj!=0) - bj=0 => registul resident are valoarea 1 si informatia nu este incarcata in memorie. Se pornesc cei 3 algoritmi ai memoriei virtuale care vor incarca blocul lipsa in memoria interna dupa care registrul resident devine 0 si se actualizeaza tabela Ft. Dezavantajul acestei metorde este ca blocul fin de dimensiune mica avem nevoie de foarte multe adrese si tabela Ft este foarte mare ocupand multa memorie RAM. 2. Organizarea la nivel de pagina RVirtual C P MTP RMemorie C Q

CPU

ai

bj

CPU

bj Rezident Depasire Acces

HDD

Pagina se compune din mai multe blocuri => avem granularitate mai mare de lucru. Pagina virtuala este acelasi lucru cu pagina fizica. - atunci cand RM (q) <> 0 pagina este prezenta in memoria interna, iar registrul resident = 0 si acces 1;

in situatia in care RM(Q)=0 atunci cand registrul resident este 1, se pornesc cei 3 algoritmi ai memoriei virtualae si pagina este incarcata in memoria interna facandu.se in acelasi timp si actualizarea tabelei MTP si a registrelor. Acest mod de organizare permite programului sa aiba incarcata numai partea necesara la momentul executiei in memoria interna. Exista un schimb permanent de pagina intre RAM si HDD.

3. Organizarea la nivel de segment ai RVirtual C S Comparator RMemorie C R C R bj

CPU

CPU

R Rezident Depasire Acces

HDD

MTS

Segmentul este o structura de date cu dimensiune variabila el putandu.se dimensiona dupa logica programului. Segmentulu este variabil intre niste limite. In registrul RV se incarca adresa virtuala compusa din doua campuri. S index de cautare in tabela MTS la adresa cuvantului din segment. In memoria MTS la adresa data e S se gasesc RD care se incarca in registrul buffer : R adresa de baza a segmentului, iar D reprezinta dimensiunea segmentului; aceasta dimensiune intra intr.un comparator unde se verifica adresa de cuvant astfel incat ca san u depaseasca limita superioara a segmentului. - RM(R) <> 0 cand segmental se afla in memorie; - RM(R) = 0 cand segmental nu se afla in memorie. 4. Organizarea la nivel de segment paginat RVirtual CPU ai
CC CP

RM Comparator RA
CP

MTP

CC

bj

CPU

S D R RBuffer

R HDD

MTS Rezident Depasire


Acces pag Acces seg

Adresa ai se incarca: - S index pentr tabela MTS; - CP index de cautare in tabela paginii specifice; - CC adresa cuvantului in pagina;

Inregistrarea din tabela mTS are doua campuri R care reprezinta indexul de cautare in MTP pentru a gasi adresa de baza a tabelei pentru pagina, iar D reprezinta dimensiunea segmentului in numarul de paginii ( Q = adresa fizica de baza a paginii; CC adresa cuvantului).

SISTEMUL DE OPERARE UNIX (1970) Nucleul este partea cea mai importanta a sistemului de operare care asigura intreaga functionalitate a sistemului de calcul. El indeplinest doua functii primare : - planificarea si executia protocoalelor in multiprogramare; - gestiunea sistemului de fisiere; In jurul nucleului se dezvolta si restul sistemului de operare. Nucleul are o caracteristica aparte: este resident (ramane in memoria RAM de la pornirea pana la oprirea calculatorului in timp ce restul sistemului se incarca doar atunci cand este necesar. La sistemul de operare UNIX nucleul ocupa in general un Mb de memorie. Nucleul are in sarcina patru functii principale: - interfata cu HW; - administrarea sistemului de fisiere; - gestiunea memoriei; - planificarea si executarea joburilor.

Sisteme de operare Cursul 6 Functii ale nucleului 1. Interfata cu HW Nucleul este cel chemat sa ascunda complexitatea HW. Sistemul de operare Unix a fost primul system de operare scris intr.un limbaj de nivel superior (C/C++). Acest lucru asigura sistemelor UNIX a foarte buna portabilitate. Aceasta insemnand la schimnbarea unei platforme de calcul este necesara rescrierea a 10 pana la 50% din nucleul sistemului de operare. 2.. Administrarea sistemului de fisiere In sistemele de operare UNIX fisierele sunt memorate pe HDD sub forma de blocuri (unitati de date care au cea mai mica granularitate, sunt acelasi lucru cu clusterele din Win; un bloc de date are 4KB). Nucleul sistemului de operare detine intreaga gestiune a blocurilor aflate pe HDD. El trebuie sa stie ce blocuri sunt ocupate de fiecare fisier, ce blocuri sunt libere, ce blocuri sunt defecte, ce blocuri vor inlocui blocurile defecte etc. Tot nucleul este cel care trebuie sa stie cine este proprietarul unui anumit fisier si ce drepturi aferente are fisierul. In sistemele de operare UNIX, toate fisierele sunt private ca un sir de octeti astfel incat oricand se poate scrie pe un dispozitiv character cu character. Toate dispozitivele in sistemele UNIX sunt privite ca fisiere. Atunci cand se creeaza un utilizator acesta primeste in mod automat un director de resedinta numit home directory in care are toate drepturile. La SO UNIX sistemul de fisiere este organizat sub forma unui arbore de directoare cu radacina in sus. / bin etc lib dev Root varful structurii tmp
Lost and fond

UNIX usr

bin

lib

stud 1

stud 2

bin binary directorul care contine in forma binara (executabila) toate comenzile si utilitarele UNIX; etc directorul care pastreaza toate comezile si utilitarele necesare administrarii sistemului; lib library contine toate bibliotecile de system necesare compilatoarelor, in speta C/C++; dev device acest director contine numele tutoror dispozitivelor periferice instalate sau nu in system, ele sunt niste pointeri catre driverele dispozitivelor periferice; tmp temporary acest director pastreaza toate fisierele temporare, este accesibil tuturor utilizatorului; tot ce se afla in acest director este sters la repornirea sistemului; lost and found acest director este folosit de catre utilitarul care intretine sistemul de fisiere (FSCH File System Check); usr directorul in care se gasesc toate directorarele de resedinta ale utilizatorului; in interiorul acestuia pot aparea bin si lib in care utilizatorii isi pot aduce biblioteci sau comenzi pe care utilizatorii vor sa le partajeze; UNIX este un fisier; el contine nucleul sistemului de operare si care se incarca in momentul in care pornim calculatorul; (vmlinux); 3. Administrarea memoriei Sistemele de operare UNIX utilizeaza conceptul de memorie virtuala paginata adica nucleul face un permanent schimb de pagini intre memori RAM si HDD si viceversa. Paginile sunt unitati de memorie de dimensiune fixa. Aceasta dimensiune poate fi insa stabilita de catre administratorul de system atunci cand se genereaza sistemul. Operatia de transfer intre memorie si HHD si invers se numeste in UNIX paging.UNIX.ul utilizeaza pentru aceasta operatie o partitie special ape HDD numita /dev/swap (este o zona statica dimensinea RAM x 1,5; la Win se lucreaza cu un fisier dynamic care se modifica in functie de spatiul disponibil pagefile.sys);

4. Lansarea si executarea joburilor Sunt sisteme de operare multiutilizator si multiprelucrare (multiuser / multitasking) aceasta inseamna ca fiecare utilizator poate avea la un moment dat incarcate in memorie mai multe aplicatii simultane. Fiecare dintre ele va primi la un moment dat o cuanta de timp in care are dreptul sa utilizeze CPU. In afara de aceste aplicatii in sistemele UNIX exista si o serie de aplicatii (procese) care ruleaza in background. Cand un proces isi termina cuanta de timp sau rateaza sa o foloseasca in totalitate el va fi asezat intr.o coada de asteptare. In sistemele UNIX exista si alte cozi de asteptate (la dispozitivele periferice). Sistemele UNIX folosesc pentru planificarea joburilor algortimul round robin dar cu prioritati. Diferitele sisteme UNIX utilizeaza variante ale acestui algoritm dar in principiu joburilor cu operatii de I/E intensive au prioritati mai mari, iar joburile care ruleaza in background au prioritatile cele mai mici. Un job cu o prioritate mai mare se aseaza in fata in coada de asteptare. Nucleul va recalcula aceste prioritati la intervale de timp bine stabilite pentru a creea un mediu de exploatare echitabil. Sistemul de operare, respectiv nucleul are incorporat si un system de securitate care are grija ca procesele sa nu se perturbe in mod reciproc. UNIX Shell Shell.ul este un program scris in limbajul C, proiectat pentru a ajuta utilizatorul sa comunice cu nucleul sistemului de operare. Practic shell.ul este un translator de comenzi de nivel inalt in comenzi intelese de nucleul sistemului de operare. Shell.ul este deci un interpretor de comenzi care lucreaza ca o cuarta pentru cele ~400 de comenzi si utilitare cu care UNIX.ul vine in mod standard. Din punct de vedere al nucleului shell.ul este un program oarecare, in timp ce pentru utilizator el este legatura vitala cu nucleul. Shell.ul furnizeaza mediul si mijloacele pentru a scrie niste programe numite shell scripts. Aceste fisiere sunt fisiere de tip lot de comenzi : autoexec batch Shell.ul ne ofera posilbilitatea de programare structurate. Acest lucru ne permite sa scriem programe destul de sophisticate. Diferenta intre un program scris intr.un limbaj de script si unul scris in C, de ex, este aceea ca acest program se executa mai incet deoarece este interpretat, in timp ce programul in C este compilat. Efortul de programare este mult mai mare intr.un limbaj de nivel inalt decat intr.un limbaj de script.