domeniului Sistemelor de Operare 1.1 Definiia unui sistem de operare Un sistem de calcul pune la dispoziia utilizatorului urmtoarele resurse: unul sau mai multe procesoare, memorii interne, memorii auxiliare, ceasuri, terminale, interfee de reea, dispozitive de intrare/ieire (imprimante, scannere etc.). Dac utilizatorul ar trebui s scrie el nsui pro!ramele care !estioneaz i utilizeaz corect aceste componente "ard#are ar rezulta pro!rame foarte complicate. Utilizatorul ar trebui s fac pro!rame ce conin propriile rutine pentru cererea de blocuri pe disc, recuperarea din condiii de eroare, tratarea unor ntreruperi. $entru a scuti utilizatorul de sarcina de a !estiona sin!ur "ard#are%ul complex s%a adoptat soluia de a plasa un strat de pro!rame specializate deasupra mainii fizice. &ceste pro!rame trebuie s administreze toate resursele sistemului. 'esursele pot fi permanente (procesoare, memorii, dispozitive (/)) sau temporare (mesa*e) acestea din urma sunt produse de un proces i consumate de un altul. 'esursele pot fi dedicate (folosesc numai procesului care le deine) sau partajabile. +n ceea ce privete modul de recuperare a resurselor de la procesul care le deine acestea pot fi cu prelevare forat , % de exemplu procesorul, memoria - (i.e. pot fi luate n orice moment de la procesul care le deine) i fr prelevare forat. - neprelevabile - (i.e. resursele pot fi recuperate numai c.nd procesul care le stp.nete le cedeaz). /istemul de operare are ca scop s pun la dispoziia utilizatorului o main extins care este mai uor de pro!ramat dec.t "ard#are%ul. )l pune la dispoziia pro!ramatorului aa numitele apeluri sistem care pot fi considerate instruciuni ale mainii extinse. $ro!ramele adu!ate mainii fizice n vederea administrrii resurselor sale sunt cunoscute sub numele de Sistem de Operare (abreviat S.O.). &cesta cuprinde acele proceduri manuale i module pro!ram din interiorul unui sistem de calcul care asi!ur controlul sistemului de calcul (procesor, memorie intern, memorii externe, dispozitive (/), fiiere) de ctre utilizatori, rezolv conflictele de acces la resurse, ncearc s mbunteasc performanele sistemului i simplific utilizarea acestuia. /.0. acioneaz ca o interfa ntre pro!ramele utilizator i "ard#are. , 1ermenul ec"ivalent n limba en!lez este: preempted resources Figura 1 Componentel sistemului de operare formeaz un strat situat ntre hardware i programele utilizator Dup 2rinc" 3ansen 4 , un /.0. este un ansamblu de proceduri manuale i automate care permit unui !rup de utilizatori s parta*eze (utilizezeze n comun) resursele unui sistem de calcul. Partajarea are dou aspecte: concurena (competiia pentru resurse) i cooperarea. Utilizarea n comun a resurselor implic folosirea unor mecanisme de sincronizare care s controleze viteza de execuie a proceselor precum i existena unor mecanisme de planificare a utilizrii lor (care decid cine primete resursa i cine ateapt). Utilizatorii se pot afla n competiie pentru acapararea unor resurse fizice (ex: timpul de procesor, spaiul de memorie, serviciile ec"ipamentelor de (/)). $arta*area nseamn i cooperarea ntre utilizatori prin sc"imbarea de pro!rame i date. $entru a realiza parta*area resurselor ntre utilizatori ntr%un mod corect /.0. trebuie: s decid care utilizator are acces la o anumit resurs, pentru c.t timp i n ce condiii i se poate lua aceast resurs s aib o strate!ie pentru a determina ordinea n care sunt servii utilizatorii aflai n competiie i pentru rezolvarea conflictelor care apar n cazul mai multor cereri simultane pentru aceeai resurs. 5iecare component a sistemului de operare care realizeaz !estiunea unei resurse trebuie s: in minte (stoc"eze ntr%o structur de date) starea fiecrei resurse s implementeze un al!oritm care s exprime politica ce determin ce, cum, cui i c.t din resurs este alocat s aloce resursa s elibereze resursa 4 Una din personalitile domeniului sistemelor de operare si pro!ramrii concurente. )ste danez. & condus proiectul de dezvoltare a sistemului de operare '67888 (multipro!ramare), a inventat conceptul de monitor i limba*ul $ascal 6oncurent. &ctualmente este profesor onorific la 9/:racuse Universit:; (U/&). 2 /pre exemplu, n cazul unui modul de administrare a memoriei cu partiionare dinamic, starea blocurilor de memorie intern (libere sau alocate diferitelor procese) ar putea fi reinut ntr%o structur de date de tipul arborelui budd: (vezi [Aho ??]) sau a listelor duble iar politica dup care un bloc de memorie este alocat unui proces ar putea fi 565/ (5irst 6ome 5irst /erved) sau bazat pe prioriti asociate proceselor. 1.2 Obiective (funcii) ale unui sistem de operare ,. /istemul de operare implementeaz diverse strate!ii pentru administrarea resurselor 4. )l ofer o interfa cu utilizatorul c.t mai prietenoas i uor de folosit. (definete un <6= > , identific utilizatorii pentru a putea fi cunoscui n reea, descrie cerinele pro!ramelor utilizator) >. /.0. &scunde complexitatea "ard#are%ului i ofer utilizatorului un set c.t mai convenabil de instruciuni ale mainii virtuale (apeluri sistem) cu care s lucreze. $ro!ramele utilizator trebuie mpiedicate s execute anumite instruciuni (altfel ele ar putea distru!e instruciuni/date din interiorul /.0. sau viola zone de memorie la care nu trebuie s aib acces). $ro!ramele utilizator trebuie s poat executa instruciuni de intrare%ieire prin intermediul unor apeluri standard sistem. Un /.0. ofer c.te o main virtual fiecrui utilizator i are !ri* ca aceste maini virtuale s nu interacioneze unele cu altele. 7. /.0. ofer un mediu n care s poat fi executate pac"ete de pro!rame (/?2D%uri, aplicaii de proiectare asistat de calculator, aplicaii de simulare, vizualizare tiinific etc.) @. /.0. realizeaz prote*area resurselorA astfel mai muli utilizatori pot executa simultan pro!rame i pot s memoreze datele pe acelai disc (parta*area resursei). $rotecia utilizatorilor i a fiierelor lor trebuie realizat de /.0. B. /.0 trebuie s realizeze contabilizarea activitilor efectuate de utilizatori i a resurselor puse la dispoziie de sistemul de calcul (folosirea acestor resurse trebuie ac"itat). 1rebuie s asiste i procesul de evaluare a performanelor sistemului. C. Un /.0. modern trebuie s dea posibilitatea sc"imbului de informaii ntre utilizatori. er!i"ii oferite de "tre un sistem de operare Unele servicii a*ut utilizatorii s asi!ure: lansarea n execuie a pro!ramelor, lansarea operaiilor de intrare/ieire, manipularea informaiei (stocat n fiiere), efectuarea comunicaiilor ntre procese care ruleaz pe acelai sistem de calcul sau pe sisteme de calcul diferite, detectarea i tratarea erorilor care apar n funcionarea sistemului de calcul. &ceste erori pot fi le!ate de funcionarea dispozitivelor (/), erori care apar n funcionarea memoriei (eroare de paritate), erori n pro!rame utilizator (de ex: depirea aritmetic sau ncercarea de acces la o celula din afara spaiului de adrese al unui proces), erori "ard#are (de ex: defectarea sursei de alimentare). <e cate!orii de servicii se refer la operarea eficient a sistemului de calcul. )le cuprind alocarea resurselor (U.6., D.(., ).$., informaie), !estiunea utilizatorilor 7 . > <ob 6ontrol =an!ua!e - component a interfeei cu utilizatorul care permite specificarea fluxului de control al lucrrilor ntr%un sistem de calcul 7 termenul ec"ivalent in limba en!lez: accountin! # (/.0. pstreaz evidena utilizatorilor activi i a resurselor pe care le consum fiecare din eiA astfel de informaii pot servi la ntocmirea de statistici asupra utilizrii sistemului sau la facturarea utilizatorilor), realizarea proteciei (i.e. controlarea accesului la resurse astfel nc.t un proces s nu interfereze cu altul sau cu /.0.) (at mai *os definiiile unor termeni specifici sistemelor de operare. Procesul este o unitate de pro!ram executabil, !estionat de /.0. )ste definit prin ima!inea asociat constituit din codul care se execut, se!mentul de date, de stiv, contorul pro!ram, coninutul re!istrelor i n !eneral toate informaiile care fac ca un pro!ram s poat fi rulat. +n /.0. mai vec"i un proces este asociat unui pro!ram n execuie. +n sistemele actuale, un pro!ram poate fi format din mai multe procese care coopereaz pentru rezolvarea problemei. /e accepta n trecut ideea c un process e un pro!ram care se poate executa n paralel cu alte pro!rame. +n sistemele moderne un proces poate avea mai multe fire de execuie care se execut n paralel. )le au propria stiv dar parta*eaz contextul de execuie al procesului din care fac parte. ([$o% &']). 'esursele sunt elemente ce contribuie la avansul unui proces. Utilizator E oricine (om, masina, dispozitiv) care supune o cerere de prelucrare unui sistem de calcul. Utilizatorii supun spre servire sistemelor de calcul lucrri (*ob%uri). Lucrarea E colecie de activiti corespunz.nd unor anumite prelucrri. =ucrarea este structurat n pai de lucrare (de *ob) E prelucrri ce trebuie executate secvenial. ()xemplu compilarea, editarea de le!turi, ncrcarea i execuia pot fi pai ai unei lucrri.) Spaiul de adrese al unui proces este colecia de module ale unui pro!ram i datele pe care acesta le acceseaz. +n faza de execuie a procesului spaiul de adrese trebuie pus n coresponden cu o poriune din spaiul fizic de memorie al sistemului. /paiul de adrese este totalitatea adreselor pe care un proces le%ar putea accesa n timpul execuiei sale. Fu este obli!atoriu ca, la un moment dat, memoria intern s conin toate celulele din spaiul de adrese ale unui proces. Timp suplimentar de sistem (system overead! E interval de timp n care sistemul execut proceduri ale sistemului de operare. 1.3 Evoluia sistemelor de operare. =a nceput modul de lucru al unui sistem de calcul era 9sin"le user sin"le job; procedurile manuale erau preponderente (exemplu cu asamblarea unui pro!ram). Ulterior ).$. s%au diversificat i s%a renunat la unele din interveniile operatorului uman. 0peraiile de (/) erau controlate de procesor, pro!ramul trebuia s atepte terminarea fiecrei operatii de (/). $entru a evita aceasta s%au adau!at sisteme de ntreruperi, ceasuri sistem i s%a realizat suprapunerea operaiilor de (/) cu cele de calcul. Sisteme batc (prelucrare pe loturi de lucrri). Utilizatorul nu interaciona direct cu calculatorul ci pre!tea un *ob (care cuprindea pro!ramul, datele i cartelele de control) pe care l lsa sub controlul operatorului sistem. <obul era prezentat de obicei sub forma unor cartele perforate. (<02Ecolecie de prelucrri cerute de un utilizator). ( $aii de *ob sunt operaii care se desfoar secvenial. $entru a mri viteza de prelucrare operatorul !rupa *ob%urile care aveau cereri de resurse similare i le rula pe calculator ca un !rup de *ob%uri (un lot de lucrri E batc"). +ntr%o faz ulterioar de dezvoltare te"nolo!ic, introducerea discurilor a permis /.0. s se pstreze toate *ob% urile pe un disc (n locul unui cititor de cartele). &ccesul direct la *ob%uri a permis apariia planificatoarelor de *ob%uri (*ob sc"eduler) iar acestea au lucrat n re!im de multipro!ramare. Figura 2 )u"rri i pai de lu"rri #ultipro"ramare E mai multe pro!rame, aparin.nd mai multor utilizatori sunt ncrcate simultan n zone ale memoriei. +n momentul c.nd unele pro!rame sunt blocate pentru a atepta terminarea unei operaii de (/), altele pot prelua controlul procesorului. Dultipro!ramarea este un mod de a asi!ura creterea !radului de utilizare a unitii centrale. +ntr%un mediu fr multipro!ramare procesorul bucleaz n ateptarea terminrii operaiei de (/)A.ntr%un mediu cu multipro!ramare se selecteaz spre execuie alt proces. Dultipro!ramarea determin modificri n !estiunea memoriei, planificarea procesorului. 0 extensie (evoluie) a /.0. cu multipro!ramare sunt /.0. cu divizarea timpului (timesarin", timp parta*at). &cestea permit interaciunea utilizatorilor cu sistemul de calcul. 6omutarea procesorului ntre diferite procese este at.t de frecvent nc.t utilizatorii pot interaciona (prin intermediul tastaturii sau mouse%ului) cu pro!ramul c.t timp acesta ruleaz. /istemele time%s"arin! trebuie s asi!ure timpi mici (GE , sec.) de rspuns ai pro!ramelor. Decanisme (elemente soft#are) necesare implementrii funcionalitii sistemelor time%s"arin!: posibilitatea salvrii/restaurrii pe disc a coninutului unor zone de memorie intern (s$ap in%out) memoria virtual: te"nic ce permite execuia unui proces fr ca acesta s fie rezident n ntre!ime n memoria intern existena unui sistem de fiiere mecanisme de execuie concurent a proceselor inclusiv mecanisme de comunicare i sincronizare ntre procese. *
)lemente "ard#are necesare dezvoltrii sistemelor time%s"arin!: #oduri de operare distincte ale unitii centrale (mod utilizator, mod supervizor (monitor, privile"iat)). )le realizeaz prote*area /.0. de aciunile eronate ale unor pro!rame utilizator (sau prote*area a dou pro!rame utilizator unul de cellalt). )xist unele instruciuni privile!iate (de obicei instruciuni de (/)) care pot fi executate numai n mod supervizor. +n acest fel instruciunile de (/) nu pot fi executate dec.t de poriuni ale nucleului (numit i &ernel) sistemului de operare. 'ealizarea proteciei la accesul memoriei. 1rebuie prote*ai vectorii de ntrerupere i codul rutinelor de tratare a ntreruperilor. Un mod de a implementa protecia la accesul la memorie este folosirea unui "ard#are suplimentar: un re!istru de baz i un re!istru limit. &cestea desemneaz o zon conti!u de memorie. U.6. compar la fiecare !enerare de adres (pentru a accesa n mod utilizator o celul de memorie) respectiva adres cu coninutul celor doi re!itri. Dac adresa nu este n intervalul Hbaza, bazaIlimitaJ va rezulta un apel (trap) ctre monitor care consider aceast ncercare de acces o eroare fatal. Dodificarea re!istrelor de baz i limit se face folosind instruciuni privile!iate. $rotecia unitii centrale (s nu execute cicluri infinite de exemplu) se realizeaz folosind timere (cronometre). &ceste timere sunt utile i pentru a msura durata de timp n care procesorul a fost alocat unui anumit proces (aceasta trebuie comparat cu durata maxim permis a unei cuante de timp (time%slice) alocate unui proces) ntr%un sistem time%s"arin!. 1.4 Sisteme multiprocesor i sistemele de operare asociate acestora Dei ma*oritatea sistemelor de calcul de astzi sunt monoprocesor, exist o cretere continu a ponderii sistemelor multiprocesor. /istemele multiprocesor pot fi: sisteme cu cuplaj str'ns (ti"tly coupled processors) c.nd procesoarele parta*eaz ma!istrala i ceasul sistem (uneori c"iar i memoria i unele ec"ipamente de (/)) /isteme slab cuplate (loosely coupled processors) care sunt de fapt colecii de sisteme relativ autonome, fiecare procesor av.nd propria memorie i propriile canale de (/). &vanta*ele sistemelor de calcul multiprocessor sunt mrirea productivitii, sisteme mai ieftine (se parta*eaz memoria i unele dispozitive (/).), crete fiabilitatea. Defectarea unui procesor nu determin oprirea ntre!ului sistem. &vem o de!radare !raioas a performanelor ceea ce caracterizeaz sistemele tolerante la defecte. +n cazul sistemelor multiprocesor cu multiprelucrare simetric (/D$) fiecare procesor este 9e!al n drepturi; cu celelalte i ruleaz o copie identic a /.0. )xist i maini /D$ i sisteme de operare /D$. Un /.0. /D$ planific procese (sau fire de execuie % t"read%uri) pe oricare dintre procesoare. &vanta*ele unui astfel de sistem sunt: performane mai bune (unele activiti se pot desfura n paralel), disponibilitate sporit (dac un processor se defecteaz, maina nu se oprete), ' creterea incremental a performanelor prin adu!area de noi procesoare (scalabilitate). 5urnizorii ofer o !am de produse cu puteri i performane diferite bazate pe confi!urri diferite ale unui numr de procesoare. )xistena mai multor procesoare este transparent utilizatorilor ntr%un /.0. /D$. 0 alternativ la sistemele /D$ sunt clusterele (ciorc"inii de sisteme de calcul). Un cluster este un !rup de sisteme de calcul (fiecare din ele ar putea funciona de unul sin!ur n afara ciorc"inelui) acestea acioneaz ca o resurs unic. /istemele componente ale ciorc"inelui se numesc noduri. 6lusterele sunt clasificate dup cum sistemele de calcul componente parta*eaz sau nu unul sau mai multe discuri. (at mai *os cerinele caracteristice aa numitelor discuri '&(D ('edundant &rra: of (ndependent DisKs - inventat la 2erKele:) asociate de obicei ciorc"inelor de procesoare. Unitile de disc sunt vzute de /.0. ca o sin!ur unitate (drive) lo!ic Datele sunt distribuite ntre unitile fizice ale 9matricii; de discuri )xist i o capacitate suplimentar de memorare care !aranteaz recuperarea datelor n cazul apariiei unui defect la unul din discurile matricei. )xist i un standard industrial ()*+ or!anizat pe B nivele. )l se refer la masive de discuri interconectate care pot fi parta*ate de procesoarele unui cluster.i specific diferite posibiliti de proiectare ale unor ar"itecturi care s satisfac cele > cerine anterioare. 6erinele standardului '&(D admit at.t implementri "ard#are c.t i soft#are. Fivelele (capitolele) standardului '&(D pun n eviden aspecte referitoare la eficiena accesului la informaie, redundana datelor sau posibilitatea reconstruciei datelor n caz de eroare. + Figura # , Clustere -"ior"hini. de/pro"esoare +n cazul sistemelor cu multiprelucrare asimetric (&/$) fiecrui procesor i se asociaz sarcini specifice. )xist un procesor master unde se execut componentele /.0. care planific i aloc lucrul pentru fiecare dintre procesoarele slave. Diferenierea ntre prelucrarea /D$ sau &/$ poate fi !enerat fie de diferene n ar"itectura "ard#are, fie de modul n care a fost scris sistemul de operare (care s permit un sin!ur master i mai muli slave). De exemplu, la sistemele de operare care funcioneaz pe maini /UF cu ar"itectur /D$ exist i sistemul de operare /un 0/ L7, care furnizeaz multiprelucrare asimetric i sistemul /olaris 4 L@ care este simetric. +n unele sisteme exist i microprocesoare slave (bac&,end processor) care preiau unele funcii ale sistemului de operare. De exemplu microprocesoare pentru !estiunea discurilor, microprocesoare pentru !estiunea tastaturii (la $6). 5olosirea unor astfel de procesoare ntr%un sistem de calcul nu mai este considerat actualmente ca o caracteristic a faptului c acel sistem este cu multiprelucrare. 0 1. !lte cate"orii de sisteme de operare Sistemele distribuite. 0dat cu introducerea M)2%ului (,NN8%4888) asi!urarea conectivitii sistemelor de calcul prin intermediul unei reele a devenit o component a sistemului. +n sistemele distribuite (de fapt sisteme slab cuplate) procesoarele nu parta*eaz memoria sau ceasul, ele intercomunic prin le!turi din cele mai diverse cate!orii, de la ma!istrale de mare vitez p.n la linii telefonice. Un sistem de operare -n reea permite parta*area fiierelor n reea, comunicarea prin mesa*e ntre procese care ruleaz pe maini diferite. Un sistem de calcul pe care ruleaz un /.0. n reea este autonom fa de alte sisteme de calcul din reea. +n cazul unui sistem de operare distribuit, sistemele de operare ce lucreaz pe fiecare main comunic suficient de bine a.. utilizatorul are iluzia unui sin!ur /.0. care controleaz ntrea!a reea. Sistemele -n timp real sunt o form specializat de /.0. n care procesele au asociai timpi critici de rspuns. )le trebuie tratate de /.0. astfel nc.t s i ndeplineasc funcia naintea expirrii acestui timp critic asociat. /unt dou cate!orii de sisteme n timp real: ard real,time systems !aranteaz c procesele critice se termin la timp (sunt sisteme utilizate n controlul sistemelor industriale i n robotic)A soft real,time systems un tasK critic primete o prioritate superioar celorlalte tasK%uri i rm.ne cu aceast prioritate nemodificat p.n la terminarea saA n cazul acestei cate!orii de sisteme n timp%real nerespectarea unei cerine le!ate de timin! nu determin o comportare catastrofal a ntre!ului sistem. /istemele timp%real pot fi statice (analiza activitilor sistemului - cereri/rspunsuri % poate fi efectuat complet la momentul proiectrii) sau dinamice (cererile apar la momente aleatoare iar sistemul trebuie s rspund conform unor caracteristici de performan specificate iniial). /istemele n timp%real pot fi at.t sisteme distribuite c.t i sisteme specifice unor aplicaii cu natur Ocentralizat; cum ar fi sisteme asociate roboilor industriali, sau conducerii optimale a unui autoturism. /istemele caracteristice acestei cate!orii de aplicaii sunt cunoscute sub numele de embedded systems. /pre exemplu astzi, sisteme de tipul telefoanelor mobile ruleaz astfel sisteme de operare adecvate !estionrii unor cate!orii de aplicaii, cum ar fi aplicaiile multimedia. &