Sunteți pe pagina 1din 19

3.

Tehnici de exploatare a sistemelor de calcul


3.1. Tehnica monoprogramarii

3.2. Tehnica multiprogramarii

3.3. Tehnica SPOOLING

3.4. Exploatarea sistemelor de calcul în time-sharing

3.5. Exploatarea sistemelor de calcul în timp real

3.6. Exploatarea sistemelor în retea de calculatoare

3. Tehnici de exploatare a sistemelor de calcul


Funcţia sistemului de operare de optimizare a utilizării resurselor sistemului de
calcul este realizată în mod diferit, de către sistemul de operare, în funcţie de
tehnica de exploatare a sistemului de calcul folosită.

Tehnica de exploatare a unui sistem de calcul se referă la modalităţile utilizate


de sistemul de operare pentru planificarea execuţiei programelor şi pentru
gestionarea resurselor solicitate.

Trebuie avute în vedere următoarele aspecte legate de execuţia programelor:

 resursele sistemului sunt folosite neuniform în timpul execuţiei unui


program: în orice moment al execuţiei unui program vor exista resurse
neutilizate de către acesta;
 caracterul secvenţial al execuţiei unui program impune o anumită ordine
în utilizarea resurselor; rezultă că, la un moment dat, execuţia unui
program poate fi condiţionată de existenţa şi de disponibilitatea unei
resurse solicitate;
 diferitele componente ale sistemului de calcul, care concură la
executarea unui program, au viteze de lucru diferite; asta înseamnă că
activitatea unei componente hardware poate să fie temporizată de viteza
de lucru a alteia, cu care colaborează în timpul execuţiei programului (de
exemplu, preluarea datelor de pe un suport de memorie externă este mult
mai lentă decât prelucrarea lor, de exemplu utilizând UAL).
Rezultă că, în general, se poate obţine o utilizare mai eficientă a resurselor în
condiţiile partajării resurselor între mai multe programe care se execută
concurent. În aceste condiţii se poate obţine o reducere a timpilor de neutilizare
pentru fiecare resursă din sistem şi o micşorare a timpului total de execuţie,
pentru acelaşi volum de lucrări executate.

Din acest motiv, s-au dezvoltat mai multe tehnici de exploatare a sistemelor de
calcul, care să asigure execuţia cât mai eficientă a programelor. Fiecare tehnică
de exploatare a sistemelor de calcul se particularizează prin obiectivele pe care
şi le propune, în funcţie de care sunt definite componentele sistemului de
operare cu rol în gestionarea resurselor, care fac parte din componenta de
comandă şi control a sistemului de operare.

3.1. Tehnica monoprogramării

Monoprogramarea este o tehnică de exploatare pentru sistemele seriale.


Obiectivul acestei tehnici este automatizarea lansării în execuţie a lucrărilor
(programelor). Pentru aceasta, lucrările sunt organizate secvenţial, în loturi de
lucrări şi lansate automat în execuţie.

Lansarea în execuţie a unei lucrări se face, în cadrul lotului din care face parte,
secvenţial, adică respectând condiţiile:

 o lucrare se lansează în execuţie numai după încheierea execuţiei lucrării


care o precede;
 ordinea de lansare în execuţie a lucrărilor este strict ordinea în care se
află lucrările în lotul de lucrări;
 la un moment dat, toate resursele sistemului sunt puse la dispoziţia
lucrării aflate în execuţie.

Putem spune, deci, că planificarea execuţiei lucrărilor se face prin intermediul


lotului de lucrări. Acest mod de organizare a prelucrărilor se numeşte
prelucrare batch (pe loturi sau pachete), iar sistemele de operare care utilizează
această tehnică de exploatare se numesc sisteme de operare batch (BPS - Batch
Processing Systems).

Lansarea în execuţie a lucrărilor din lotul de lucrări se face automat, sub


controlul componentei sistemului de operare numită monitor de înlănţuiri.
Modul de exploatare batch a sistemului de calcul a fost caracteristic perioadei
până la sfârşitul anilor ’70, când suporţii de memorie externă ofereau, în
general, posibilitatea organizării secvenţiale a datelor (banda magnetică
reprezenta suportul principal de memorie externă).

În prezent, modul de exploatare în loturi poate fi folosit atunci când anumite


seturi de prelucrări se execută periodic, în aceeaşi ordine, şi când nu este
necesară coordonarea interactivă a execuţiei lor.

Exemplu: sub MS-DOS pot fi generate fişiere de comenzi care definesc o


secvenţă de programe şi o ordine de execuţie a lor; un astfel de fişier de
comenzi defineşte un lot de lucrări care poate fi executat prin lansarea în
execuţie a fişierului de comenzi.

Avantajul utilizării modului de prelucrare în monoprogramare este realizarea


automatizării lansării în execuţie a lucrărilor.

Inconvenientele sunt determinate de:

 timpul mare de răspuns al sistemului (toţi utilizatorii primesc rezultatul


prelucrărilor numai după executarea întregului lot);
 eficienţa scăzută în utilizarea resurselor sistemului (toate resursele sunt
afectate, pe rând, câte unei singure lucrări în execuţie).

Creşterea eficienţei sistemelor batch se poate realiza prin implementarea unor


