Sunteți pe pagina 1din 7

2.2. Monoprogramarea Monoprogramarea este o tehnic de gestiune a lucrrilor ce presupune execuia secvenial a lucrrilor solicitate a se prelucra pe un sistem de calcul.

Caracteristicile acestei tehnici se concretizeaz in urmtoarele aspecte: - planificarea lucrrilor se realizeaz strict secvenial intr-o ordine prestabilit; - fiecare lucrare are la dispoziie toate resursele sistemului de calcul in momentul execuiei; - fiecrei lucrri i se asociaz un singur proces la un moment dat, astfel c pe durata operaiilor de intrare/ieire (care dureaz mult comparativ cu durata de execuie a unitii centrale de prelucrare), unitatea central de prelucrare ateapt terminarea acestor operaii, conducand la creterea duratei de execuie a lucrrilor. Obiectivul urmrit in cadrul acestei tehnici il constituie reducerea timpului mediu petrecut de lucrare in sistem. Execuia lucrrilor in monoprogramare Un program solicit pe parcursul execuiei operaii de intrare/ieire; operaiile sunt supervizate de ctre un procesor de comunicaii numit canal, care transfer coninutul intre memoria intern i dispozitivele periferice de intrare/ieire. Dac unitatea central de prelucrare intalnete o instruciune de citire, atunci iniiaz execuia unui proces de intrare ctre procesorul de comunicaie, continuand-i activitatea de prelucrare fr a se interfera cu activitatea canalului. Procesele de intrare/ieire fiind mai lente, unitatea central de prelucrare va atepta transferul datelor solicitate in vederea prelucrrii lor ulterioare; dac procesul de intrare s-a incheiat, unitatea central de prelucrare va fi sesizat de canal printr-o intrerupere. Sincronizarea activitilor dintre unitatea central de prelucrare i procesorul de comunicaie t1 - momentul iniierii de ctre CPU a unei operaii de intrare; t2 - momentul in care CPU are nevoie de datele solicitate de la dispozitivul periferic de intrare, pe care nu le are deoarece nu s-a terminat operaia de citire; t3 - se termin operaia de citire i se reia execuia programului de ctre CPU cu datele solicitate; t4 - momentul incheierii execuiei programului. Pentru aprecierea eficienei utilizrii acestor procesoare ( CPU, DMAC), se calculeaz randamentul de utilizare (in % ): Dei prezena canalului amelioreaz productivitatea sistemului datorit simultaneitii activitii acestuia cu activitatea CPU (parial sau total), exist intervale de timp impuse de necesitatea sincronizrii activitilor in care CPU este in starea de ateptare. 2.3. Multiprogramarea Timpul de inactivitate al CPU impus de perioadele de ateptare poate fi redus substanial dac in memoria intern ar putea coexista simultan mai multe programe ce pot solicita CPU atunci cand aceasta ateapt terminarea unei operaii de intrare/ieire pentru lucrarea curent in execuie.

