+ All Categories
Home > Documents > cap. 1.doc

cap. 1.doc

Date post: 10-Oct-2015
Category:
Upload: nicolae-sirbu
View: 29 times
Download: 0 times
Share this document with a friend
78
Sisteme de operare. Me canisme interne i principii de proiectare ș 1. Introducere Curs ul tratează con cepte le i principiile fundame ntale ale teorie i i practici i sistemel or de operare (SO). Sunt prezent ate ș ș defini iile principale i unele clasificări, interfe ele sistemelor de operare, modul de organizare a procesului de calcul, ge stionarea ț ș ț memori ei i a dispoz itivel or perife rice, adm inistr area info rma iei i gesti unea fi iere lor. L ucrare a acope ră aspec tele aso ciate ș ț ș ș  bazelor contemporane ale metodelor şi mijloacelor de elaborare a resurselor program de sistem (inclusiv, operaii asincrone, tratarea !ntreruperilor, compromisele dintre dispozitivele te"nice şi resursele program, interfeele sistemelor de operare), av#nd drept obiectiv final pregătirea cititorului pentru analiza şi proiectarea sistemelor de operare. Cursul include capitole teoretice i ș materiale ilustrative practice, c"emate să familiarizeze cititorul nu at#t cu modalitatea utilizării unor sisteme de operare concrete, ci !n specia l cu metodele i algoritmii, care stau la baza mecanismelor interne ale sistemelor de operare i modul !n ca re acestea ș ș sunt concepute, proiectate i imple mentate. ș
Transcript

1

Sisteme de operare. Mecanisme interne i principii de proiectare

1.IntroducereCursul trateaz conceptele i principiile fundamentale ale teoriei i practicii sistemelor de operare (SO). Sunt prezentate definiiile principale i unele clasificri, interfeele sistemelor de operare, modul de organizare a procesului de calcul, gestionarea memoriei i a dispozitivelor periferice, administrarea informaiei i gestiunea fiierelor. Lucrarea acoper aspectele asociate bazelor contemporane ale metodelor i mijloacelor de elaborare a resurselor program de sistem (inclusiv, operaii asincrone, tratarea ntreruperilor, compromisele dintre dispozitivele tehnice i resursele program, interfeele sistemelor de operare), avnd drept obiectiv final pregtirea cititorului pentru analiza i proiectarea sistemelor de operare. Cursul include capitole teoretice i materiale ilustrative practice, chemate s familiarizeze cititorul nu att cu modalitatea utilizrii unor sisteme de operare concrete, ci n special cu metodele i algoritmii, care stau la baza mecanismelor interne ale sistemelor de operare i modul n care acestea sunt concepute, proiectate i implementate.

Un sistem de calcul const din dou tipuri de resurse: resursele fizice i resursele logice. Resursele fizice posed caracteristici tehnice avansate i pot fi utilizate n cele mai diverse scopuri. ns aceste resurse fr componentele logice de sistem (software de sistem) ntmpin dificulti mari n relaia cu mediul n care trebuie s funcioneze. Acesta este unul dintre motivele principale ale crerii sistemelor de operare, destinaia crora este administrarea (gestiunea, controlul) resurselor tehnice principale i asigurarea unei interfee comode (plcute, prieteneti) ntre utilizator i calculator (fig.1.1, [1]).

Fig.1.1. Locul sistemului de operare n cadrul unui sistem de calculExist mai multe motivaii ale necesitii studierii sistemelor de operare, cele mai importante fiind urmtoarele:

pentru utilizarea resurselor hardware n scopuri speciale poate fi necesar s fie creeat un sistem de operare propriu sau s se introduc modificri ntr-unul existent;

de alegerea corect a sistemului de operare i a versiunii concrete poate depinde viabilitatea i eficacitatea sistemului de calcul;

este ideal ca utilizatorul s interacioneze cu sistemul de operare cunoscnd toate subtilitile ultimului, deoarece sistemul de operare este un intermediar ntre calculator i utilizator;

multe metode i concepte, utilizate n domeniul SO, pot fi implementate cu succes i n alte domenii.

Prin noiunea sistem de operare nelegem n primul rnd modulele program ale unui sistem de calcul, care administreaz resursele tehnice (procesoare, memoria operativ i secundar, dispozitive de intrare/ieire, fiiere). Modulele n cauz soluioneaz situaiile de conflict, optimizeaz productivitatea sistemului, sporesc eficiena utilizrii lui. Ele sunt un fel de intermediar (interfa) ntre programele utilizatorului i componentele tehnice ale calculatorului. Alte denumiri istorice: program de administrare, monitor, supervizor.

Modulele destinate unor domenii anume, cum ar fi translatoarele, depanoarele, bibliotecile, mediile integrate de dezvoltare etc., nu sunt incluse n definiia unui SO, fiind considerate i ele utilizatori ai sistemului de operare.

1.1. Noiuni de baz i clasificri

Un calculator const dintr-un ansamblu de componente funcionale fizice i logice, care coopereaz pentru a satisface cerinele utilizatorilor privind introducerea, stocarea, prelucrarea, transmisia i cutarea informaiilor. Aceste componente funcionale sunt structurate pe niveluri, care interacioneaz prin interfee bine definite. Suportul fizic (resurse tehnice, hardware) constituie nivelul inferior al sistemului de calcul construit pe baza unor componente electronice, magnetice, optice, mecanice etc., mai mult sau mai puin sofisticate n funcie de stadiul de dezvoltare a tehnologiilor respective.

1.1.1. Noiuni i termeni din domeniul resurselor tehnice

Pentru a trece la noiunile principale, legate de hardware, vom face cunotin mai nti cu funciile de baz ale unui calculator. Pot fi evideniate cinci funcii eseniale [2]: iniializarea (bootup), introducerea datelor, procesarea datelor, stocarea datelor i extragerea rezultatelor:

Iniializarea implic testarea prilor importante ale calculatorului, rularea fiierelor de pornire i ncrcarea altor fiiere necesare, cum ar fi driverele de dispozitive;

Introducerea reprezint transferul datelor dintr-o surs extern n calculator. Surse externe pot fi dischetele, tastatura, mouse-ul etc.;

Procesarea se refer la manipularea datelor introduse n scopul producerii unui rezultat (ieirea);

Stocarea constituie procesul salvrii informaiilor (date sau programe) ntr-un dispozitiv de pstrare, de exemplu discul fix, pentru recuperarea ulterioar.

Prin structura unui calculator vom nelege componentele (dispozitivele) care formeaz calculatorul i legturile dintre ele. Componentele principale sunt: procesorul, memoria, inclusiv unitile de stocare pe termen lung, dispozitivele de intrare-ieire (tastatura, display-ul, mouse-ul etc.). Relaiile (legturile) dintre aceste componente pot fi foarte variate, o structur devenit apoi clasic, este structura John von Neumann (fig.1.2).

Componentele principale se conecteaz la placa de baz (motherboard) direct sau prin conectoare speciale, numite plci de extensie (daughterboards). Unitatea central de procesare procesorul (CPU) se gsete ntr-un singur circuit integrat (cip) incorpornd unitatea de comand (Control Unit, CU) i unitatea logico-aritmetic (Arithmetic Logical Unit, ALU). Unitatea de comand controleaz funcionarea unitii logico-aritmetice. Memoria este o zon de lucru de mare vitez, unde sunt stocate datele i programele pentru a fi accesate de CPU n mod rapid. Memoria poate fi organizat n mod ierarhic, caz n care exist cel puin dou nivele de ierarhie memoria central (operativ) i memoria secundar (extern, de lung durat). Memoria operativ este electronic sub form de cipuri, de obicei cu acces aleator (RAM Random Access Memory) i trebuie s fie alimentat cu tensiune pentru a pstra datele (memorie vie). Pentru salvarea datelor atunci cnd se ntrerupe alimentarea sau pentru pstrare de lung durat, datele sunt stocate n memoria secundar, care le reine orict de mult timp. Dispozitivele cele mai obinuite de introducere a datelor sunt tastatura i mouse-ul, iar dispozitivul de ieire cel mai utilizat este monitorul. Procesorul i memoria operativ formeaz nucleul calculatorului, toate celelalte dispozitive fiind cunoscute sub denumirea de periferie (dispozitive periferice).

Instruciunile care vor fi ndeplinite de calculator sunt stocate n memorie sub form de programe. Unitatea de comand ine evidena i interpreteaz instruciunile dintr-un program, fiind responsabil cu transmiterea de sarcini specifice diferitelor elemente ale calculatorului. Unitatea de control controleaz n principal funciile de intrare-ieire (I/O), de memorizare i stocare, colaboreaz cu ALU, care rspunde de efectuarea operaiilor de calcul. Mai menionm noiunile: mrimea magistralelor interne i externe de date, mrimea adresei de memorie, frecvena ceasului.

Mrimea magistralei interne de date: procesoarele pstreaz datele n locaii speciale, numite registre. Datele sunt transferate ntre registre, CU, ALU i alte componente ale procesorului prin intermediul unei magistrale realizate n circuitele procesorului. Numrul de linii n aceast magistral ofer o msur a cantitii de date pe care procesorul o poate transfera ntr-o singur operaie. Valoarea ei poate varia ntre 8 i 32 de bii (n scopuri speciale 64, 128 sau chiar mai mult).

Mrimea magistralei externe de date msoar cte date pot fi transferate ntre procesor i dispozitivele periferice ntr-un tact de ceas. Magistrala este un sistem de conectri i cablri ce distribuie datele prin calculator. Cu ct magistrala de date e mai mare, cu att performanele calculatorului se mbuntesc. Numrul de linii i aici variaz ntre 8 i 32 de bii.

Mrimea adresei de memorie determin volumul de memorie care poate fi gestionat de calculator fr eforturi speciale. Prin eforturi speciale nelegem resurse fizice sau logice, care permit gestionarea unei memorii cu capacitate mai mare dect volumul obinut prin calcularea adresei reieind din numrul de linii fizice ale memoriei.

Un ceas electronic asigur coordonarea corespunztoare a componentelor calculatorului. Componentele calculatoarelor cu performane superioare pot opera la frecvene de ceas mai mari. Frecvena ceasului indic viteza de operare a CPU i se msoar n miliarde de impulsuri pe secund, adic n GigaHertzi (GHz).

1.1.2. Noiuni i termeni din domeniul sistemelor de operare

Un sistem de operare este un ansamblu de programe de control i de serviciu care ghideaz un calculator n executarea sarcinilor sale i asist programele de aplicaie i utilizatorul prin intermediul anumitor funciuni. Natura funciilor i modul n care acestea sunt realizate determin atributele care caracterizeaz un sistem de operare: timpul de rspuns, simultaneitatea utilizrii, eficiena, partajarea i protecia, universabilitatea, flexibilitatea, extensibilitatea, fiabilitatea i disponibilitatea, transparena i vizibilitatea [3].

Timpul de rspuns exprim durata intervalului delimitat de lansarea unei cereri de serviciu i achitarea acesteia de ctre sistem. Are dou componente: timpul de ateptare pentru ca cererea s fie luat n consideraie i timpul de execuie a acestei cereri.

Simultaneitatea utilizrii msoar gradul n care un sistem poate s execute n acelai timp mai multe lucrri.

Eficiena msoar proprietatea unui sistem de a folosi n mod optim resursele de care dispune.

Partajarea i protecia caracterizeaz nivelul la care utilizatorii au posibilitatea s utilizeze n comun informaia prezent n sistem i nivelul la care pot s comunice ntre ei, n deplin siguran (n sensul evitrii accesului neautorizat i/sau alterrii intenionate sau accidentale a informaiei).

Unversalitatea, flexibilitatea, extensibilitatea msoar gradul n care un sistem poate fi folositor (universalitate) i adaptabil (flexibilitate) unui context specific, exprimat prin nivelul de limitare impus programelor utilizatorului, precum i gradul n care se pot include n sistem noi componente hardware i software fr eforturi de proiectare i programare suplimentare (extensibilitate).

Fiabilitatea i disponibilitatea exprim proprietatea unui sistem de a cdea foarte rar n pan i de a evita goluri n funcionare din cauza defectrii uneia sau mai multor componente ale sale.

Transparena i vizibilitatea exprim pe de o parte proprietatea unui sistem de a face invizibil utilizatorului ceea ce se afl sub interfaa de utilizare care i se ofer i, pe de alt parte, capacitatea de a permite utilizatorilor si s obin anumite informaii despre modul cum el lucreaz, informaii de care n mod teoretic ei nu au nevoie pentru a beneficia de o utilizare complet, ns care ar putea s-i ajute la obinerea unei utilizri mai eficiente [3].

Resursele program reprezint seturi de programe i date utilizate pentru soluionarea anumitor probleme. Programul este transcrierea ntr-un limbaj de programare a unui algoritm, altfel programul este o secven de instruciuni sau simplu cod. Utilizatorul este oricare doritor s ndeplineasc anumite lucrri la calculator. Prin lucrare (sarcin, task) vom nelege un set de aciuni, necesare pentru ndeplinirea unui lucru anume. Sarcina poate conine mai muli pai. Paii de sarcin sunt uniti de lucru, care vor fi ndeplinite consecutiv, de exemplu trei pai compilare, ncrcare i executare. Primind o lucrare de la utilizator, sistemul de operare poate creea cteva procese, prin proces nelegnd la moment, calcule care pot fi efectuate paralel cu alte calcule.

Procesul mai poate fi definit drept traiectoria procesorului, atunci cnd ultimul ndeplinete un set oarecare de programe. Ansamblul programelor i datelor accesate n timpul procesului, formeaz spaiul de adrese. Una din destinaiile sistemului de operare este de a asigura proiectarea spaiului de adrese a unui proces n memoria fizic. Pentru rezolvarea acestei probleme sunt utilizate att resurse tehnice (sisteme cu organizarea memoriei pe segmente sau pe pagini), ct i resurse program speciale.

Multiprogramarea este un termen utilizat n cazul unui sistem n care pot exista simultan cteva procese n etapa de execuie. Un proces se consider n execuie, dac calculele au nceput, dar la momentul considerat nu au fost terminate sau ntrerupte (terminare din cauza unei erori sau din alte motive). Nu este obligatoriu ca un proces care se afl n execuie s fie i executat de procesor la un moment dat.

Resursele hardware de protecie sunt utilizate cel mai des pentru controlul accesrii memoriei. ntreruperea este un mecanism care impune procesorul s observe anumite evenimente. Pot exista mecanisme care permit s nu se acorde atenie unei anume ntreruperi ntrerupere mascat. Resursele hardware de ntrerupere permit sistemului de operare s coordoneze operaiile simultane; pot fi utilizate i pentru a schimba ordinea de execuie a programelor.

1.1.3. Tipuri i exemple de sisteme de operare

Valorile concrete ale atributelor sistemelor de operare i combinaii ale acestora determin diverse tipuri de sisteme i restricii de implementare. Conform acestor atribute pot fi evideniate sisteme de operare [3]:

secveniale

cu multiprogramare

cu prelucrare multipl

n timp real, etc.

Majoritatea sistemelor de operare recunosc programul ca cea mai mic unitate de prelucrare, creia i se atribuie o identitate i pe care un utilizator o poate prezenta spre execuie. Unele sisteme permit ca un program s fie considerat ansamblu de sarcini ale cror execuii (inclusiv n paralel) contribuie la atingerea obiectivului urmrit de acest program.

Un sistem secvenial (tratare pe loturi, batch processing en., traitement par lots fr.) execut la un moment dat un singur program, care trebuie terminat nainte de a lansa un alt program n execuie.

Sistemele cu multiprogramare accept la un moment de timp dat mai multe programe n memoria central, acestea aflndu-se n diverse stadii de execuie.

Un sistem de calcul cu prelucrare multipl dispune de mai multe procesoare, care pot s execute simultan unul sau mai multe programe. Utilizarea efectiv a prelucrrii multiple necesit atributul de multiprogramare. Execuia simultan a unui singur program de ctre mai multe uniti presupune existena posibilitii de a descompune acest program n mai multe procese sau fire de execuie.Sistemele n timp real sunt dedicate, de obicei, funcionrii n cadrul unor sisteme de comand i este necesar ca valorile anumitor atribute s se ncadreze n anumite limite, dictate de dinamica proceselor comandate.

Tipurile de sisteme de operare enumerate mai sus nu sunt nici disjuncte i nici exhaustive. Majoritatea sistemelor existente pot fi ncadrate n mai multe clase, atunci cnd se face o analiz prin prisma obiectivelor pe care le urmresc. La capitolul obiective vom aminti n primul rnd maximizarea eficienei sistemului de calcul i a satisfaciei utilizatorilor. Tot la obiective poate fi trecut i cererea de minimizare a posibilitii de apariie a erorilor i de maximizare a transparenei sistemului de operare, garantarea securitii datelor, optimizarea controlului comunicaiilor n cazul SO de reea. Un obiectiv foarte important este minimizarea efortului concepie-realizare a sistemului, ultim n enumerare, dar poate cel mai important pentru specialiti.

Toate aceste obiective sunt consecine ale dezideratului principal: un sistem de operare este destinat s administreze resursele sistemului de calcul i anume memoria, procesorul (procesoarele), dispozitivele i informaia.

Un sistem de operare este obligat:

s pstreze informaia despre starea fiecrei resurse

s ia decizia crui proces s i se aloce resursa, n ce cantitate i cnd

s aloce resursa i

la momentul oportun s o retrag.

Exemplele care urmeaz [4] vor ilustra diversitatea funciilor ndeplinite de ctre un sistem de operare, fr pretenii de exhaustivitate. Pentru fiecare exemplu vom indica funciile puse n arja sistemului de operare i caracteristicile principale ale acestuia.

1.1.3.1. Cazul calculatoarelor personale

Configuraia cea mai simpl a unui calculator personal (PC) include o unitate central, o memorie principal, un display, o tastatur i un mouse. Aceast configuraie, de obicei, este completat de o memorie secundar i o imprimant (fig.1.3).

Fig. 1.3. Structura unui calculator personal

Utilizatorul unui atare sistem va cere minimum urmtoarele dou tipuri de servicii:

identificarea i crearea unor fiiere sau mulimi structurate de informaii; stocarea acestor fiiere n memoria secundar; transferarea informaiilor ntre fiiere i dispozitivele de intrare/ieire;

executarea unor programe existente n PC sau introduse sub form de fiiere; introducerea datelor necesare pentru executarea programului (de la tastatur, din fiier sau din alte surse); listarea rezultatelor la display, imprimant sau copierea lor ntr-un fiier.

Sistemul de operare poate acorda aceste servicii prin intermediul unui limbaj special, numit limbaj de comand, introducndu-se de la tastatur instruciuni de forma , sau utiliznd mouse-ul i o interfa grafic a utilizatorului (GUI - graphical user interface), acionrile mouse-lui fiind imediat interpretate de sistem.

Iat dou exemple de secvene tipice de activiti n cazul unui PC:

elaborarea unui program;

introducerea programului cu ajutorul tastaturii i a unui editor de texte;

executarea programului introducndu-se datele necesare de la tastatur i extrgnd rezultatele la display sau imprimant;

modificarea programului, dac rezultatele nu sunt satisfctoare i repetarea execuiei;

perfectarea versiunii finale a programului, inclusiv documentarea la necesitate a acestuia;

exploatarea unui program;

cererea de executare a unui program deja existent. Vor fi pregtite n prealabil date de intrare sau acestea vor fi introduse in mod interactiv la cerere cu ajutorul tastaturii;

afiarea rezultatelor pe ecran, listarea la imprimant sau copierea lor ntr-un fiier pentru o utilizare ulterioar.

ntr-un atare sistem funcia partajare a resurselor poate s fie lips, or PC-ul este folosit de un singur utilizator care are controlul total asupra acestuia. Alocarea resurselor este legat de gestionarea memoriei i administrarea fiierelor. Funciile principale vizibile ale sistemului de operare constau n administrarea fiierelor, realizarea operaiilor de intrare/ieire i interpretarea comenzilor provenite de la interfaa utilizator-sistem de operare.

Pentru acest tip de sisteme cele mai importante caracteristici sunt:

fiabilitatea;

eficacitatea;

simplitatea utilizrii;

facilitatea extensibilitii prin adugarea unor utilite noi sau adaptarea la periferice noi.

Ultimele dou aspecte pun n eviden importana interfeelor oferite de sistem (limbajul de comand sau GUI).

1.1.3.2. Comanda unor procese industriale

La o uzin chimic sunt utilizate doua materii prime A i B pentru sinteza produsului C conform fig. .4. Procesul de producere este comandat de un calculator care ndeplinete urmtoarele funcii:

Reglare. Pentru o derulare bun a procesului de fabricaie parametrii de funcionare (temperatura, presiunea, concentraia, etc.) trebuie s se afle ntr-o plaj de valori predefinite. Pentru aceasta va fi acionat debitul de intrare a materiilor prime A sau B. Parametrii de funcionare sunt msurai cu ajutorul unor captoare. Calculatorul preia aceste msurri i, n dependen de algoritmul de comand, acioneaz robinetele de intrare. nregistrare. Rezultatele msurrilor sunt periodic nregistrate; valorile lor sunt afiate pe un tablou de bord i recopiate ntr-un fiier ("jurnal de bord") n scopul unor prelucrri ulterioare (date statistice). Securitate. n cazul n care unul dintre parametrii msurai depete o valoare critic predefinit reactorul trebuie oprit imediat.Acest mod de funcionare introduce unele restricii:1. Msurrile se produc periodic; fie T valoarea intervalului de timp dintre dou msurri consecutive (perioada de eantionare), iar t - timpul total de prelucrare a datelor de ctre calculator (msurarea propriu-zis a semnalelor observate, nregistrarea, calcularea semnalelor de comand i acionarea robinetelor). Sistemul va funciona doar n cazul respectrii relaiei t ( T.2. Securitatea sistemului are prioritate maxim. Depirea unor valori critice trebuie s fie detectat n orice moment i tratarea acestor accidente va ntrerupe toate operaiile n curs de execuie.Funciile principale ale sistemului de operare sunt:

acionarea organelor externe (citirea semnalelor captoarelor, comanda robinetelor); evidena timpului real (declanarea periodic a ciclului de calculare a semnalelor de comand); reacia la evenimentele exterioare (oprire de urgen); gestiunea informaiilor (pstrarea i ntreinerea jurnalului de bord).Existena unor restricii stricte privind durata de prelucrare a informaiilor, noiunea de tratare prioritar, conectarea la dispozitive exterioare de msurare i acionare sunt caracteristice aplicaiilor informatice n timp real. Pot fi menionate i alte domenii cu comand n timp real: centralele telefonice, comanda aparatelor de zbor, robotica, monitoringul medical, etc.

n cazul acestor sisteme caracteristica principal este fiabilitatea, or rezultatele unei funcionri neadecvate pot fi catastrofale. Sistemul trebuie s garanteze un serviciu minim n cazul unor cderi n pan a dispozitivelor tehnice, unor evenimente accidentale sau erori umane.

1.1.3.3. Sisteme tranzacionale

Caracteristicile principale ale sistemelor tranzacionale sunt urmtoarele:

sistemul gestioneaz un set de informaii sau baze de date, care pot atinge volume importante;

asupra acestor informaii pot fi executate anumite operaii predefinite, sau tranzacii, adesea interactive;

sistemul este dotat cu un mare numr de puncte de acces i un mare numr de tranzacii pot derula simultan.

Ca exemplu pot fi menionate sistemele de rezervare a biletelor, de gestiune a conturilor bancare, de arhivare i consultare a documentelor.

Restriciile sunt n primul rnd legate de integritatea i coerena intern a informaiilor, care formeaz bazele de date. Aceste restricii depind, evident de aplicaie. De exemplu, numrul de locuri rezervate ntr-un avion nu poate depi numrul locurilor disponibile, un loc distinct poate fi atribuit unei singure persoane, etc.

Calitile obligatorii ale unui sistem tranzacional sunt disponibilitatea i fiabilitatea; pentru unele sisteme poate fi important i tolerana la defeciuni. O caracteristic important ale sistemelor tranzacionale este multitudinea activitilor paralele, iar n multe cazuri i repartizarea geografic a componentelor.

1.1.3.4. Sisteme cu partajarea timpuluiDestinaia principal a unor astfel de sisteme este furnizarea serviciilor necesare unei mulimi de utilizatori, fiecare dintre ei beneficiind de servicii:

echivalente serviciilor unui calculator individual;

legate de existena unei comuniti de utilizatori: partajarea informaiilor, comunicaii ntre utilizatori.

Problemele care apar datorit conceptului de partajare a timpului sunt o combinaie a problemelor existente n cazul unui calculator individual cu cele din sistemele tranzacionale i pot fi clasificate dup cum urmeaz:

definirea mainii virtuale, oferite fiecrui utilizator;

partajarea i alocarea resurselor fizice comune: procesoare, memorii, organe de comunicaie;

gestionarea informaiilor partajate i a comunicaiilor.

Caracteristicile obligatorii unui atare sistem combin n egal msur calitile unui sistem de operare al unui calculator individual i al unui sistem tranzacional: disponibilitatea, fiabilitatea, securitatea, exploatarea optim a resurselor fizice, calitatea interfeei i serviciilor utilizatorului, simplitatea adaptrii i extensibilitii.

1.2. Puncte de vedere asupra sistemelor de operare

1.2.1. Sistemul de operare i procesele

Noiunea de proces, introdus mai sus, este asociat conceptului de lucrare (pentru a lua n considerare aspectele dinamice) i poate fi definit altfel ca o suit temporal de execuii de instruciuni, fiind o entitate de baz n descrierea sau analiza funcionrii unui sistem de operare. Evoluia n timp a unui proces presupune un consum de resurse, dictat de natura i complexitatea instruciunilor de executat. Orice utilizare a unei resurse este asociat, la un moment dat, unui proces i procesul respectiv i asum rspunderea utilizrii acestei resurse. n particular, rezult c ori de cte ori se execut procedurile de sistem, resursele pe care le utilizeaz sistemul intr n administrarea procesului (fie el i al utilizatorului), care a cerut serviciul. Mulimea resurselor (procesorul, memoria central, informaia, dispozitivele) alocate unui proces variaz n timp (dinamica procesului).

Anterior un sistem de operare a fost definit ca un set de programe destinat s administreze resursele. Care sunt relaiile dintre programele sistemului de operare? Atunci cnd un proces este creat, care este ordinea de utilizare a unui anume program al SO? Pentru a rspunde la aceste ntrebri (i la altele) vom face cunotin cu ciclul de via a unui proces. n fig. 1.5 sunt prezentate trei procese (trei sarcini ale utilizatorilor, lansate n execuie) existente ntr-un sistem cu multiprogramare.

Fig. 1.5. Trei procese ntr-un sistem cu multiprogramare

Ciclul de via a unui proces poate fi reprezentat printr-un set de stri ale procesului i tranziiile de la o stare la alta. Vom evidenia trei stri elementare ale unui proces: proces ales (sau exe) procesului i s-a alocat un procesor, este n curs de execuie, proces blocat (wait) procesul ateapt s se produc un anumit eveniment a crui apariie este indispensabil, proces eligibil (ready) procesul are la dispoziie toate resursele necesare lips fiind doar procesorul, adic este pregtit s fie execute din momentul alocrii unitii centrale (fig. 1.6).

Fig. 1.6. Strile elementare din ciclul de via a unui proces

Modelul prezentat n figura 1.6 este unul puternic simplificat, n realitate existnd abateri substaniale n direcia complexitii (fig. 1.7). Sistemul de operare este acea component, care va ghida procesul prin toate aceste stri.

Fig. 1.7. Modelul strilor unui proces i componentele SO responsabile de tranziii1.2.2. Main ierarhic i main extins

Astzi este greu de nchipuit c doar cu cteva decenii n urm un utilizator era nevoit s programeze n zerouri i uniti, utiliznd o maina goal. Chiar i specialitii nu prea iubesc s scrie programe ntr-un limbaj de asamblare sau (i mai evident) utiliznd doar instruciuni din setul, garantat de resursele fizice. Un program elaborat de un specialist poate fi de forma [1]:

1. Transfer C, BStabilete C=B

2. Gsete zona 80, XS se gseasc 80 de octei de memorie liberi i s se plaseze adresa zonei n X

3. Introdu date n XS se citeasc datele indicate n zona X

4. Compar X(2), /*Coincide coninutul primilor 2 octei ai zonei X cu /*?

5. Dac da, STOPDac coincid, salt la STOP

Instruciunile 1, 4 i 5 sunt instruciuni standard n multe calculatoare contemporane. ns execuia corect i eficient a instruciunilor 2 i 3 poate solicita ndeplinirea a zeci, sute sau chiar mii de comenzi din setul standard, deoarece aceste instruciuni cer interaciunea cu unele resurse cheie, cum ar fi memoria operativ i dispozitivele de intrare-ieire. Sistemul de operare asigur instruciuni pentru realizarea unor astfel de funcii de administrare a resurselor: instruciunile 2 i 3 sunt instruciuni ale mainii extinse ele neavnd echivaleni n setul de instruciuni hardware. Sistemul de operare completeaz setul standard, realizat hardware, cu instruciuni de acest gen.

Setul de instruciuni realizat hardware mpreun cu instruciunile suplimentare ale sistemului de operare formeaz sistemul de comenzi al mainii extinse. Grafic conceptul de main extins poate fi reprezentat conform fig. 1.8. Sistemul de operare este executat pe maina goal, iar programele utilizatorului pe maina extins. S facem cunotin acum cu modul n care sunt organizate ntr-un tot ntreg componentele sistemelor de operare.

Primele sisteme de operare erau formate dintr-un singur program mare. Dar, odat cu sporirea complexitii sistemelor, aceast abordare liniar conducea la dificulti serioase i s-a propus s se utilizeze i n acest domeniu conceptul de main extins. Acest concept, n cazul sistemelor de operare, poate fi utilizat n dou nivele (fig. 1.9) i conduce la noiunea de main ierarhic [4]: primul nivel - funciile cheie, utilizate de majoritatea modulelor de sistem, pot fi realizate n cadrul unei maini extinse interne i nivelul doi - unele module pot fi executate n cadrul unei maini extinse externe, analogic proceselor utilizatorului.

n aceast abordare ierarhic apare imediat problema alegerii corecte a nivelului de ierarhie pentru fiecare modul al sistemului de operare (n maina extins intern, extern sau va fi prezent n calitate de proces extern). Pot fi evideniate subnivele ale celor dou maini extinse, iar interaciunea proceselor sistemului de operare ne conduce la necesitatea introducerii mai multor straturi ale proceselor. Modulele sistemului, plasate n cadrul mainii extinse, spre deosebire de modulele care aparin straturilor proceselor, formeaz nucleul sistemului de operare. Concepia mainii ierarhice este pe larg utilizat n proiectarea programelor mari utiliznd metodele, cunoscute sub denumirea programare modular sau programare structural. Nu exist reguli stricte n privina numrului de nivele, amplasrii modulelor pe nivele, componena nucleului. De obicei, nucleul conine doar cele mai necesare i evidente funcii, celelalte, atunci cnd este posibil, vor fi prezente ca procese de sistem separate. O detalizare a conceptului de main ierarhic este adus n fig. 1.10. Procesele (incluse n dreptunghiuri) se adreseaz ctre funciile nucleului i utilizeaz mpreun sursele sistemului. Unele procese genereaz sau comand alte procese (grania dintre ele este prezentat de liniile n zig-zag, care separ diferite straturi ale proceselor). ntr-o realizare strict ierarhic modulele, situate ntr-un nivel oarecare, pot accesa (se pot adresa) numai resursele nivelelor inferioare.

La nivelul 1 (nivelul cel mai inferior) sunt situate funciile de care au nevoie toate componentele administrrii resurselor. Una dintre acestea este funcia care urmrete repartizarea resurselor, funcie, care la rndul su, solicit anumite mijloace de sincronizare. Aceste operaii elementare sunt numite P-operator (ocuparea resursei sau cererea de acces) i V-operator (eliberarea resursei). Sincronizarea se face printr-o tehnic de programare, numit semafor. Fiecrei resurse i este ataat un semafor. Atunci cnd n sistem apare o cerere pentru o resurs oarecare, pentru testarea semaforului respectiv este utilizat P-operatorul; dac semaforul este pe verde (resursa este liber), P-operatorul l trece pe rou (l nchide) i returneaz controlul. n caz contrar, procesul care a generat cererea este trecut n stare de ateptare, pentru ca mai trziu, atunci cnd V-operatorul va elibera resursa i va trece semaforul pe verde, s acceseze resursa.

Amplasarea funciilor elementare pe nivele poate fi fcut n felul urmtor:

Nivelul 1.Administrarea procesoarelor (nivelul inferior)

P - operatorii de sincronizare

V - operatorii de sincronizare

planificarea proceselor (aparatul de multiprogramare)

Nivelul 2.Administrarea memoriei

alocarea memoriei

eliberarea memoriei

Nivelul 3.Administrarea procesoarelor (nivelul superior)

crearea i distrugerea unui proces

transmiterea i recepionarea mesajelor ntre procese

lansarea unui proces

oprirea unui proces

Nivelul 4.Administrarea dispozitivelor

urmrirea strilor tuturor dispozitivelor periferice

planificarea intrrilor/ieirilor

iniierea operaiilor de intrare/ieire

Nivelul 5.Administrarea informaiei

crearea i distrugerea unui fiier

deschiderea i nchiderea unui fiier

citirea i nscrierea unui fiier.

Nucleul sistemului de operare este format de subprogramele, care asist execuia proceselor. Pentru a decide care funcii pot fi realizate n form de procese separate este necesar s se stabileasc funciile care pot fi executate independent i n mod paralel cu procesele utilizatorului (nu se va ctiga nimic evideniind n procese separate funcii care trebuie s fie ndeplinite secvenial). Sistemele avansate permit crearea oricrui numr de procese, ceea ce este foarte comod pentru organizarea calculelor paralele sau a regimurilor de timp real. n cadrul tehnologiilor noi noiunea de proces a fost substanial modificat, introducndu-se alte concepte (fire, thread en.), care exploateaz ntr-un mod mai eficient ideile multitasking-ului i multiprogramrii.

1.2.3. Alte puncte de vedere

n compartimentele precedente au fost tratate sistemele de operare din diferite puncte de vedere, cum ar fi SO i procesele, SO i maina extins sau SO i maina ierarhic. Exist i alte puncte de vedere asupra sistemelor de operare pe care un specialist ar trebui s le cunoasc.

Pentru un utilizator obinuit, convins c un calculator este doar un instrument care l ajut n rezolvarea unor probleme din domeniul su de activitate, noiuni cum ar fi administrarea memoriei cu paginaie sau driverele dispozitivelor nu semnific prea multe. Destinaia principal a unui sistem de operare pentru aceast categorie de utilizatori este punerea la dispoziie a unui set de programe care ar ajuta n formularea i rezolvarea problemelor concrete. Abordarea sistemelor de operare din acest punct de vedere (abordare funcional) poate conduce la confundarea lor cu unele programe, utile i foarte importante cum sunt translatoare, bibliotecile, mediile integrate, etc. Pentru a evita posibilitatea apariiei unei astfel de probleme aceste programe, de obicei, nu sunt considerate componente ale sistemului de operare.

Interfaa sistemului de operare cu utilizatorul prezint un interes aparte. Progresul n acest domeniu este spectaculos, dac vom lua n consideraie c n primele sisteme de operare utilizatorul era obligat s indice n mod explicit i manual fiecare pas, orict de nesemnificativ ar fi prut. Formularea pailor cu ajutorul limbajului de control al lucrrilor (Job Control Language, JCL) nu a schimbat substanial situaia. Acest limbaj, nefiind agreat de utilizatorii simpli, care l-au denumit limbaj psresc, aa i nu a fost acceptat de ctre acetia.

Conform JCL utilizatorul trebuie s ncorporeze programul propriu ntr-un set de instruciuni, care indicau nceputul, sfritul programului i al datelor de intrare, paii i coninutul concret al pailor. JCL n principiu era un metalimbaj de programare (programare la nivel macro). Pentru mijloacele tehnice de la acea perioad JCL a sporit substanial eficiena sistemelor de calcul, dei au existat multe inconveniente, principalul fiind lipsa posibilitii lucrului interactiv.

Microprocesoarele i memoriile anilor 1970 au pus problema lansrii pe pia a calculatoarelor personale (PC) cu toate consecinele asociate. Una din consecine este i interfaa utilizator-calculator, sistemul de operare devenind pn la urm responsabil de aceasta. Interfaa grafica a utilizatorului (Graphical User Interface - GUI) a aprut mai nti ca un complement al sistemului de operare (pentru MS DOS - Windows 1, Windows 2 sau chiar Windows 3, de exemplu), pentru ca mai apoi s fie integrat n cadrul sistemului (Windows 95, Windows NT, etc.). Un sistem de operare nu este, n principiu, obligat s posede o interfa sofisticat, totul este determinat de baza tehnic utilizat i de necesitile concrete. Oricum, un specialist trebuie s disting aceste dou noiuni sistemul de operare i interfaa utilizatorului.

1.3. Evoluia sistemelor de operare

O analiz cronologic a dezvoltrii sistemelor de operare este greu de realizat, deoarece multe din principiile foarte importante au fost realizate pentru prima dat cu mult nainte de a deveni unanim acceptate. De exemplu, conceptele de memorie paginat i memorie virtual au fost realizate pentru prima dat n 1959 n cadrul sistemului Atlas [5], fiind utilizate la mijlocul anilor 1960 n unele sisteme cu destinaie special, pentru ca n 1972 s fie preluate de firma IBM n cadrul familiei de calculatoare mari.

Primele sisteme erau caracterizate prin prelucrarea secvenial a sarcinilor. Timpul de execuie a programelor era relativ mare, instrumentele de depanare primitive, fiecare programator i ncrca n mod individual programul (pachetul de cartele perforate), apsa butoane, controla coninutul locaiunilor de memorie, etc. (1950 1956).

Sporirea vitezei de calcul, dar i a preului calculatoarelor cerea o utilizare mai eficient a timpului de calculator. Nu putea fi tolerat situaia ca un calculator s nu fac nimic, atunci cnd utilizatorul i ncarc n mod manual programul. Au fost propuse programe de monitorizare (monitoare), care treceau de la o lucrare la alta n mod automat, utilizatorul fiind responsabil de organizarea corect a programelor n cadrul unui pachet primele ncercri de prelucrare pe loturi (1956 1959).

Odat cu creterea complexitii calculatoarelor, ndeosebi n ceea ce consta administrarea dispozitivelor periferice, au fost propuse sisteme supervizoare (executive), care se aflau n memoria calculatorului n mod constant i acordau utilizatorilor servicii n gestiunea operaiilor de intrare/ieire (1959 1963). n aceste sisteme de operare erau realizate i o serie de faciliti noi, cum ar fi controlul unor posibile ncercri din partea programului de a nclca restriciile existente n sistem, culegerea informaiilor de eviden, etc.

Au urmat apoi sistemele cu multiprogramare menite la nceput s rezolve problema armonizrii vitezei de calcul a unitii centrale i a perifericelor. Drept consecin, au aprut o mulime de limbaje de control a lucrrilor, a fost realizat o standardizare substanial a operaiilor de intrare-ieire.

Dup 1965 au aprut primele sisteme cu partajare a timpului (time sharing), au fost propuse sisteme sofisticate de administrare a informaiei (sisteme de gestiune a datelor sau sisteme de fiiere, File Systems). Principiul time sharing oferea posibilitatea lucrului interactiv a mai multor utilizatori pe un singur calculator, fiecrui utilizator n mod ciclic acordndu-i-se un interval anume de timp (cuant de timp) i, datorit vitezei mari de calcul a unitii centrale, crendu-i-se impresia posesiei tuturor resurselor calculatorului.

Memoria virtual i mainile virtuale sunt nite principii care nici pn astzi nu au fost exploatate pn la capt. Progresele ultimilor ani n domeniul resurselor tehnice au permis implementarea acestor principii nu numai n cadrul sistemelor de calcul mari, ci i pentru calculatoarele personale. Specificaiile sistemelor de operare au fost n mare msur standardizate, diversitatea SO devine tot mai mic, muli specialiti exprimndu-i ngrijorarea de o posibil monopolizare a domeniului ntr-un viitor apropiat. Evident, aceasta nu poate s sugereze nici ntr-un caz ideea c studierea principiilor de baz (mai vechi i mai noi) ale sistemelor de operare ar fi de prisos, ca i familiarizarea sau chiar cercetarea minuioas a unor sisteme existente, nicidecum nu poate nsemna, n special pentru un specialist, pierderea interesului fa de analiza i concepia sistemelor de operare.

O prezentare succint a evoluiei sistemelor de operare faciliteaz nelegerea caracteristicilor actuale ale acestora i a termenilor deja introdui.

1.3.1. De la "poart deschis " la tratarea pe loturi

Primele calculatoare nu dispuneau de sisteme de operare. Fiecrui utilizator i se rezerva pentru un timp determinat calculatorul cu toate resursele acestuia. Interaciunea era direct, programul i datele fiind introduse n mod manual sub form de zerouri i uniti. Utilitarele care au aprut aveau destinaia de a asista elaborarea programelor (asambloare, compilatoare, etc.) sau de a facilitata operaiile de intrare-ieire.

Acest mod de exploatare, numit "poart deschis", era de o eficacitate minim, dispozitive foarte costisitoare fiind utilizate ineficient. Din aceast cauz la sfritul anilor 1950 au aprut primele "monitoare de nlnuire" - programe care permiteau executarea secvenial a unui set de lucrri, pregtite anticipat, trecerea de la o lucrare la alta fiind realizat n mod automat.

Funcia principal a unui atare sistem era gestiunea resurselor: memoria, procesorul, dispozitivele perifierice. Automatismul acestei gestionri implic o funcie de protecie a setului de lucrri contra unor riscuri perturbatorii in caz de eroare:

limitarea timpului de ocupare a procesorului pentru a evita blocarea sistemului atunci cnd un program conine o bucl infinit;

administrarea corect a intrrilor-ieirilor pentru a evita blocajele n utilizarea perifericelor;

protecia zonei de memorie rezervate monitorului pentru a mpiedica modificarea accidental a acestuia.

Dei utilizarea monitoarelor de nlnuire a ameliorat notabil randamentul utilizrii procesorului, acest randament rmnea foarte sczut din cauza c procesorul nu era folosit n timpul operaiilor de intrare-ieire. O soluionare ar fi constat n utilizarea a dou calculatoare - unul (principal) pentru executarea programelor i altul (auxiliar) pentru operaiile de intrare-ieire. O planificare adecvat a executrii lucrrilor permitea utilizarea celor dou calculatoare n paralel, dnd posibilitatea sporirii la maximum a randamentului calculatorului principal.

1.3.2. Multiprogramarea

Progresul tehnologic i conceptual al anilor 1960 - 1970 a permis excluderea unor limitri caracteristice sistemelor de tratare pe loturi. Astfel, au fost introduse procesoare specializate pentru operaiile de intrare-ieire (unitile de schimb sau canalele), care permiteau eliberarea procesorului central de gestionarea dispozitivelor de intrare-ieire. Introducerea principiului multiprogramrii cu partajarea memoriei ntre mai muli utilizatori au permis o utilizare i mai bun a procesorului central.

1.3.2.1. Organizarea intrrilor - ieirilor n zone de memorie tampon

Un canal este un procesor specializat n executarea autonom a operaiilor de intrare-ieire, paralel cu procesul de prelucrare a informaiilor. Viteza de lucru a organelor periferice este relativ mic din cauza unor dispozitive mecanice care intr n componena acestora. Pentru excluderea influenei perifericelor asupra vitezei de lucru a sistemului de calcul s-a propus s se pstreze n memorie n anumite zone tampon datele de intrare (care vor fi utilizate la necesitate) i rezultatele (care vor fi imprimate n mod autonom) mai multor lucrri. Aceast situaie este prezentat n fig.1.11.

Pentru a exclude utilizarea ineficient a memoriei operative prin formarea zonelor-tampon, acestea erau organizate n memoria secundar de capacitate nalt, transferurile ntre aceste dou nivele ale memorie fiind de asemenea comandate de un canal.

Dei utilizarea memoriilor tampon prezint o serie de avantaje privind sporirea randamentului dispozitivelor calculatorului, totui dou momente negative pot fi menionate:

atunci cnd lucrarea n curs de execuie are nevoie de date unitatea central rmne inactiv pe toat perioada citirii acestora; o lucrare de scurt durat, sosit n timpul execuiei unei lucrri "lungi", trebuie s atepte terminarea acesteia din urm.

1.3.2.2. Multiprogramarea

Ultimele dou momente au condus la ideea utilizrii unui mod de funcionare a SO n care:

o lucrare aflat n starea eligibil s poat folosi unitatea central, eliberat de o lucrare care trece n ateptarea datelor,

unitatea central s poat modifica timpul su de alocare nainte de terminarea unei lucrri n scopul satisfacerii cerinelor legate de timpul de rspuns.n acest caz este necesar ca valoarea timpului de comutare a unitii centrale s fie mai mic n raport cu durata unui transfer ntre nivelele memoriei. Aceasta implic prezena simultan n memoria operativ a mai multor programe sau pri de programe. Acest mod de funcionare este numit multiprogramare [6] i este prezentat n figura 1.12.

Schema din figura 1.12 evideniaz dou momente importante: rolul principal al memoriei operative (n SO anterioare acest rol era deinut de ctre unitatea central) i fluxul informaional ntre memoria operativ i cea secundar. Drept consecin, volumul memoriei operative i viteza de transfer ntre cele dou nivele ale memoriei devin caracteristici determinante ale performanei sistemului.

Principalele avantaje i restricii ale multiprogramrii pot fi prezentate n rezumat dup cum urmeaz:

un sistem cu multiprogramare este mai complicat de conceput i implementat pentru c el trebuie s asigure partajarea memoriei i protecia reciproc a programelor;

multiprogramarea solicit dispozitive speciale pentru relansarea programelor i protecia memoriei;

un sistem cu multiprogramare asigur o utilizare mai uniform a resurselor: unitatea central, memoria, organele de intrare-ieire;

multiprogramarea permite reducerea timpului de rspuns n cazul lucrrilor de durat mic ntr-un sistem cu prelucrare secvenial.

1.3.2.3. Partajatarea timpuluiUn sistem de operare cu partajarea timpului trebuie s garanteze fiecrui utilizator un timp acceptabil de rspuns. Acest rezultat este obinut prin alocarea succesiv a procesorului pentru trane de timp (cuante) relativ mici programelor utilizatorilor. Viabilitatea unei asemenea tehnici este legat de caracteristicile lucrului interactiv. Activitatea unui utilizator conine dou componente: timpul de reflecie (gndire), n care utilizatorul elaboreaz, propune subiecte de lucru, introducnd n calculator informaii i timpul de ateptare, cnd ateapt prestarea serviciului solicitat. Prima component este de o durat medie mult mai mare dect a doua i sistemul poate s serveasc simultan mai muli utilizatori, folosind timpul mort, datorat perioadei de reflecie.

Ca exemplu, fie un sistem cu partajarea timpului, care deservete 1000 utilizatori cu un comportament mediu identic. Admitem c durata timpului de gndire este n medie de 9 ori mai mare dect a timpului de ateptare, acesta din urm reprezentnd 10% din timpul total. Avem n medie 100 utilizatori activi (care se afl n ateptarea unui rspuns la un serviciu cerut). Presupunem c valoarea cuantei este de 5 ms. Dac executarea unei cereri dureaz o cuant, timpul de rspuns va fi de ordinul unei jumti de secund.

Am admis n acest exemplu c toate programele utilizatorilor activi se afl n memoria principal: timpul de comutare ntre programele a doi utilizatori se reduce la timpul de realocare a unitii centrale, care poate fi neglijat n comparaie cu valoarea cuantei. Multiprogramarea devine obligatorie, dac inem cont de raportul dintre acest timp i timpul necesar pentru ncrcarea unui program n memoria secundar. Situaia este de fapt i mai complicat: volumul memoriei principale nu permite aflarea aici a tuturor programelor utilizatorilor activi. Este posibil ca o informaie s fie lips n memoria operativ atunci cnd unitatea central are nevoie de ea. Rolul sistemului de operare este de a minimiza pe ct este posibil probabilitatea apariiei unui atare eveniment.

Dezvoltarea sistemelor de operare cu partajarea timpului a pus n eviden importana interaciunii om-calculator. Acest aspect a fost mult timp neglijat, dar cei care au procedat altfel au avut doar de ctigat.

Apariia microprocesoarelor cu posibiliti mari de calcul i preuri tot mai mici a permis pe de o parte utilizarea la scar larg a calculatoarelor personale, iar pe de alt parte, satisfacerea cerinelor utilizatorilor sistemelor informatice de partajare a resurselor fizice i logice distribuite geografic. Au aprut noi tipuri de sisteme informatice: calculatoarele personale, reelele locale i reelele globale.

Conceptele i tehnicile elaborate pentru sistemele centralizate au rmas valabile i n cazul serverelor sau sistemelor de operare pentru calculatoarele personale. Repartizarea distribuit a informaiei, precum i transmiterea ei la distane mai mari sau mai mici a ridicat probleme noi, cum ar fi coordonarea activitilor la distan sau meninerea coerenei informaiilor distribuite. Toate acestea au trebuit s fie luate n consideraie la elaborarea sistemelor de operare de reea.

1.3.3. Windows, Unix i alte sisteme

Paralel cu evoluia tehnic i funcional a sistemelor de operare a avut loc i o important evoluie conceptual, care a permis o mai bun nelegere a funcionrii SO i a condus la elaborarea unor metode proprii de concepere.

Anul 1964 poate fi considerat de debut pentru cercetrile tiinifice n domeniul sistemelor de operare, cercetri care au fost generate de rezultatele obinute n sfera tehnic - primele sisteme cu partajare a timpului (Thor, CTSS), anunarea seriei IBM 360 i introducerea canalelor de intrare-ieire, prima memorie paginat (Atlas), etc. n perioada 1965-1968 au fost fundamentate concepte teoretice importante, necesare pentru contientizarea gestionrii activitilor fizice sau logice paralele: proces secvenial, excluderea mutual, sincronizarea, semaforul. Acestea au fost aplicate cu succes la elaborarea sistemelor de operare: sistemul THE (1967) utilizeaz semafoarele, sistemul Multics (1964-1970) conine un nucleu de gestionare a proceselor. Metode i utilitare destinate sistemelor distribuite sunt propuse la sfritul anilor 1970. Utilitarele de sincronizare ncep s fie introduse n limbajele de programare. Sunt propuse primele metode de specificare i control al validitii sincronizrilor.

Problema definirii informaiei a fost pus iniial n seama limbajelor de programare: fiecare limbaj definea universul su de obiecte accesibile i mijloacele efective de accesare. Sistemul de operare trebuia doar s implementeze obiectele definite de limbajul de programare n memoria fizic, direct adresabil.

Restriciile de capacitate i pre a memoriei principale a condus foarte repede la modificarea modului de utilizare a memoriei secundare i introducerea unor mecanisme de schimb de informaii ntre aceste dou nivele ale memoriei. Prima memorie paginat apare n 1962 (Atlas), tot atunci compilatoarele limbajului Algol 60 folosesc paginaia virtual pentru gestionarea programelor n curs de execuie. n 1965 este fundamentat noiunea de segmentare, dei nc n 1959 sistemul Burroughs B5000 utiliza un mecanism de adresare logic prin uniti de volum variabil - segmente. n 1966 este propus un model de arhitectur pentru calculatoarele cu partajare a timpului, implementat n IBM 360/370. n acest calculator segmentele sunt doar simulate printr-o dubl paginaie, din care cauz noiunea de segmentare va rmne pentru un timp puin neleas de comunitatea informatic. Problemele partajrii i proteciei informaiei, alocrii resurselor conduc la noiunea de memorie virtual, care permite izolarea mecanismelor de gestionare a ansamblului memorie principal - memorie secundar, lsnd utilizatorilor simpli impresia unui spaiu de adrese uniform (contiguu). Tot atunci au fost introduse noiunile de modularitate i structurare ierarhic, obiect, etc.

Astzi sistemele de operare n sensul tradiional de concepere sunt mai mult obiectul unor elaborri industriale, dect de cercetare. Aceasta se datoreaz att existenei unei rezerve extraordinare de metode i algoritmi, ct i standardizrii stricte a funciilor i interfeelor sistemelor de operare.

1.3.3.1. S UNIX i sistemele deschise

Sistemul de operare UNIX, primul sistem mobil care asigur un mediu fiabil de dezvoltare i utilizare a softului de aplicaie, este fundamentul practic de elaborare a sistemelor fizico-logice deschise. Implementarea larg a SO UNIX a permis trecerea de la declararea conceptului sistemelor deschise la dezvoltarea n practic a acestui concept. Este greu de supraestimat i influena activitilor de standardizare a interfeelor SO UNIX asupra dezvoltrii domeniului sistemelor deschise. Cu toate acestea, pot fi evideniate cteva versiuni ale SO UNIX, care difer att prin realizare, ct i prin interfee i semantic, chiar dac, odat cu dezvoltarea procesului de standardizare, aceste diferene devin tot mai nesemnificative.

Modulele surs ale SO UNIX au fost scrise de ctre colaboratorii companiei AT&T i timp ndelungat drepturile de autor, ca i drepturile de liceniere, au aparinut acestei companii. Mai trziu, din mai multe motive (complexitate tehnic n elaborarea i mentenana acestui produs program complicat, probleme juridice, etc.), compania AT&T a creat entitatea USL (UNIX System Laboratories), responsabil exclusiv de dezvoltarea i susinerea SO UNIX.

Compania USL a propus versiunea UNIX System V 4.0, care a devenit standardul de-facto i baza mai multor versiuni UNIX, create de productorii de staii de lucru i servere. n ultimul succes al USL n calitate de filial a firmei AT&T - versiunea SVR 4.2 - pentru prima oar n istoria SO UNIX a fost realizat mecanismul proceselor lejere (fire, en. thread), care erau executate n baza unei memorii virtuale comune i permitea exploatarea conceptului arhitectur multiprocesoral simetric n care mai multe procesoare au drepturi egale de accesare a memoriei operative comune.

n anul 1993 USL a fost absorbit de compania Novell, devenind astzi departament al acesteia, marca nregistrat UNIX fiind cedat consoriumului X/Open. La nceputul anului 1995 compania Novell a anunat o variant nou a SO UixWare 2.0 bazat pe System V 4.2. Era un SO cu un sistem de fiiere foarte fiabil, fiind admis accesul la fiierele pstrate pe serverele NetWare, administratorul avea la dispoziie o interfa grafic bine pus la punct, etc.

Pe parcursul a mai multor ani sistemul de operare de baz al companiei Sun a fost UNIX BSD. ns, ncepnd cu SunOS 4.0, s-a trecut la System V 4.0, firma Sun introducnd o serie de modificri i extensii n aceast versiune. Ca exemplu, Sun a implementat paralelizarea programelor pentru sistemele multiprocesorale simetrice. Solaris este o interfa a lui SunOS cu mijloace suplimentare GUI i resurse de nivel nalt pentru organizarea lucrului n reea (de exemplu, apelarea procedurilor la distan RPC). i la baza SO HP/UX, DG/UX i AIX se afl SVR 4.x din care cauz setul de baz al funciilor de sistem i biblioteci este acelai. Variantele SO UNIX, propuse de compania SCO i destinate exclusiv platformelor Intel, sunt bazate pe modulele iniiale ale System V 3.2, fiind compatibile cu toate standardele de baz

Open Software Foundation (OSF) a fost prima companie comercial, care a ncercat elaborarea SO UNIX n baza micronucleului Mach. A fost creat sistemul de operare OSF-1, care nu era curat (n sens de liceniere), deoarece folosea o parte a modulelor iniiale din SVR 4.0.

Variantele SO UNIX, propuse de Universitatea din California, sunt o alternativ real pentru UNIX AT&T. De exemplu, UNIX BSD 4.2 era pus la dispoziie n module surs i folosit chiar n fosta URSS pe calculatoarele de tip CM-3, CM-4. Grupul BSD a influenat enorm dezvoltarea sistemelor de operare UNIX, printre realizri amintim mult controversatul SO UNIX BSD 4.4, construit n baza principiilor micronucleare, sistemul FreeBSD i altele.

Nu putem s nu amintim aici i de realizarea original a SO UNIX pentru platformele Intel, propus de Torvald Linus LINUX. Este un sistem de operare foarte popular n mediul studenesc, care are i una din cele mai populare teleconferine n Internet.

1.3.3.2. Standarde UNIX

Odat cu ieirea SO UNIX pe pia i creterea substanial nu numai a numrului de utilizatori, ci i a numrului de specialiti din toate colurile lumii, care propun modificri i chiar variante proprii, a aprut necesitatea elaborrii unor standarde, care ar asigura compatibilitatea.

Unul dintre primele standarde de-facto a fost cel publicat de USL pentru versiunea SO UNIX System V Release 4 - System V Interface Definition (SVID). Majoritatea variantelor comerciale respectau standardul SVID. Evident, SVID fiind un document de firm, publicat fr discuii publice nu putea fi adoptat ca i standard oficial.

Paralel exista direcia BSD (Berkeley Standard Distribution), susinut de comunitatea universitar. Dei majoritatea realizrilor comerciale se bazau pe Sistem V, UNIX BSD era foarte popular n universiti din care cauz a fost elaborat un standard, care a unit practic AT&T cu BSD. Acest lucru a fost nceput de asociaia programatorilor profesioniti din cadrul UniForum (Sistemele Deschise) i continuat de grupurile de lucru POSIX (Portable Operating System Interface). Cel mai popular standard, adoptat de ISO la recomandarea IEEE, POSIX 1003.1 definete cerinele minime pentru componentele unui sistem de operare.

Organizaia internaional X/Open, care activeaz n domeniul elaborrii i propagrii ideilor sistemelor deschise, culege i sistematizeaz standardele de-jure i de-facto de importan industrial n aa numitul X/Open Common Application Environment (CAE). Specificaiile interfeelor componentelor, care formeaz CAE, sunt publicate n X/Open Portability Guide (XPG).

Pentru lumea UNIX este foarte important i standardul limbajului de programare C, adoptat mai nti de ANSI i apoi de ISO. n acest standard sunt specificate, n afara limbajului C, bibliotecile obligatorii ntr-o realizare standard. Deoarece chiar de la apariie limbajul C, sistemele de programare erau strns legate de UNIX, componentele bibliotecilor standard corespundeau exact mediului standard al SO UNIX.

Mai menionm standardul de-facto SPARC Complience Definition, propus de organizaia SPARC International, propunerea organizaiei 88/Open pentru procesoarele RISC Motorola, standardul sistemului de ferestre, susinut de X Consorium (Institutul de Tehnologie din Massachussets) i OSF/Motif, elaborat de Open Software Foundation.

1.3.3.3. Sisteme de operare cu micronucleu

Micronucleul este partea minim principal a unui sistem de operare, folosit pentru asigurarea modularitii i transportabilitii. Noiunea de micronucleu a fost introdus de compania Next prin sistemul de operare cu micronucleul Mach. Nucleul acestui sistem de operare, de dimensiuni mici, n jurul cruia se situau subsistemele executate n regim user, trebuia s asigure o flexibilitate i modularitate foarte nalt. Dar n realitate acestea au fost umbrite de prezena serverului monolit, care realiza sistemul de operare UNIX BSD 4.3, ales de compania Next n calitate de nivel superior pentru micronucleul Mach. Totui, utilizarea micronucleului Mach a permis introducerea administrrii mesajelor i a unei serii de funcii de serviciu orientate pe obiecte, n baza crora a fost creat o interfa grafic elegant a utilizatorului cu mijloace simple de configurare, administrare i dezvoltare program.

Urmtorul SO cu micronucleu a fost MS Windows NT, n care momentul principal declarat era, n afara modularitii, transportabilitatea. Acest sistem de operare poate fi utilizat n sistemele mono- i miltiprocesor, bazate pe procesoarele Intel, Mips, i Alpha. Mai mult, deoarece NT trebuia s execute i programele scrise pentru DOS, Windows, OS/2 i SO, compatibile cu standardele Posix, compania Microsoft a folosit modularitatea abordrii micronucleare pentru crearea unei structuri generalizate, care nu repet sistemele de operare existente, fiecare SO fiind emulat printr-un modul separat sau printr-un subsistem.

Au aderat la tehnologia micronuclear i companiile Novell/USL, Open Software Foundation (OSF), IBM, Apple i altele. Unul din concurenii principali ai lui NT n domeniul SO cu micronucleu sunt Mach 3.0, creat n Universitatea Carnegy-Mellon, i Chorus 3.0 al companiei Chorus Systems.

Un exemplu practicScopul exerciiilor de mai jos [7] este de a pune n eviden influena evoluiei istorice a sistemelor de operare asupra unor caracteristici ale acestora.

Vom considera un calculator periferia cruia este un dispozitiv de introducere a cartelelor perforate (1 000 cartele pe minut) i o imprimant (1 000 linii pe minut). O lucrare medie este definit astfel:

citete 300 de cartele,

utilizeaz procesorul 1 minut,

tiprete 500 de linii.

Se presupune, c toate lucrrile au caracteristici identice cu ale lucrrii medii.Definim dou caracteristici de performan a sistemului:

debitul mediu D - numrul de lucrri executate ntr-o or,

randamentul unitii centrale - partea din timpul total de utilizare a unitii centrale n care aceasta execut lucru util, altul dect gestionarea perifericelor.

Exerciiul 1.Presupunem c periferia este gestionat de ctre unitatea central. S se calculeze D i n urmtoarele ipoteze de funcionare:

sistemul este exploatat n regim "poart deschis"; durata unei sesiuni de exploatare este de 15 minute,

sistemul este exploatat utiliznd un monitor cu nlnuire secvenial a lucrrilor.

Exerciiul 2.Presupunem c periferia este gestionat de un calculator separat, care conine o band magnetic n care sunt introduse datele la intrare i o band magnetic pentru ieire (tiprirea se va efectua de pe aceast band). Datele la intrare sunt introduse n calculatorul principal de pe banda magnetic, acesta producnd datele la ieire pe band. Timpul necesar citirii de pe i scrierii pe benzi nu se va lua n consideraie. Timpul de transfer a benzilor de pe un calculator pe altul este de 5 minute n fiecare sens; se presupune c o band va grupa un lot de 50 de lucrri (v. fig. 1.13).

Presupunem c intensitatea sosirii lucrrilor este suficient pentru a ocupa tot timpul calculatorului central. Calculai D i .

Stabilii modul de planificare a seturilor de lucrri i calculai timpul mediu de ateptare a unui utilizator (timpul din momentul predrii lucrrii i pn la recepionarea rezultatelor). Vom admite, c lucrrile sosesc ntr-un ritm regulat, c timpul necesar formrii unui program (pregtirea unui complet de cartele perforate corespunztoare unui program) este 10 minute i timpul distribuirii rezultatelor unui lot (decuparea i trierea listelor utilizatorilor) la fel este 10 minute.

Exerciiul 3.Periferia este administrat de un canal de intrare-ieire. Sistemul este monoprogram, iar monitorul de nlnuire permite unitii centrale s prelucreze o lucrare paralel cu citirea urmtoarei i tiprirea precedentei lucrri. Calculai n aceste condiii D i . Aceeai ntrebare dac lucrarea medie presupune citirea a 1200 de cartele i imprimarea a 1500 linii ntr-un minut de utilizare a unitii centrale.

Exerciiul 4.Operaiile de intrare-ieire sunt gestionate cu ajutorul unei memorii-tampon (bufer) pe discul fix (spooling pentru citire i imprimare). Lucrarea medie este cea definit n punctul 3.

Presupunem c o cartel conine 80 octei, iar o linie de imprimare 120. Care este capacitatea minim a memoriilor-tampon pentru citire i imprimare necesare pentru ca unitatea central s fie folosit la randamentul maxim? Care va fi n acest caz debitul lucrrilor?

Intensitatea sosirii lucrrilor i capacitatea memoriei-tampon pentru citire sunt cele din a), iar memorie-tampon pentru tiprire este de 2 Mo. Care este randamentul unitii centrale?Dispozitivele fizice (controlere, magistrale, monitoare etc.)

Microarhitectura (regitrii UC, UAL)

Limbajul cod-main

Sistemul de operare

Utilitare, compilatoare, editoare, interpretoare

Aplicaii

Utilizatorii finali

Programatorii

Dezvoltatorii de SO

Hard disc

Imprimant

Modem

Monitor (ieire)

Port paralel

Port serial

Plac PC

Controler afiare

Plac PC

Controler HDD

Plac PC

Bus de extensie

Unitatea de control (UC)

Unitatea logico-aritmetic (ULA)

Procesorul central (UCP)

Memoria central

Controler de tastatur

Tastatur (Intrare)

Fig. 1.2. Structura unui calculator

Controler I/O

Memoria secundar

Imprimanta

Memoria principal

Display

Tastatura

Mouse

Procesorul

nregistrri

Semnale de comand

C

Reactor

Robinete

B

A

Captoare

Calculator

Semnale de msur

Fig. 1.4. Schema unui proces chimic

Procesul 1

Procesul 2

Procesul 3

Sistemul de operare

Ales (Exe)

Eligibil (Ready)

Blocat (Wait)

Procesului i s-a alocat procesorul

Procesul ateapt terminarea operaiei I/O

Operaia de I/O s-a terminat

Prezentare

Pstrare

Eligibil

Blocat

Ales

Terminare

Administrarea resurselor

Gestiunea informaiei

Administrarea procesoarelor

Administrarea memoriei

MO este accesibil?

Administrarea dispozitivelor

Toate dispozitivele sunt alocate?

Administrarea procesoarelor

Semnal

Administrarea dispozitivelor

Administrarea memoriei

Administrarea procesoarelor

Eliberarea dispozitivelor

Eliberarea memoriei

Eliberarea procesorului

Administrarea procesoarelor

Administrarea procesoarelor

Starea procesorului

Expirarea intervalului de timp

Cerere de citire informaii

Gestiunea informaiei

Iniiere I/O

Administrarea dispozitivelor

Creare proces I/O

Administrarea procesoarelor

Procesul 1

Procesul 2

Procesul 4

Procesul 3

Programele utilizatorului (procese)

Maina extins

Sistemul de operare

Maina goal

Fig. 1.8. Maina extins

Procesul 1

Procesul 2

Procesul 4

Procesul 3

Programele utilizatorului (procese)

Maina extins intern

Funcii cheie ale S.O.

Maina goal

Fig. 1.9. Ilustrarea conceptului de main ierarhic

Maina extins extern

Alte funcii ale S.O.

Componente ale S.O.

Sistemul de operare

Procesul A

Sistemul de operare

Procesul B

Procese de I/O care deservesc procesul 3 al utilizatorului

Fig. 1.10. Structura ierarhic a sistemului de operare

Planificator taskuri

Procesul 1

Nivelul 1

Administrare procesoare (P,V), planificare procese

Maina goal

Nivelul 3

Administrare procesoare (nivel superior, mesaje, creare i distrugere procese)

Nivelul 2

Nivelul 4

Administrare dispozitive

Nivelul 5

Administrare informaie

Administrare memorie

Taskuri

Procesul 2

Procesul 3

I/O de sistem

Proces de I/O

Proces creat de utilizator

Stratul 1

Stratul 0

Stratul 2

Intrri

Lucrri la intrare

Debit mic

Debit mic

Debit nalt

Rezultate la ieire

Prelucrarea informaiilor

Ieire

Fig.1.11. Buferizarea intrrilor-ieirilor

Imprimare

Execuie

Citire

Citire

Canal

Memoria secundar

Canal

Imprimanta

Unitatea central

Fig. 1.12. Fluxul informaional ntr-un sistem cu multiprogramare

Memoria operativ

ieiri

Procesare

Calculatorul pentru I/E

Calculatorul principal

intrri

Fig. 1.13. Exemplificarea cazului 2.

PAGE

p.10


Recommended