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 sistemde 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.


Page 1 of 16
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.

1. 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).
























Nuc =[t4 (t3-t2)] )* 100/t4
Ncanal = t4-[t1+(t4-t3)*100/t4
Page 2 of 16
2. 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 avem3 procese planificate dupa un algoritmRR

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;










Page 3 of 16
































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.










Page 4 of 16
Schema de organizare a tehnicii SPOOLING






















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;

























Memoria principala - RAM
CANAL
Memoria auxiliara - HDD
Unitatea centrala
Page 5 of 16
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.

Page 6 of 16
1. mutiprocesorarele cu memorie partajata.













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



















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
C M
C M
C M
INTERNET

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

Retea de
interconectare
C C C C C C
C C C C C C
M M M M M M
M M M M M M
Page 7 of 16
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













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;
PC
MASTER
Lucrul cu periferice date
HDD
SLAVE
Prelucrare complexa

LP

Alte periferice
Page 8 of 16
Sisteme de operare Cursul 4

Gestiunea resurselor unui systemde 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).








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.



Lansarea
aplicatiei
Activare Blocare
Deblocare
Interrupt
nelansat
Proces pregatit
in asteptare
Proces activ
Proces
in asteptare
Page 9 of 16













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.

P1
Ra
PR1
M1

P2
Rb
PR2
M2
Page 10 of 16
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:















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.
Memorie virtuala Memorie principala Memorie auxiliara
Page 11 of 16
Sisteme de operare Cursul 5

Moduri de organizare a memoriei virtuale

1. Organizarea la nivel de adresa
















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
















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;
CPU ai
Rezident
Depasire Acces
CPU bj
RVirtual RMemorie
HDD
bj
CPU C
Rezident
Depasire Acces
CPU C
RVirtual RMemorie
HDD
bj
ai bj
P Q
MTP
ai bj
Page 12 of 16
- 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















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
















Adresa ai se incarca:
- S index pentr tabela MTS;
- CP index de cautare in tabela paginii specifice;
- CC adresa cuvantului in pagina;
CPU C
Rezident
Depasire Acces
CPU C
RVirtual RMemorie
HDD
R D
ai bj
S R
MTS
Comparator
C
R
CPU
CC
Rezident
Depasire
Acces pag
CPU
CP
RVirtual
RA
HDD
R D
ai
bj
CP
R
MTS
Comparator
D
R
Acces seg
S
MTP

Q

Q
CC
RBuffer
RM
Page 13 of 16
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.
Page 14 of 16
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 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);
/ Root varful structurii UNIX
bin etc lib dev tmp
Lost and fond
usr
bin lib stud 1 stud 2
Page 15 of 16
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.
Page 16 of 16

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