Multiprogramarea este o tehnic de gestiune a lucrrilor pe sistemele de calcul prin care sunt plasate mai multe lucrri simultan in memoria intern iar CPU comut intre ele; din punct de vedere conceptual, multiprogramarea implic simultaneitatea a "n" procesoare pe un singur procesor sau existena a "n" procesoare virtuale in cadrul unui singur procesor. Caracteristicile de baz ale acestei tehnici const in: - existena simultan a mai multor lucrri in memoria intern; - existen unui mecanism de trecere de la un program la altul astfel ca randamentul sistemului s fie ridicat; - existena unui mecanism de protecie intre lucrri care s permit execuia fiecreia, fr afectarea celorlalte lucrri existente in memoria intern; - existena unui mecanism pentru gestiunea resurselor fizice i logice solicitate de ctre lucrrile in execuie (echipamente periferice, informaii, etc.). Obiectivul urmrit in multiprogramare il constituie maximizarea volumului de lucrri care trec prin sistem i minimizarea timpului petrecut de o lucrare in sistem. Multiprogramarea se poate aprecia ca o dezvoltare a sistemului de operare, iar folosirea partajat a CPU de ctre lucrri, ca o execuie concurent (in realitate, partajarea este realizat pe 2.3.1. Planificarea execuiei lucrrilor Sistemele de calcul ce utilizeaz tehnica multiprogramrii sunt prevzute cu o component a sistemului de operare numit monitor de planificare a lucrrilor, care alege dintr-un grup de programe in ordinea sosirilor, pe acelea potrivit crora timpul neocupat al CPU s fie minim; exist o limit pentru numrul de lucrri ce pot fi executate simultan (dac acest numr este depit, este invocat o procedur pentru selecia lucrrilor, iar cele neselectate rman in ateptare) funcie de memoria afectat utilizatorilor. Procesul de planificare are dou funcii distincte: - asigurarea prioritii; - alocarea resurselor care utilizeaz prioritatea. Algoritmii de planificare presupun c lucrrile sunt ordonate pe baz de prioritate, sub forma firelor de ateptare. Alegerea unui anumit algoritm se va face dup obiectivele urmrite; dintre algoritmii frecvent utilizai in multiprogramare se menioneaz: STF Shortest proccessing Time First - lucrarea cu cel mai scurt timp de prelucrare este prima executat, urmrete minimizarea timpului de trecere prin sistem a lucrrilor ce dureaz puin; LTF Longest proccessing Time First - lucrarea cu cel mai lung timp de prelucrare este prima executat, urmrete reducerea timpului total de execuie a lucrrilor; SMF Smallest Memory requirment First - lucrarea ce necesit cel mai mic spaiu de memorie este prima executat; LMF Largest Memory requirment First - lucrarea ce necesit cel mai mare spaiu de memorie este prima executat;

FIFO First Input First Output - lucrrile sunt executate in ordinea lansrii in execuie; LIFO Last Input First Output - lucrrile sunt executate in ordinea invers lansrii in execuie; Round-Robin sau planificarea circular, fiecare lucrare avand alocat o cuant de timp (interval de 1-10 ms), dup care controlul este comutat la urmtoarea lucrare. t1 - momentul iniierii unei operaii de intrare/ieire de ctre CPU pentru P1; t2 - momentul cand P1 are nevoie de transferul datelor solicitate la t1 care nu sunt disponibile deoarece nu s-a terminat operaia de intrare/ieire, comutand astfel la execuia programului urmtor P2; t3 - terminarea operaiei de intrare/ieire pentru P1 (CPU este ocupat cu P2); t4 - iniierea operaiei de intrare/ieire pentru P2; canalul fiind liber, trece la execuia solicitat; t5 - momentul cand P2 necesit datele solicitate; operaia de intrare/ieire nu s-a incheiat, deci CPU comut la P3; t6 - iniierea unei operaii de intrare/ieire de ctre P3; canalul este ocupat, trece operaia in ateptare; t7 - se termin operaia de intrare/ieire iniiat de P2 i poate fi lansat operaia de intrare/ieire iniiat de P3 (t8); t9 - momentul cand CPU devine liber de la P3 i avand datele solicitate de P1 inc de la momentul t3, reia execuia P1; t10 - se incheie execuia P1 i CPU comut la P2; t11 - se incheie execuia P2 i CPU ateapt deoarece nu s-a incheiat operaia de intrare/ieire 2.4. Sistemul spooling (Simultaneous Peripheral Operations On Line) Activitatea de suprapunere a operaiilor de intrare, prelucrare i ieire prin intermediul tehnicii spooling, are ca principal obiectiv imbuntirea randamentului sistemului de calcul i lrgirea gamei de faciliti oferite utilizatorilor. Tehnica dispune de urmtoarele caracteristici: - disponibilitatea unei memorii externe de capacitate mare i cu acces direct (discuri magnetice), care asociat cu tehnica multiprogramrii permite manipularea unor succesiuni continue de operaii de intrare, ieire i alte prelucrri, ameliorand astfel diferena dintre timpul de execuie al operaiilor de intrare/ieire i timpul de execuie al operaiilor de ctre CPU; - asigurarea unei incrcri la intreaga capacitate a dispozitivelor periferice de intrare/ieire; - esenialul acestei tehnici const in organizarea de zone tampon de memorie (buffere) in care se creeaz dispozitive periferice de intrare/ieire virtuale ce permit: * introducerea de lucrri inainte ca acestea s fie executate; * redarea rezultatelor la imprimante in timpul execuiei altor lucrri; * planificarea execuiei lucrrilor in ordinea prioritilor fr a ine seama de disciplina de introducere a acestora in sistem; * schimbarea ordinii de execuie a lucrrilor prin prioriti asociate. Organizarea unui sistem spooling este redat in fig. 2.3. Fig. 2.3. Organizarea unui sistem spooling P1, P2 se introduc de la tastatur; P3, P4 ateapt incrcarea in memoria intern; P5, P6, P7, P8 sunt active in memoria intern;

P9, P10 sunt executate i ateapt tiprirea; P11, P12 se tipresc. 2.5. Sisteme TIME SHARING (Sisteme cu timp divizat) Tehnica de gestiune a lucrrilor time-sharing este caracterizat de utilizarea concurent a resurselor unui sistem de calcul de ctre "n" utilizatori prin intermediul staiilor de lucru (work stations) plasate local sau la distan; elementele globale ce definesc aceste sisteme sunt tehnica divizrii timpului i multiplexarea resurselor intre mai muli utilizatori independeni; termenul de multiplexare semnific partajarea resurselor sistemului astfel incat se creeaz mai multe procese, fiecare utilizator avand senzaia c sistemul ii aparine integral (practic, se comut sau se multiplexeaz in timp, de la un utilizator la altul). In time-sharing CPU este partajat pe baz de cerere, planificarea execuiei urmrind obinerea unui timp de rspuns minim; lucrrile nu au prioriti prestabilite, astfel c acestea trebuie s fie executate intr-o manier dinamic. Multiplexarea resurselor intre procese necesit existena unei componente a programelor de comand-control capabil s trateze o larg gam de intreruperi. Utilizatorii sunt aleatori, se schimb in orice moment, lucreaz programe diferite, se conecteaz/deconecteaz la/din sistem independent unii de alii utilizand perioade de timp diferite pentru execuia lucrrilor. Trsturile eseniale ale acestei tehnici const in: - protecia memoriei, prin care programele utilizatorilor trebuie s fie protejate intre ele pentru a nu permite accesul neautorizat, fiecare program fiind limitat la spaiul su de memorie; - independena utilizatorilor, prin care se stabilete o cuant de timp pentru fiecare utilizator; dac programul nu s-a terminat in acest interval de timp, este returnat in memoria extern i plasat la sfaritul firului de ateptare, incrcandu-se alt program in memoria intern, .a.m.d. - alocarea resurselor pentru programele utilizatorilor este efectuat de monitorul rezident in memoria intern (monitor de time-sharing): spaiu de memorie intern, timp CPU, tratarea cererilor de intrerupere de la terminale, etc.; - alocarea memoriei interne se realizeaz printr-o tehnic de alocare i control a micrii paginilor intre memoria intern i cea extern. Caracteristici hardware solicitate implic: - memorie intern de capacitate mare i CPU rapid pentru asigurarea unui timp minim de rspuns (volum mic de migrri intre memoria intern i cea extern, respectiv comutarea rapid intre programe); - ceas de timp real care s genereze intreruperi pentru comutarea CPU de la un program la altul; - memorie extern cu acces direct in care o soluie ar fi cuplarea in paralel a memoriei

externe la CPU i terminale, ceea ce implic transferul intre memoria extern i terminale independent de activitatea CPU; - sistem de comunicaie transferul informaiilor intre CPU i terminale, linii de comunicaii, modemuri, concentratoare i multiplexoare; - terminale i CPU adecvate. Caracteristici software Caracteristici software sunt realizate in principal de monitorul de time-sharing care gestioneaz resursele intregului sistem: - alocarea i comutarea CPU dup timpul alocat pe baza unui algoritm de planificare a execuiei stabilit astfel incat s se asigure: - reducerea timpului de rspuns; - minimizarea timpului necesar comutrii intre procese; - posibilitatea lansrii in execuie a oricrui proces care ateapt, lansare ce se execut in funcie de prioriti; - incrcarea echilibrat a sistemului; - stabilirea locului fiecrui program in firul de ateptare, in funcie de prioritate; - alocarea spaiului de memorie intern: zona de memorie i adresa unde se incarc fiecare program; - tratarea intreruperilor prin analiza motivului intreruperii care va determin aciunea ce se intreprinde in continuare; - gestiunea fiierelor prin care se determin locul unde sunt memorate coleciile de date, regsirea lor rapid, parola de protecie .a.. 2.6. Multiprelucrarea Dac mai multe programe se gsesc in acelai timp in memoria intern i partajeaz resursele sistemului de calcul atunci sistemul utilizeaz tehnica multiprogramrii; dac in multiprogramare se folosesc mai multe procesoare, atunci sistemul utilizeaz tehnica de gestiune denumit in multiprelucrare. Se poate aprecia c multiprogramarea este un concept software, iar multiprelucrarea un concept hardware. Un sistem de calcul utilizeaz tehnica multiprelucrrii dac cel puin dou CPU lucreaz in paralel; unitile centrale de prelucrare pot executa instruciunile unui singur program sau pot executa instruciuni din programe diferite. Oportunitatea multiprelucrrii const in : - incrcarea partajat a programelor pentru execuie, fiecare procesor avand acces la firul de ateptare alctuit din lucrrile solicitate a se executa; - separarea diverselor funcii ale sistemului, existand cate un program responsabil pentru fiecare funcie; - creterea fiabilitii sistemului, pentru care exist dou posibiliti: - duplexarea sistemelor, prin care una sau mai multe componente hardware sunt dublate, una

fiind in activitate iar cealalt va fi activat la apariia unui defect al primei componente; pe durata funcionrii corecte a procesorului principal, procesorul secundar poate fi folosit pentru alte operaii; - sisteme duale, sunt sistemele in care dou procesoare centrale prelucreaz simultan acelai program de aplicaie, periodic verificandu-se reciproc privind validarea rezultatelor. 2.6.1. Sisteme master/slave Unul din obiectivele multiprelucrrii este de a degreva o CPU, de sarcini specifice ca: tabelri de date, editri de texte, gesiunea coleciilor de date (fiiere, baze de date); pentru a realiza acest deziderat, la o CPU - denumit slave, este cuplat o CPU care este destinat coordonrii activitilor din sistem - denumit master (fig.2.5.). Master-ul poate s coordoneze toate operaiile de intrare/ieire in timp ce slave-ul execut operaii complexe; in acest caz masterul este referit ca "front-end processor" avand rol de interfa intre slave i dispozitivele periferice de intrare/ieire. Fig. 2.5. Front-end processor Dar masterul se poate utiliza i ca interfa intre slave i colecii voluminoase de date existente in memoria extern, situaie in care este referit ca "back-end processor" fiind responsabil de gestiunea coleciei de date . Prin urmare, in multiprelucrarea sistemelor organizate in varianta master/slave, fiecare CPU fi dedicat unor sarcini specifice sau poate fi utilizat in mod alternativ pentru execuia unei aceleiai sarcini, in vederea furnizrii unor rspunsuri mai rapide. 2.6.2. Planificarea execuiei lucrrilor In funcie de gradul de planificare al lucrrilor i al sistemului de comunicaie, se disting urmtoarele clase de sisteme (fig.2.7.): 1) sisteme cu CPU identice care sunt determinate de modul in care CPU partajeaz memoria: * memorie unic pentru CPU cuplate in care mai multe CPU partajeaz o memorie; * memorie proprie pentru fiecare CPU din sistem. De remarcat este faptul c se pot include i variante master/slave. Legturile dintre memoria intern i CPU se pot realiza in urmtoarele variante: - legtur matriceal (cross bar) prin intermediul unui sistem de comunicaie, cererile neservite fiind plasate intr-un fir de ateptare gestionat prin hardware sau software; - legtur prin canale multiple cand procesoarele partajeaz o cale unica pentru fiecare modul de memorie; - legtur printr-un singur canal folosit partajat acesta constituind interfaa dintre toate CPU i memoria intern. 2) sisteme cu CPU diferite care presupun existena unui numr de CPU periferice care lucreaz in paralel cu CPU principal; pot fi organizate sub form de: - arie de procesoare (processor array) care implic divizarea unui program in activiti independente ce se pot executa simultan pe CPU existente in configuraie; - conduct (pipe) ceea ce permite operarea direct asupra unui ir de vectori (pipeline) elementele irului fiind reprezentate de CPU; - puternic conectate, caracterizate de o cretere a volumului de lucrri executate datorit controlului direct exercitat de CPU din configuraie asupra resurselor;