metode software care să diminueze decalajul de performanţă între
componentele hardware ale sistemului de calcul. De exemplu, pentru
micşorarea timpului de aşteptare al UCP în cazul operaţiilor de intrare/ieşire, se
pot folosi următoarele soluţii:

 utilizarea bufferelor de intrare/ieşire. Acestea sunt zone din memoria


internă dedicate pentru schimbul de informaţii cu echipamentele de
intrare/ieşire. Schimbul de date cu echipamentele I/O se realizează în doi
paşi:
o un pas rapid, între memoria internă şi buffer, sub controlul UCP
o un pas mai lent, la viteza echipamentului I/O, între buffer şi
echipamentul I/O, sub controlul unităţii de canal corespunzătoare
dispozitivului I/O; acest pas nu necesită controlul UCP care, în
acest timp, îşi poate continua activitatea.
 în sistemele moderne, viteza operaţiilor I/O se poate mări utilizând
funcţii cache de citire/scriere. Memoria cache a dispozitivului periferic
poate fi o memorie dedicată sau poate fi o zonă din memoria RAM.
Transferul de date cu dispozitivul periferic se face prin intermediul
memoriei cache, tot în doi paşi; diferenţa faţă de lucrul cu bufferele I/O
constă în faptul că, în cazul utilizării memoriei cache, apare funcţia de
predicţie care stabileşte care este volumul de date, din vecinătatea
datelor care se transferă, care are cea mai mare probabilitate de a fi
solicitat în următorul interval de timp; aceste date vor fi transferate în
avans, între dispozitivul I/O şi memoria cache. Programul care
controlează acest transfer şi care asigură şi funcţia de predicţie face parte
din sistemul de operare.

Exemplu: la MS-DOS, variantele mai mari de 5.0, este programul


SMARTDRV; la Windows95 este programul VCache.

3.2. Tehnica multiprogramării

Am văzut că execuţia concurentă a programelor permite o utilizare mai


eficientă a resurselor sistemului de calcul.

Multiprogramarea este tehnica de exploatare a sistemelor de calcul care


permite existenţa simultană în memoria internă a mai multor programe care se
execută concurent, în partiţii fixe de memorie, cu restricţia ca ele să nu
folosească în acelaşi timp aceeaşi resursă.

Obiectivul multiprogramării este de a face posibilă execuţia unui număr mai


mare de programe într-un interval de timp, prin optimizarea utilizării resurselor
sistemului de calcul.

Organizarea execuţiei în multiprogramare a lucrărilor se face după următoarele


reguli:

 lucrările sunt organizate în loturi;


 fiecare lot de lucrări are afectată o partiţie fixă în memoria internă;

O partiţie de memorie trebuie să fie o zonă contiguă de memorie, adică o zonă


de memorie formată numai din locaţii de memorie adiacente. O partiţie are o
anumită lungime şi o adresă fixă.

 în cadrul fiecărui lot, lucrările sunt executate secvenţial, fiind lansate


automat în execuţie; pentru fiecare program lansat în execuţie se
generează un proces în partiţia corespunzătoare lotului;
 sub controlul sistemului de operare, UCP comută de la o partiţie la alta,
pentru a realiza executarea concurentă a proceselor; comutarea se face în
momentul în care UCP nu este utilizată de procesul respectiv (de
exemplu, UCP aşteaptă terminarea unei operaţii I/O); comutarea între
procese se face în urma unor evenimente interne proceselor care se
execută (evenimente generate de procese);
 fiecare partiţie are asociată o prioritate de execuţie;
 resursele sistemului de calcul sunt alocate proceselor, conform
solicitărilor acestora şi în funcţie de disponibilitatea resurselor; în cazul
solicitării unei resurse care nu este disponibilă, procesul respectiv intră
în aşteptare, până la eliberarea resursei; ordinea de alocare a resurselor
între procesele care solicită aceeaşi resursă este determinată de
prioritatea de execuţie determinată de prioritatea partiţiei (procesele cu
prioritate mai mare au acces la aceeaşi resursă înaintea celor cu prioritate
mai mică);
 sistemul de calcul dispune de un sistem de întreruperi, prin intermediul
căruia se semnalează apariţia unui eveniment care poate fi cauza
comutării între procese.

Funcţiile pe care le asigură un sistem de operare în multiprogramare sunt:

 lansarea automată în execuţie a lucrărilor unui lot, prin intermediul


monitorului de înlănţuiri, ca la sistemele în monoprogramare;
 gestionarea execuţiei concurente a proceselor încărcate în cele n partiţii,
prin alocarea succesivă a UCP fiecăruia; comutarea între procese are loc
la momentele determinate de procese; componenta sistemului de operare
care gestionează comutarea între procese a UCP este numită
planificator al procesorului (CPU Scheduller);

 gestionarea alocării aceleiaşi resurse între mai multe procese, conform


priorităţii partiţiilor;
 asigurarea protecţiei între lucrările încărcate în memoria internă pentru
execuţie, astfel încât execuţia unui proces să nu altereze rezultatele
execuţiei celorlalte procese.

Se observă o creştere a complexităţii sistemului de operare, comparativ cu


sistemele de operare în monoprogramare.

Ca efect al utilizării multiprogramării se poate constata:


 o utilizare mai eficientă a resurselor sistemului, în primul rând a
