Documente Academic
Documente Profesional
Documente Cultură
Una dintre funcţiile majore ale unui sistem de operare este de a optimiza utilizarea tuturor
resurselor unui sistem de calcul: timp unitate centrală de prelucrare, spaţiu de memorie internă,
canale, registre, dispozitive periferice de intrere/ieşire, biblioteci, programatori, utilizatori,
rezultate ale prelucrării.
Cu o planificare foarte riguroasă este posibilă apropierea de încărcarea maximă a unităţii
centrale de prelucrare şi a procesoarelor de intrare/ieşire (canale). Chiar şi în acest caz însă, sunt
menţinute neocupate alte resurse ale sistemului de calcul: memoria internă, memoria externă,
dispozitivele periferice de intrare/ieşire.
La stabilirea unei modalităţi de planificare a lucrărilor trebuie cunoscute foarte precis
obiectivele- uneori subiective şi contradictorii- de realizare simultană a următoarelor activităţi:
- execuţia unui volum cât mai mare de lucrări în unitatea de timp - dacă se rulează lucrări cu timp
redus de execuţie;
- reducerea timpilor de aşteptare ai unităţii centrale de prelucrare - dacă se execută lucrări cu
volum mare de calcule şi număr redus de operaţii de intrare/ieşire;
- încărcarea dispozitivelor periferice la capacitate maximă - când se execută lucrări cu volum
mare de operaţii de intrare/ieşire şi volum redus de calcule.
Se observă că unele obiective se exclud prin natura lor.
Se poate aprecia în general, că pentru stabilirea unei strategii de planificare a execuţiei
unor lucrări în condiţiile impuse de limitările hardware, se vor urmări obiectivele:
- maximizarea ratei de ieşire a lucrărilor;
- minimizarea timpului mediu de răspuns;
- servirea unui număr cât mai mare de utilizatori, într-un timp acceptabil;
- reducerea costurilor pentru serviciile prestate;
- posibilitatea execuţiei unor lucrări cu prioritate (printr-un cost mai ridicat);
- încărcarea echilibrată a unităţii centrale de prelucrare şi a sistemului de intrare/ieşire;
- folosirea cu un randament ridicat a spaţiului de memorie internă şi externă;
- distribuirea prelucrării unui program, prin împărţirea acestuia în sarcini mai mici (taskuri) ce se
pot executa în paralel (multitasking);
- integrarea unui număr cât mai mare de utilizatori (clienţi) în jurul unui procesor central
(server).
13
2.2. Monoprogramarea
14
t1 - momentul iniţierii de către CPU a unei operaţii de intrare;
t2 - momentul în care CPU are nevoie de datele solicitate de la dispozitivul periferic de intrare, pe
care nu le are deoarece nu s-a terminat operaţia de citire;
t3 - se termină operaţia de citire şi se reia execuţia programului de către CPU cu datele solicitate;
t4 - momentul încheierii execuţiei programului.
Pentru aprecierea eficienţei utilizării acestor procesoare ( CPU, DMAC), se calculează
randamentul de utilizare (în % ):
2.3. Multiprogramarea
15
2.3.1. Planificarea execuţiei lucrărilor
Sistemele de calcul ce utilizează tehnica multiprogramării sunt prevăzute cu o
componentă a sistemului de operare numită monitor de planificare a lucrărilor, care alege dintr-
un grup de programe în ordinea sosirilor, pe acelea potrivit cărora timpul neocupat al CPU să fie
minim; există o limită pentru numărul de lucrări ce pot fi executate simultan (dacă acest număr
este depăşit, este invocată o procedură pentru selecţia lucrărilor, iar cele neselectate rămân în
aşteptare) funcţie de memoria afectată utilizatorilor.
Procesul de planificare are două funcţii distincte:
- asigurarea priorităţii;
- alocarea resurselor care utilizează prioritatea.
Algoritmii de planificare presupun că lucrările sunt ordonate pe bază de prioritate, sub
forma firelor de aşteptare. Alegerea unui anumit algoritm se va face după obiectivele urmărite;
dintre algoritmii frecvent utilizaţi în multiprogramare se menţionează:
-STF Shortest proccessing Time First - lucrarea cu cel mai scurt timp de prelucrare este prima
executată, urmăreşte minimizarea timpului de trecere prin sistem a lucrărilor ce durează puţin;
-LTF Longest proccessing Time First - lucrarea cu cel mai lung timp de prelucrare este prima
executată, urmăreşte reducerea timpului total de execuţie a lucrărilor;
-SMF Smallest Memory requirment First - lucrarea ce necesită cel mai mic spaţiu de memorie
este prima executată;
-LMF Largest Memory requirment First - lucrarea ce necesită cel mai mare spaţiu de memorie
este prima executată;
-FIFO First Input First Output - lucrările sunt executate în ordinea lansării în execuţie;
-LIFO Last Input First Output - lucrările sunt executate în ordinea inversă lansării în execuţie;
-Round-Robin sau planificarea circulară, fiecare lucrare având alocată o cuantă de timp (interval
de 1-10 ms), după care controlul este comutat la următoarea lucrare.
16
Fig.2.2. Sincronizarea activităţilor dintre CPU şi procesorul de comunicaţie în multiprogramare
17
2.4. Sistemul spooling (Simultaneous Peripheral Operations On Line)
18
2.5. Sisteme TIME – SHARING (Sisteme cu timp divizat)
19
- minimizarea timpului necesar comutării între procese;
- posibilitatea lansării în execuţie a oricărui proces care aşteaptă, lansare ce se execută în funcţie
de priorităţi;
- încărcarea echilibrată a sistemului;
- stabilirea locului fiecărui program în firul de aşteptare, în funcţie de prioritate;
- alocarea spaţiului de memorie internă: zona de memorie şi adresa unde se încarcă fiecare
program;
- tratarea întreruperilor prin analiza motivului întreruperii care va determină acţiunea ce se
întreprinde în continuare;
- gestiunea fişierelor prin care se determină locul unde sunt memorate colecţiile de date,
regăsirea lor rapidă, parola de protecţie ş.a..
Modul de lucru al unui sistem time-sharing este redat în fig. 2.4.
2.6. Multiprelucrarea
Dacă mai multe programe se găsesc în acelaşi timp în memoria internă şi partajează
resursele sistemului de calcul atunci sistemul utilizează tehnica multiprogramării; dacă în
multiprogramare se folosesc mai multe procesoare, atunci sistemul utilizează tehnica de gestiune
denumită în multiprelucrare. Se poate aprecia că multiprogramarea este un concept software, iar
multiprelucrarea un concept hardware.
Un sistem de calcul utilizează tehnica multiprelucrării dacă cel puţin două CPU
lucrează în paralel; unităţile centrale de prelucrare pot executa instrucţiunile unui singur program
sau pot executa instrucţiuni din programe diferite.
Oportunitatea multiprelucrării constă în :
20
- încărcarea partajată a programelor pentru execuţie, fiecare procesor având acces la firul de
aşteptare alcătuit din lucrările solicitate a se executa;
- separarea diverselor funcţii ale sistemului, existând câte un program responsabil pentru fiecare
funcţie;
- creşterea fiabilităţii sistemului, pentru care există două posibilităţi:
- duplexarea sistemelor, prin care una sau mai multe componente hardware sunt dublate, una
fiind în activitate iar cealaltă va fi activată la apariţia unui defect al primei componente; pe durata
funcţionării corecte a procesorului principal, procesorul secundar poate fi folosit pentru alte
operaţii;
- sisteme duale, sunt sistemele în care două procesoare centrale prelucrează simultan acelaşi
program de aplicaţie, periodic verificându-se reciproc privind validarea rezultatelor.
Dar masterul se poate utiliza şi ca interfaţă între slave şi colecţii voluminoase de date
existente în memoria externă, situaţie în care este referit ca "back-end processor" fiind
responsabil de gestiunea colecţiei de date (fig.2.6.)
21
Fig.2.6. Back-end processor
22
Fig.2.7.d) memorie unică şi CPU master/slave
23
EXERCIŢII
24