- slab conectate, care pot partaja: sistemul de comunicaie, volumele de memorie cu acces direct, programele de servici prin care componenta software dintr-un sistem comunic cu componenta software din alt sistem, pentru cereri de partajare a resurselor; nu exist un control asupra resurselor unui procesor exercitat de alt procesor. Planificarea execuiei lucrrilor in multiprelucrare depinde de modul de conectare al sistemelor, existand urmtoarele variante: 1) planificarea in cazul sistemelor diferite se poate realiza: - manual, fr nici o planificare, doar cu comutarea de la un procesor la altul; - prin urmrirea incrcrii echilibrate a sistemelor, dac acestea sunt slab conectate i dispun de CPU proprie; 2) planificarea in cadrul sistemelor master/slave in care toate resursele sunt disponibile tuturor CPU; in acest caz, memoria intern i dispozitivele periferice de intrare/ieire sunt alocate la procese nu la CPU, iar CPU sunt asigurate s execute procesele de ctre modulul de planificare a execuiei proceselor (sisteme puternic conectate). In cazul tehnicii de planificare master/slave, o CPU master reine starea tuturor proceselor din sistem i planific activitatea tuturor CPU slave. 3) planificarea in cazul sistemelor omogene. In aceast situaie, CPU sunt tratate ca CPU slave, avand loc o planificare descentralizat; se creaz o list in memoria intern ce conine numele proceselor i starea lor, fiind permis oricrei CPU s acceseze aceast list. In momentul intreruperii execuiei unui proces, CPU creia i-a fost atribuit merge la lista proceselor i gsete procesul pe care il va lansa in execuie (va folosi acelai algoritm de planificare pentru alegerea urmtorului proces de executat din lista proceselor gata pentru execuie).

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