resurselor critice: UCP şi memoria internă
 creşterea volumului de lucrări executate într-un anumit interval de timp.

Numărul şi dimensiunea partiţiilor din sistem depinde de capacitatea memoriei


interne. Rezultă de aici principalul inconvenient al multiprogramării: numărul
şi dimensiunea programelor care pot fi executate concomitent este limitat de
numărul şi dimensiunea partiţiilor definite în sistem. Pentru înlăturarea acestui
inconvenient se poate recurge la creşterea capacităţii memoriei interne, fizic
sau logic.

O metodă de mărire logică a capacităţii memoriei interne este prin utilizarea


procedeului de swapping; o alta este prin utilizarea memoriei virtuale. Ambele
metode sunt folosite pentru realizarea prelucrărilor concurente, în sistemele
interactive.

Swapping-ul este o metodă de lucru cu memoria internă, care permite


gestionarea execuţiei în paralel a mai multor procese. Într-un sistem care
utilizează swapping-ul, un proces în execuţie poate fi evacuat temporar în
memoria externă, cu memorarea stării sale în momentul evacuării (prin
intermediul indicatorilor de stare ai procesului); în locul lui este încărcat în
memoria internă un alt proces care poate fi şi el executat parţial şi evacuat apoi
în memoria externă, în favoarea altui proces, şamd. În acest fel, în sistem se
execută, în paralel, mai multe procese, alternând momentele de execuţie cu cele
de evacuare, până la execuţia lor completă. Cât timp un proces este încărcat în
memoria internă şi se execută, el are acces la toate resursele sistemului (ca la
sistemele monotasking).

Conceptul de memorie virtuală porneşte de la considerentul că, pentru un


program în execuţie, un număr relativ redus de instrucţiuni succesive sunt
utilizate la un moment dat, în timpul prelucrării. Întregul program poate fi
încărcat în memoria externă, numită memorie virtuală, iar în memoria internă
se încarcă numai secvenţe contigue de program, numite pagini (în cazul
organizării paginate a memoriei virtuale) sau segmente (în cazul organizării
segmentate), de dimensiuni relativ reduse. În timpul execuţiei programului au
loc schimburi permanente între memoria virtuală şi memoria internă, pentru a
încărca în memoria internă pagina sau segmentul dorite. Avantajele care decurg
din utilizarea memoriei virtuale sunt:

 creşte numărul proceselor care se pot executa simultan, pentru aceeaşi


capacitate a memoriei interne, determinând astfel o mai bună utilizare a
resurselor sistemului de calcul;
 dispar restricţiile privind lungimea maximă a unui program, în funcţie de
capacitatea memoriei interne; utilizând memoria virtuală, programele pot
fi oricât de mari şi ele pot fi executate şi pe sisteme mici.

3.3. Tehnica SPOOLING

Tehnica SPOOLING (Simultaneus Peripheral Operations On-Line) reprezintă


un mod eficient de exploatare a sistemelor de calcul seriale, bazat pe principiul
separării operaţiilor de intrare de operaţiile de ieşire şi de restul prelucrărilor şi
pe executarea lor în paralel.

Executarea lucrărilor se face în multiprogramare, cu respectarea unor reguli


suplimentare:

 se definesc în memoria externă periferice virtuale corespunzătoare


perifericelor standard I/O utilizate în lucrările care se execută;
 în timpul execuţiei unei lucrări, dispozitivul standard I/O solicitat este
înlocuit, prin redirectare, cu perifericul virtual corespunzător; ca urmare,
lucrul UCP cu informaţiile de intrare/ieşire este mult mai rapid, pentru că
rata de schimb a informaţiei cu un suport magnetic este mult mai bună
decât în cazul dispozitivelor I/O (care depind de componente mecanice,
de factorul uman, etc.);

 conversia de suport pentru informaţiile de intrare/ieşire între


dispozitivele periferice lente şi perifericele virtuale rapide, definite în
memoria externă, se poate face:
o on-line, prin organizarea în sistem a două partiţii speciale, una
pentru operaţiile de intrare şi a doua pentru operaţiile de ieşire;
o off-line, adică în afara timpului destinat execuţiei propriu-zise a
lucrărilor, alegând ca variante de lucru:
 utilizarea unui sistem de calcul mai slab, dedicat operaţiilor
de conversie de suport (culegere date de la terminale,
editare rapoarte la imprimantă, etc.)
 utilizarea aceluiaşi sistem de calcul în momente de
încărcare minimă (de exemplu în schimbul de noapte).

Pentru utilizarea tehnicii SPOOLING este nevoie de o memorie externă de


capacitate mare, direct adresabilă, unde să fie organizate perifericele virtuale.
Efectele utilizării tehnicii SPOOLING sunt:

 creşterea randamentului de exploatare a unui sistem serial cu 40-50%, în


primul rând prin scăderea timpilor de aşteptare ai UCP
 creşterea randamentului de utilizare a echipamentelor I/O; acestea sunt
utilizate în reprize dar într-o repriză sunt utilizate la capacitatea maximă.

Exemplu: tehnica SPOOLING se foloseşte sub MS-DOS pentru listările la


imprimantă, utilizând comanda Print care poate fi executată în paralel cu alte
lucrări în execuţie, conform tehnicii de exploatare în multiprogramare.

3.4. Exploatarea sistemelor de calcul în time-sharing

Exploatarea în time-sharing (cu "partajarea timpului") porneşte de la un


obiectiv asemănător cu exploatarea în multiprogramare: executarea concurentă
a proceselor, cu partajarea resurselor sistemului de calcul, de această dată în
cazul sistemelor interactive, multiuser. Obiectivul este reducerea timpului de
răspuns al sistemului, pentru servirea cererilor cât mai multor utilizatori.

Caracteristic exploatării în time-sharing este faptul că fiecare proces din sistem


are alocată, în mod ciclic, o cuantă de timp, în care dispune de resursele
sistemului; la consumarea cuantei respective, un alt proces primeşte controlul
pentru o altă cuantă de timp, şamd. Această schemă de execuţie în paralel a
proceselor permite unui mare număr de procese să fie în sistem, la un moment
dat, în diverse stadii ale execuţiei lor. Evenimentul care determină comutarea
între procese nu mai este determinat de proces ci este determinat de
consumarea timpului de execuţie afectat procesului.

Segmentul de timp alocat unui proces nu este fix şi poate să difere de la un


proces la altul; el se determină după anumite criterii, cum ar fi: numărul de
procese din sistem, natura lor, etc.

Criteriile de împărţire a timpului între procese au în vedere:

 minimizarea timpului necesar comutării între procese (o cuantă prea


mică de timp pentru execuţie duce la creşterea timpului necesar
comutării între procese în comparaţie cu timpul de execuţie propriu-zisă
a proceselor)
 minimizarea timpului de execuţie a fiecărui proces (o cuantă prea mare
de timp de execuţie pentru un proces duce la creşterea timpului de
aşteptare pentru celelalte procese din sistem).

Metoda de alocare a resurselor între mai multe procese, prin împărţirea


timpului de alocare în cuante şi alocarea resursei fiecărui proces câte o cuantă
de timp se numeşte multiplexarea resurselor.

Tehnica time-sharing este utilizată în sisteme interactive, în care importanţa


lucrărilor care se execută în sistem este relativ aceeaşi. În cazul sistemelor
multiuser, ea face posibilă conectarea simultană la sistem a unui mare număr de
utilizatori şi tratarea tuturor cererilor acestora în condiţii asemănătoare. Accesul
utilizatorilor la sistem se face prin intermediul terminalelor I/O de la care pot
trimite comenzi sau lansa în execuţie programe şi la care pot primi mesaje de la
sistem sau pot extrage rezultatele prelucrărilor.

Obiectivul principal al exploatării în time-sharing este satisfacerea tuturor


cererilor utilizatorilor conectaţi la sistem şi reducerea timpului de răspuns al
sistemului.

Consultarea stării terminalelor de intrare-ieşire, pentru identificarea unor noi


cereri utilizator se face utilizând metoda polling : sunt parcurse circular
terminalele conectate la sistemul de calcul şi, prin intermediul unei instrucţiuni
de test, este verificată starea fiecărui terminal; dacă este identificată apariţia
unei cereri la un terminal, atunci aceasta este tratată, generându-se un proces.
Consultarea stării terminalelor este făcută în paralel cu executarea proceselor.
Terminalele sunt inspectate circular, în aşa fel încât starea fiecărui terminal este
testată periodic.

Caracteristic activităţii de polling este frecvenţa cu care se face consultarea


unui terminal:

 o frecvenţă prea mică poate duce la întârzierea răspunsului sistemului la


solicitările utilizatorilor
 o frecvenţă prea mare implică afectarea unui timp prea mare acestei
operaţii, în detrimentul prelucrărilor propriu-zise solicitate de procesele
în execuţie.

Funcţiile pe care le realizează un sistem în time-sharing sunt:

 consultarea stării terminalelor prin polling şi lansarea în execuţie a


proceselor, în momentul identificării unei noi cereri la un terminal;
 planificarea alocării UCP la procesele în execuţie, circular, câte o cuantă
de timp pentru fiecare proces;
 executarea fiecărui proces până la consumarea cuantei de timp sau până
la completarea sa (execuţia sa completă), caz în care procesul este distrus
şi se activează un alt proces în execuţie;
 alocarea resurselor la fiecare proces prin multiplexarea resurselor;
 în cazul în care memoria internă devine insuficientă faţă de numărul de
procese care sunt lansate în execuţie, ca urmare a cererilor formulate de
la terminale, sistemul poate utiliza tehnica swapping, pentru evacuarea
temporară a unor procese din memoria internă sau poate folosi memoria
virtuală;
 comutarea între procese se face la iniţiativa sistemului de operare, la
consumarea cuantei de timp afectate procesului; comutarea între procese
se face cu memorarea stării procesului întrerupt, pentru a fi posibilă
reluarea lui; comutarea între procese poate necesita şi transferuri între
memoria internă şi memoria externă, dacă procesul care se activează a
fost evacuat în memoria externă;

 este asigurată protecţia între procesele concurente, în cazul resurselor


utilizate de mai multe procese;

Necesităţi hardware pentru sistemele de calcul exploatate în time-sharing:

 dispozitiv de timp care să genereze întreruperi la încheierea unei cuante


de timp, ca semnal pentru comutarea între procese
 memorie internă de capacitate mare, pentru a scădea necesitatea folosirii
memoriei externe ca extensie logică a memoriei interne, reducând
necesitatea schimburilor cu memoria externă la comutarea între procese
 UCP rapidă, pentru scăderea timpului de răspuns la cererile utilizator şi
pentru realizarea unei comutări rapide între procese.

Exemplu: de sistem în time-sharing este sistemul de operare Unix.

3.5. Exploatarea sistemelor de calcul în timp real

Sistemele de operare în timp real sunt sisteme care permit să se urmărească şi


să se controleze evenimente din mediul extern sistemului de calcul, în
momentul producerii acestora, preluând datele de intrare de la locul producerii
lor şi furnizând informaţii de ieşire la locul desfăşurării evenimentelor.
Avantajul utilizării unui sistem în timp real este capacitatea sa de a furniza la
timp informaţii într-un mediu de date care se modifică foarte rapid.

Caracteristicile sistemelor în timp real sunt următoarele:

 informaţiile de intrare sunt preluate în momentul şi la locul generării lor,


prin intermediul unor dispozitive de intrare specializate; aceste
dispozitive de intrare pot fi situate local sau la distanţă faţă de sistem de
calcul care prelucrează datele, numit sistem de calcul “central”;
 la primirea informaţiilor de intrare, sistemul transmite mesaje de răspuns
către utilizatorul care a generat informaţiile; răspunsul este trimis prin
intermediul aceloraşi terminale sau al altora;
 timpul de răspuns al sistemului este resursa critică în sistemele în timp
real; el trebuie să se încadreze sub o anumită limită, determinată în
funcţie de procesul urmărit.

Obiectivul principal al sistemelor în timp real este ca timpul de răspuns al


sistemului să fie suficient de scurt în raport cu procesul real care produce datele
furnizate sistemului de calcul.

Clasificarea sistemelor în timp real, după măsura timpului de răspuns:

1. Sisteme in-line (sisteme de proces) – sunt sistemele în timp real cu


ajutorul cărora se realizează urmărirea unui proces (un proces de
fabricaţie, o reacţie chimică, etc.). Timpul de răspuns se măsoară în
secunde. Aceste sisteme primesc datele de intrare de la echipamente
specializate numite traductoare; traductoarele preiau valorile
parametrilor procesului, în timpul desfăşurării lui, şi le convertesc într-
un format convenabil prelucrării lor în sistemul de calcul.

La primire, sistem de calcul prelucrează aceste date şi generează un


răspuns; răspunsul sistemului de calcul poate constitui o comandă pentru
un dispozitiv integrat în proces sau se poate adresa utilizatorului uman,
ca suport în luarea unei decizii.

Exemplu : pot utiliza sisteme in-line sistemele de supraveghere a


proceselor de producţie.

2. Sisteme tranzacţionale – sunt sistemele în timp real orientate pentru


prelucrarea unui volum mare de date de aceeaşi natură (de exemplu:
evidenţa vânzărilor într-un mare magazin, eliberarea biletelor cu locuri
rezervate, etc.). Timpul de răspuns se măsoară în minute.
Datele sunt primite de sistemul de calcul de la terminale prin intermediul
unor mesaje cu format fix, numite tranzacţii. Tranzacţiile trebuie să aibă
un format accesibil utilizatorului. Ca răspuns, utilizatorul poate primi
informaţii de sinteză, în legătură cu datele prelucrate, lansând comenzi
de interogare (cereri) tot de la terminal; şi comenzile de interogare au un
format fix, predefinit.

Numărul şi tipurile mesajelor şi comenzilor cu care poate lucra


utilizatorul este limitat, pentru a uşura utilizarea lor.

Scopul acestor sisteme este de a asigura prelucrarea unui număr mare de


tranzacţii, asigurând o viteză mare de răspuns.

Exemplu : sistemele tranzacţionale sunt utilizate pentru sisteme informatice


bancare, pentru sisteme de urmărire operativă a producţiei, sisteme de rezervare
a locurilor la societăţi de transport aerian, feroviar, etc.

Sistemele în timp real sunt sisteme interactive multiuser. Ele trebuie să


realizeze prelucrarea concomitentă a intrărilor primite de la un mare număr de
dispozitive de intrare. Prelucrarea fiecărei intrări se face prin generarea în
sistem a unui proces.

Funcţiile unui sistem în timp real sunt:

 să gestioneze cererile de la toate dispozitivele de intrare din sistem,


lansând imediat câte un proces;
 să asigure executarea concurentă a proceselor din sistem, urmărind
reducerea timpului total de execuţie a fiecărui proces;
 să asigure accesul concurent la resursele sistemului de calcul;
 să asigure protecţia între procesele din sistem.

Planificarea execuţiei proceselor în sistemele în timp real trebuie să ţină seama


de obiectivul principal al acestor sisteme: minimizarea timpului de răspuns.
Comutarea între procese se face la momente determinate prin intermediul
sistemului de întreruperi iar ordinea de activare a proceselor este stabilită prin
nivelul priorităţilor ataşate lor. Pentru a gestiona execuţia proceselor, sistemul
în timp real trebuie să asigure următoarele funcţii:

 stabilirea priorităţilor de execuţie a proceselor, după următorul algoritm:


fiecare proces primeşte o prioritate la intrarea lui în sistem; această
prioritate poate fi modificată până la încheierea execuţiei procesului. De
exemplu, dacă durata de execuţie a procesului depăşeşte durata maximă
de execuţie stabilită de monitor, acesta micşorează prioritatea de
execuţie a procesului, pentru a permite executarea cu prioritate a
proceselor care se încadrează în limita de timp stabilită; în acest fel se
garantează servirea tuturor cererilor primite în sistem în mod optim,
ţinând cont de resursa critică: timpul de răspuns.

 gestionarea întreruperilor, conform următoarelor reguli:


o planificatorul acţionează de câte ori se produce în sistem un
“eveniment” semnalat de o întrerupere;
o întreruperile pot fi generate:
 de un dispozitiv de intrare, pentru iniţierea unui proces
 de ceasul de timp real, în cazul depăşirii duratei limită de
execuţie a unui proces
 de încheierea unei operaţii de I/O sau a execuţiei unui
proces;

o la apariţia unei întreruperi, planificatorul predă controlul altui


proces, în funcţie de prioritatea procesului.

Optimizarea exploatării sistemelor în timp real se poate realiza prin:

 organizarea de buffere multiple de I/O, care să permită reducerea


timpilor de aşteptare ai UCP, în timpul transferului de informaţii cu
terminalele de intrare/ieşire; se are în vedere faptul că la sistemul de
calcul este conectat un număr mare de dispozitive I/O, ceea ce face
necesar lucrul cu un număr corespunzător de buffere de I/O;
 utilizarea programelor reentrante: este vorba despre programele care
concură la executarea tranzacţiilor. Este frecvent cazul în care, de la mai
mu0lte dispozitive de intrare, sunt iniţiate concomitent cereri care
trebuiesc prelucrate de acelaşi program; în acest caz, ar trebui încărcate
în memoria internă atâtea copii ale programului câte execuţii ale sale au
fost lansate prin cererile în curs de onorare. Este foarte convenabil, în
această situaţie, să se poată utiliza un program reentrant.

Un program reentrant este un program care, odată încărcat pentru execuţie în


memoria internă, se poate afla, la un moment dat, în mai multe faze ale
execuţiei sale, deci imaginea sa din memoria internă poate fi folosită în comun
de mai multe procese care execută programul respectiv.

Pentru a fi reentrant, un program trebuie să se compună dintr-o parte fixă, care


cuprinde, de obicei, instrucţiunile, şi o parte variabilă, care conţine, de
exemplu, datele asupra cărora operează instrucţiunile. Dacă fiecărui proces care
iniţiază execuţia programului i se rezervă în memoria internă o zonă proprie
pentru partea variabilă a programului reentrant, atunci partea fixă a
programului poate fi folosită în comun de toate procesele.

În acest fel se realizează o economie a spaţiului ocupat de procese în memoria


internă; implicit, se reduce numărul de operaţii de transfer cu memoria externă,
în cazul în care se utilizează memoria virtuală sau swapping-ul, pentru a putea
încărca în memoria internă noi procese.

Necesităţi hardware pentru sistemele în timp real:

 Sistemele în timp real presupun stabilirea unei comunicaţii directe, în


ambele sensuri, între utilizator şi sistem; în acest scop sunt necesare
echipamente specifice:
o dispozitive periferice de intrare care, în funcţie de modul de
preluare a datelor, pot fi :
 terminale, care preiau datele introduse de operatorul uman,
 traductoare, în cazul sistemelor de proces, care colectează
datele de intrare automat, de la anumiţi senzori;
o dispozitive periferice de ieşire:
 terminale standard, care prezintă informaţia de ieşire
operatorului uman,
 echipamente analogice sau digitale care acţionează direct
asupra dispozitivelor de reglare a procesului controlat;
o linii de comunicaţie care stabilesc legătura fizică între sistemul de
calcul şi dispozitivele periferice;
o unităţi pentru controlul transmisiei la distanţă, care supervizează
procesul de comunicaţie pe linii, eliberând UCP pe timpul
transmisiei de date.
 Sistemele în timp real presupun memorarea unui volum mare de date şi
accesul rapid la aceste informaţii. Sistemul de calcul trebuie să fie
echipat cu memorie externă de mare capacitate şi viteză de acces.

 Pentru un sistem în timp real, sistemul de calcul trebuie să dispună de un


dispozitiv de timp, ceasul de timp real, pentru a măsura durata de
execuţie a proceselor şi pentru a sesiza depăşirea duratei maxime de
execuţie a unui proces.
 Echipamentele unui sistem de calcul exploatat în timp real trebuie să se
caracterizeze printr-o mare siguranţă în funcţionare. În acest scop se
practică:
o dublarea sau triplarea unităţilor vitale ale sistemului de calcul, cu
posibilitatea de comutare automată între ele, în caz de defect; de
exemplu:
 sisteme de calcul dotate cu un procesor de rezervă
 sistem de calcul cu memoria externă “în oglindă”, adică
scrierea în memoria externă se face concomitent pe două
unităţi care au acelaşi mod de adresare (pentru sistemele
tranzacţionale);
o se memorează pe suport extern toate tranzacţiile realizate în
sistem, procedeu numit “jurnalizarea tranzacţiilor”; în caz de
incident, datele pot fi recuperate prin reluarea tranzacţiilor din
jurnal şi prelucrarea lor (pentru sistemele tranzacţionale).

3.6. Exploatarea sistemelor în reţea de calculatoare

Cel mai simplu mod de utilizare a unui sistem de calcul este prin furnizarea
datelor de intrare la locul unde este instalat sistemul şi preluarea rezultatelor
prelucrărilor din acelaşi loc. În cazul în care acest loc nu coincide cu locul unde
se produc datele de intrare, sau cu locul unde sunt utilizate rezultatele
prelucrărilor, atunci trebuie găsită o modalitate convenabilă de colectare a
datelor şi de distribuire a rezultatelor. Un exemplu în acest sens sunt sistemele
în time-sharing sau în timp real, care folosesc în acest scop echipamente cu rol
de terminal de intrare/ieşire.

O altă problemă o constituie tendinţa de “diviziune a muncii” în sistemele mari


de prelucrare automată a datelor, în aşa fel încât fiecare componentă din sistem
să aibă funcţii de prelucrare specifice şi să colaboreze cu celelalte componente,
în scopul realizării unor prelucrări complexe ale datelor. Există sisteme de
prelucrare automată a datelor în care sarcini specifice sunt executate pe
calculatoare dedicate, de exemplu:

 culegerea datelor se face pe un sistem de calcul la care sunt, de regulă,


conectate mai multe terminale;
 prelucrările complexe asupra datelor se execută pe sisteme de calcul cu
procesor puternic, folosind ca date de intrare datele furnizate de sistemul
de culegere a datelor
 imprimarea datelor se face prin intermediul unui alt sistem de calcul mai
slab, dar care are conectate echipamentele periferice de ieşire necesare.

Un sistem informatic astfel organizat asigură utilizarea cu eficienţă maximă a


echipamentelor şi, totodată, un timp de răspuns foarte bun, în toate etapele
prelucrării informaţiilor. Şi în acest caz, principala problemă care trebuie
rezolvată este realizarea transferului de date între sistemele de calcul care
realizează prelucrarea lor, în toate etapele.

Transferul de date trebuie să se realizeze în condiţii optime de viteză şi de


siguranţă (adică datele să fie transmise corect, complet şi la timp).

Folosirea sistemelor de calcul în conjuncţie cu comunicaţia de date la distanţă a


dus la crearea unor sisteme de prelucrare automată a datelor de mare putere.

Un sistem de prelucrare automată a datelor care are asigurată comunicarea de


date la distanţă cu alte echipamente, prin cel puţin o linie de comunicaţie
reprezintă un sistem de teleprelucrare a datelor.

Tehnica transmiterii datelor la distanţă, prin intermediul liniilor de comunicaţie


se numeşte teletransmisie.

Dacă printre echipamentele unui sistem de teleprelucrare figurează cel puţin


două calculatoare atunci sistemul se numeşte reţea de calculatoare.

Un mediu de teleprelucrare a datelor reprezintă un ansamblu de mijloace


hardware şi software care permit prelucrarea la distanţă a informaţiei.

Într-un mediu de teleprelucrare a datelor sunt realizate două categorii de


funcţii:

 funcţii comune oricărui sistem de prelucrare automată a datelor:


o colectarea datelor
o stocarea datelor
o prelucrarea datelor
o difuzarea rezultatelor
o asigurarea protecţiei datelor
 funcţii specifice teletransmisiei:
o gestionarea transmisiei de date prin căile de comunicaţie
o conversii de date între formatul specific transmisiei de date şi
formatul de reprezentare internă a datelor în sistemul de calcul
o transferul fizic al datelor
o controlul, detecţia şi tratarea erorilor de transmisie.
Reţelele de calculatoare au înregistrat o dezvoltare spectaculoasă în ultimii ani,
datorită:

 creşterii necesităţii de realizare a schimburilor informaţionale la distanţă


în sistemele informatice
 avantajelor oferite de sistemele de prelucrare distribuită a datelor
 progreselor realizate în domeniul tehnologiilor folosite în
telecomunicaţii
 progreselor înregistrate în crearea suportului software pentru lucrul în
reţea de calculatoare, inclusiv prin dezvoltarea sistemelor de operare
pentru reţele de calculatoare.

Sistemele de operare în reţea controlează funcţionarea componentelor


hardware şi software ale sistemului de calcul, în condiţiile specifice lucrului
într-o reţea de calculatoare, precum şi accesul utilizatorilor la resursele reţelei,
permiţând partajarea acestor resurse.

Sistemele de operare proiectate pentru gestionarea lucrului în reţea trebuie să


asigure câteva funcţii suplimentare, faţă de celelalte funcţii ale unui sistem de
operare. Aceste funcţii se referă la:

1. Comunicarea între nodurile reţelei (nodurile reţelei sunt sistemele de


calcul din reţea). Această funcţie trebuie să asigure transferul de date
între sistemele de calcul din reţea, utilizând un set de reguli care
reglementează comunicarea în reţea, set de reguli numit protocol de
reţea; problema transferului de date este complexă şi implică:
o realizarea legăturii punctuale între două sisteme de calcul: un
sistem transmite date şi celălalt le recepţionează
o asigurarea transferului de date între două noduri, prin intermediul
altor noduri
o operaţii de selecţie a traseului pe care să se facă transferul de date
între două sisteme de calcul din reţea (funcţii de rutare)
o operaţii de conversie a datelor în şi din formatul specific
transmiterii datelor în reţea, codificarea sau împachetarea datelor,
conform anumitor reguli, numite protocoale de comunicaţie, etc.
o mecanisme de detectare şi tratare a erorilor de transmisie
o autentificarea proceselor implicate în transfer, cu verificarea
drepturilor de acces în reţea, etc.
2. Partajarea resurselor unui sistem de calcul între nodurile reţelei. Se
numeşte host un nod al reţelei care permite partajarea resurselor sale de
către celelalte noduri din reţea.
Partajarea propriilor resurse de către un nod presupune gestionarea
cererilor multiple şi simultane de acces la resursele partajate, care pot să
apară de la celelalte noduri din reţea. Aceasta înseamnă că sistemul host
trebuie să fie un sistem multitasking şi multiuser.

Exemplul 1: O “maşină” DOS este un sistem monotasking, monouser şi


deci nu poate să îşi partajeze resursele într-o reţea. Din acest motiv, într-
o reţea, o maşină DOS va funcţiona doar ca simplu nod (poate folosi
resursele partajate de alte noduri), nu ca host.

Cu toate acestea, într-o reţea Windows 3.11, implementată sub MS-


DOS, orice nod este host. Acest lucru este posibil pentru că Windows
3.11 aduce în sistemul de operare o componentă de reţea, care constituie
o dezvoltare a sistemului de operare ce include funcţiile necesare
lucrului în reţea, inclusiv cea care face posibilă partajarea resurselor.

Exemplul 2: Opţiunea Sharing (utilizare în comun) din meniul de context


al unor obiecte Windows permite definirea modului de partajare a
resursei respective în cadrul reţelei

3. Accesarea resurselor partajate din reţea se referă la capacitatea unui nod


de a avea acces la resursele partajate de un alt nod din reţea.

Pentru a permite accesul la o resursă partajată din reţea, se definesc, pentru


această resursă, drivere virtuale, care sunt declarate pe sistemul nodului care
utilizează resursa partajată. Aceste drivere se referă deci la resurse care nu
există fizic în sistemul de calcul respectiv dar există fizic pe host. Definirea
unei corespondenţe între unităţile fizice partiţionate, din reţea, şi driverele
virtuale definite pe nodul local se numeşte operaţie de mapare.

Gestionarea driverelor virtuale este realizată de o componentă de reţea


specializată, instalată pe fiecare nod.

Exemplul 1: Opţiunea Map Network Drive (Mapare unitate de reţea) este


oferită, în sistemul de operare Windows, de aplicaţia Explorer; ea dă
posibilitatea mapării unei unităţi virtuale locale la o unitate din reţea. Operaţia
inversă, de anulare a mapării, se realizează cu opţiunea Disconnect Network
Drive (Deconectare unitate de reţea).

Exemplul 2: Sistemul de operare NetWare al firmei Novell este un sistem de


operare în reţea, dezvoltat pentru o reţea locală (LAN), cu un calculator central,
numit server , care îşi partajează resursele celorlalte noduri ale reţelei, numite
staţii de lucru.
NetWare are pe server un sistem de operare propriu, de reţea, care emulează
MS-DOS (adică are înglobate funcţiile MS-DOS şi, în plus, alte funcţii proprii).

Pe celelalte sisteme din reţea, NetWare trebuie să găsească instalat MS-DOS-


ul, la care adaugă o componentă proprie de reţea, care asigură accesul în reţea a
staţiei de lucru respective. Alte sisteme de operare care pot fi instalate pe
staţiile de lucru, într-o reţea NetWare, sunt Unix sau Windows95.

Componenta care realizează funcţia de partajare a resurselor proprii se încarcă


numai pe server. Este posibil să fie partajate numai anumite resurse ale unui
server; de exemplu, un sistem host îşi poate partaja numai imprimanta şi este
numit server de imprimantă sau poate partaja suporţii de memorie externă şi se
numeşte server de date, etc.

Reţeaua NetWare Novell are componente distincte pentru realizarea


comunicării în reţea şi pentru realizarea accesului de pe staţiile de lucru la
resursele partajate de pe server.

4. Identificarea nodurilor reţelei şi stabilirea drepturilor de acces în reţea.


Aceste funcţii sunt implementate pe serverul de reţea şi presupun
asocierea unui sistem de parole fiecărui utilizator din reţea, pentru
identificarea acestuia; în felul acesta pot fi reglementate drepturile de
acces la resursele partajate de server, pentru fiecare utilizator şi pot fi
definite acţiunile permise utilizatorilor din reţea.

Mecanismul de identificare a utilizatorilor oferă şi posibilitatea urmăririi


(înregistrării) activităţii utilizatorilor în reţea.

Exemplul 1:Windows 95, Windows 98 implementează o reţea în care fiecare


nod este host şi nu este definit un nod principal (server); în această reţea nu
sunt asigurate servicii speciale de protecţie pentru nici un nod al reţelei.

În schimb, Windows NT Server este un sistem de operare pentru un server de


reţea şi are implementată funcţia de definire şi control ale drepturilor de acces.

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