Sunteți pe pagina 1din 21

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA

Victor Beliu

ANALIZA I CONCEPIA SISTEMELOR DE OPERARE CICLU DE PRELEGERI

Chiinu 2003

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.1

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA

Cuprinsul
1. INTRODUCERE........................................................................................................................................................3

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.2

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA

1. INTRODUCERE
Scopul lucrrii este expunerea bazelor contemporane ale metodelor i mijloacelor de elaborare a resurselor program de sistem (inclusiv, operaii asincrone, tratarea ntreruperilor, interfeele sistemelor de operare, compromisele dintre dispozitivele tehnice i resursele program) i pregtirea cititorului pentru analiza i proiectarea sistemelor de operare (S.O.). Resursele fizice ale sistemelor de calcul contemporane posed caracteristici tehnice extraordinare i pot fi utilizate n cele mai diverse scopuri. ns aceste resurse fr componentele logice de sistem (software de sistem) ntmpin dificulti majore n relaiile cu mediul n care trebuie s funcioneze. Acesta este motivul principal al 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]. Utilizatori Aplicaii Depanatoare Administrarea memoriei Translatoare Aplete Macroprocesoare Administrarea procesoarelor Asambloare Administrarea dispozitivelor Editoare Gestiunea informaiei ncrctoare

S i s t e m u l de o p e r a r e

Calculatorul gol Fig.1.1. Relaia dintre un sistem de operare i componentele unui calculator Exist 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 se creeze un sistem de operare propriu sau s se introduc modificri n sistemul 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 sistemelor de operare, pot fi implementate cu succes i n alte domenii. Prin noiunea sistem de operare nelegem 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

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.3

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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 (Visual) etc. nu sunt incluse n definiia unui sistem de operare, 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, 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, dar, istoric prima i, devenit mai apoi clasic, este structura John von Neumann, prezentat n fig.1.2.

Bus de extensie

Hard disc

Plac PC Controler HDD Port paralel

Unitate de control (UC) Unitate logicoaritmetic (ULA)

Imprimant

Componentele principale se conecteaz la placa de baz (motherboard) direct sau prin conectoare speciale, Unitate central de Plac PC numite plci de extensie (daughterboards). Unitatea central de procesare procesorul (CPU) se gsete ntr-un prelucrare (UCP) Controler I/O singur circuit integrat (cip) incorpornd unitatea de comand (Control Unit, CU) i unitatea logico-aritmetic Modem (Arithmetic Logical Unit, Port serial ALU). Unitatea de comand controleaz funcionarea unitii logico-aritmetice. Memoria este o zon de lucru de mare vitez, unde CPU stocheaz datele i programele pentru a le consulta n mod rapid. Memoria poate fi organizat n mod ierarhic, caz n care exist cel puin dou nivele de ierarhie memoria central Monitor Tastatur (operativ) i memoria secundar (extern, de lung durat). Memoria operativ estede Controler electronic sub form de Plac PC (ieire) (Intrare) cipuri, de obicei cu acces aleator (RAM Random Access Memory) i trebuie s fie alimentat cu tensiune pentru a tastatur Controler afiare
/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Memorie central

Victor Beliu

p.4

Fig.1.2. Structura unui calculator

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA pstra datele. 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 (CU) controleaz n principal funciile 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-o singur operaie. 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 numeroaselor elemente ale 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 milioane de impulsuri de ceas pe secund, adic n megahertzi (MHz).

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, generalitatea, 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 respectiv 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). Generalitatea, flexibilitatea, extensibilitatea msoar gradul n care un sistem poate fi folositor i adaptabil 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. 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 (user) este oricare doritor s ndeplineasc anumite lucrri la calculator.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.5

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA Prin lucrare (sarcin, task) vom nelege un set de aciuni, necesare pentru ndeplinirea unui lucru anume. Sarcina poate conine mai muli pai. Pai de task sunt uniti de lucru, care vor fi ndeplinite consecutiv, de exemplu trei pai compilare, ncrcare i executare. Primind un task de la utilizator, sistemul de operare poate crea cteva procese. Deci, procesul sunt calcule care pot fi efectuate paralel cu alte calcule. Relaia dintre un user, task, proces i spaiu de adrese (sau de adresare) este prezentat n fig.1.3. User Task Creat de utilizator sau de mediul integrat Creat de sistem Pas de task . . . . . Pas de task

Proces Componente standard ale sistemului de operare Regulator Planificator Sistem de fiiere ... Componente definite de utilizator Program Main Subprogram A Subprogram B ... Spaiu de adresare (procesCPU)

. . . . .

Proces Regulator I/O Planificator I/O ... Sistem de fiiere Program de iniiere I/O Bufere date ... Spaiu de adresare (proces I/O)

Fig.1.3. Relaia dintre utilizator, sarcin, pas de task, proces i spaiu de adrese 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. Fig.1.3 conine dou exemple de spaii de adresare unul pentru procesul de intrare/ieire (input/output, I/O) i altul pentru procesul unitii centrale. Una din destinaiile sistemului de operare este de a asigura proiectarea spaiului de adresare 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 stare de execuie. Un proces se consider n stare de 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 starea de execuie s fie i executat de procesor la un moment dat. Resursele hardware de protecie sunt utilizate cel mai des pentru controlul accesrii memoriei. Resursele hardware de ntrerupere permit sistemului de operare s coordoneze operaiile simultane; pot fi utilizate i pentru a schimba ordinea de execuie a programelor. 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.

1.1.3.

Tipuri de sisteme de operare, obiective i funcii

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.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.6

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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 ca un 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, traitement par lots) execut la un moment dat un singur program, care trebuie terminat nainte de a lua un alt program n consideraie. Sistemele cu multiprogramare accept la un moment 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 sarcini (multitasking) sau mai multe procese. 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 limite destul de restrictive, 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 unor erori i de maximizare a transparenei sistemului de operare, garantarea securitii datelor, optimizarea controlului comunicaiilor n cazul unei reele de calculatoare. Un obiectiv foarte important este necesitatea de minimizare a 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 respectiv s o retrag.

1.1.4.

Exemple de sisteme de operare

Exemplele care urmeaz [6] 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.4.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.4). Memoria secundar Imprimanta

Procesorul

Memoria principal

Display

Tastatura

Mouse

Fig.1.4. Configuraia 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;

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.7

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA executarea unor programe existente n PC sau introduse sub form de fiiere; introducerea datelor necesare pentru executarea programului (de la tastatur, din fiier sau de la alte surse); listarea rezultatelor la display, imprimant sau copierea lor ntr-un fiier.

Sistemul de operare va acorda aceste servicii prin intermediul unui limbaj special, numit limbaj de comand, introducndu-se de la tastatur instruciuni de forma <aciune> <parametri>, 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 am considerat-o 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.4.2. Comanda unor procese industriale Reactor A B Robinete C Captoare Semnale de msur Semnale de comand nregistrri Calculator La o uzin chimic sunt utilizate doua produse iniiale A i B pentru sinteza produsului C conform fig.1.5.

Fig.1.5. Schema unui proces chimic 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).

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.8

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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, descrise mai jos. Msurrile sunt fcute 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 comanda robinetelor). Sistemul va funciona doar n cazul respectrii relaiei de restricionare t T. 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 fiierului jurnalului de bord). Existena unor restricii stricte a duratei de prelucrare a informaiilor, noiunea de tratare prioritar, conectarea la nite 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.4.3. Sisteme tranzacionale Caracteristicile principale ale sistemelor cu tranzacii sau tranzacionale sunt urmtoarele: sistemul gestioneaz un set de informaii sau baze de date, care pot atinge volume importante; asupra acestor informaii pot fi executate un anumit numr de operaii predefinite, sau tranzacii, adesea interactive; sistemul este dotat cu un mare numr de puncte de acces i un mare numr de tranzacii se pot derula simultan. Ca exemplu pot fi menionate sistemele de rezervare a biletelor de tren sau avion, de gestionare 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.4.4. Sisteme n timp partajat Destinaia 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; de servicii 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 caracteristicilor resurselor fizice, calitatea interfeei i serviciilor utilizatorului, facilitatea adaptrii i extensibilitii.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.9

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA

1.2. 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. 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 acesta intr n administrarea procesului (fie el i al utilizatorului), care a cerut serviciul. Resursele (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 program anume? Pentru a rspunde la aceste ntrebri (i la altele) vom face cunotin cu ciclul de via a unui proces. n fig.1.6 sunt prezentate trei procese (trei sarcini ale utilizatorilor) existente ntr-un sistem cu multiprogramare. Procesul 1 Procesul 2 Procesul 3 Sistemul de operare Fig.1.6. Trei procese ntr-un sistem cu multiprogramare Ciclul de via a unui proces poate fi reprezentat printr-un set de stri ale procesului i trecerea 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 procesul ateapt s se produc un anumit eveniment, a crui apariie este indispensabil, proces eligibil procesul are la dispoziie toate resursele necesare lips fiind doar procesorul, adic este pregtit s se execute din momentul alocrii unitii centrale (fig.1.7). Procesului i s-a alocat procesorul

Ales (Exe)

Procesul ateapt terminarea operaiei I/O Operaia de I/O s-a terminat

Eligibil (Ready) Fig.1.7. Ciclul de via a unui proces

Blocat (Wait)

Ciclul de via a unui proces, prezentat n fig.1.7 sugereaz existena venic a proceselor. Mai aproape de realitate un proces este reprezentat n fig.1.8. Aici norii semnific componentele sistemului de operare, care trateaz evenimentele respective, iar pentru modelarea procesului real au fost adugate trei stri suplimentare: prezentare utilizatorul prezint sistemului sarcina, sistemul trebuie s reacioneze la cererea utilizatorului, pstrare sarcina este reprezentat n form intern, dar resursele nu sunt nc alocate, terminare calculele corespunztoare procesului au luat sfrit, toate resursele alocate procesului pot fi eliberate i ntoarse sistemului. Sistemul de operare este acea component, care va ghida procesul prin toate aceste stri. n fig.1.8 este prezentat una din variantele posibile ale ciclului de via a procesului. Pot exista abateri de la acest model att n sensul complexitii, ct i n direcie opus. Oricum, acest model este foarte util pentru rezolvarea problemei proiectrii sistemelor de operare.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.10

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA

1.3. 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 un calculator fr hainele program (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 hardware. Un program elaborat de un specialist poate fi de forma [1]: 1 Transfer C, B Stabilete C=B 2 Gsete zona 80, X S se gseasc 80 de octei de memorie liberi i s se plaseze adresa zonei n X 3 Introdu date n X S se citeasc datele indicate n zona X 4 Compar X(2), /* Coincide coninutul primilor 2 octei ai zonei X cu /*? 5 Dac da, stop Dac coincid, salt la STOP Administrarea memoriei Eliberarea memoriei Eliberarea dispozitivelor Ales Administrarea procesoarelor Eliberarea procesorulu i Terminare Cerere de citire informaii Eligibil Blocat Gestiunea informaiei Administrarea resurselor Administrarea procesoarelor Toate dispozitivele sunt alocate? Administrarea dispozitivelor Administrarea procesoarelor Iniiere I/O Administrarea dispozitivelor Creare proces I/O Administrarea memoriei Semnal Administrarea procesoarelor

Starea procesorulu i

Expirarea intervalului de timp

Administrarea dispozitivelor

Administrarea procesoarelor Administrarea procesoarelor

Prezentare

Pstrare

MO este accesibil? Gestiunea informaiei

Fig.1.8. Schimbarea strilor unui proces i componentele SO responsabile de aceste schimbri Instruciunile 1, 4 i 5 sunt instruciuni standard n multe calculatoare contemporane. ns execuia corect i eficient a instruciunilor 2 i 3 poate necesita 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. Din aceast cauz, 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.9.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.11

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA Nucleul sistemului de operare va fi 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. Procesul 1 Maina extins Procesul 2

Maina goal

Programele utilizatorului (procese)

Sistemul de operare Procesul 4 Fig.1.9. Maina extins 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.10.) 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. Componente ale S.O. Sistemul de operare Procesul A Procesul 1 Maina extins extern Maina extins intern Maina goal Programele utilizatorului (procese) Sistemul de operare Procesul B Procesul 2 Procesul 3

Funcii cheie ale S.O. Procesul 4 Alte funcii ale S.O. Procesul 3

Fig.1.10. Ilustrarea conceptului de main ierarhic 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,

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.12

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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.11. Procesele (incluse n dreptunghiuri) se adreseaz ctre funciile nucleului i utilizeaz mpreun toate resursele 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. Taskuri Planificator taskuri

Procesul 1 I/O de sistem

Procesul 2 Procesul 3 Proces creat de utilizator

Procese de I/O care deservesc procesul 3 al utilizatorului Stratul 2

Proces de I/O

Nivelul 5 Stratul 1 Nivelul 4 Nivelul 3 Nivelul 2 Nivelul 1 Maina goal Administrare procesoare (P,V), planificare procese Stratul 0

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

Administrare dispozitive Administrare informaie Fig.1.11. Structura ierarhic a sistemului de operare 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, necesit 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. Pot fi semafoare simple (binare) sau polivalente (care pot avea mai multe valori). 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 comanda. 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.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.13

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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 (Win32, de exemplu) noiunea de proces a fost substanial modificat, introducndu-se alte concepte (thread-uri), care exploateaz ntr-un mod mai eficient ideile multitasking-ului i multiprogramrii.

1.4. Alte puncte de vedere asupra sistemelor de operare


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.

1.4.1.

Abordare funcional

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 (translatoare, biblioteci, medii integrate, etc.). Pentru a evita posibilitatea apariiei unei astfel de probleme aceste programe, de obicei, nu sunt considerate componente ale sistemului de operare.

1.4.2.

Abordare din punctul de vedere al interfeei cu utilizatorul

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 utilizatorul era obligat s indice n mod explicit i manual fiecare pas, orict de nesemnificativ ar fi prut. Formularea pailor cu ajutorul 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 n cunotin de cauz 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

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.14

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA substanial eficiena sistemelor de calcul, dei au existat multe inconveniente, principalul fiind lipsa posibilitii lucrului interactiv. Microprocesoarele i memoriile anilor 70 au pus problema lansrii pe pia a calculatoarelor personale (PC) cu toate consecinele respective. 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.5. 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 60 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 taskurilor. 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 mai 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 concordrii 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 n viitorul 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.5.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. Utilitele care au aprut aveau destinaia de a asista elaborarea programelor (asambloare, compilatoare, etc.) sau de a facilitata operaiile de intrare-ieire.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.15

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA Acest mod de exploatare, numit "poart deschis" [6], era de o eficacitate minim, dispozitive foarte costisitoare fiind utilizate ineficient. Din aceast cauz la sfritul anilor '50 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 automatizat. Funcia principal a unui atare sistem era gestiunea resurselor: memoria, procesorul, intrarea-ieirea. 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 buclele 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 eliberat 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.5.2.

Multiprogramarea i partajarea timpului

Progresul tehnologic i conceptual al anilor '60 - '70 a permis excluderea unor limitri caracteristice sistemelor de prelucrare 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 intrareieire. Utilizarea principiului multiprogramrii sau partajarea memoriei ntre mai muli utilizatori a permis o utilizare i mai bun a procesorului central. Exploatarea unui calculator conform principiului timpului partajat ofer utilizatorilor posibiliti analogice unui calculator individual, permind beneficiul unor servicii comune la un pre redus. 1.5.2.1. Organizarea intrrilor - ieirilor n memorii 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.12. Debit nalt Lucrri la Rezultate intrare la ieire

Intrri

Debit mic

Prelucrarea informaiilor Fig.1.12. Buferizarea intrrilor-ieirilor

Debit mic

Ieire

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 n vederea sporirii randamentului dispozitivelor calculatorului, totui dou momente negative pot fi menionate: atunci cnd lucrarea n curs de execuie are nevoie de nite 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.5.2.2. Multiprogramarea Ultimele dou momente au condus la ideea utilizrii unui mod de funcionare a SO n care:

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.16

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA o lucrare aflat n starea eligibil ar putea folosi unitatea central, eliberat de o lucrare care trece n ateptarea datelor, unitatea central ar putea schimba 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 realocare 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 fig.1.13. Unitatea central Execuie Citire Memoria operativ Canal Canal Imprimanta

Citire

Imprimare

Memoria secundar Fig.1.13. Fluxul informaional ntr-un sistem cu multiprogramare Aceast schem evideniaz dou momente importante: rolul principal al memoriei operative (n sistemele 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 aceste 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 pentru c el trebuie s asigure partajarea memoriei i protecia reciproc a programelor; multiprogramarea necesit dispozitive speciale pentru reactivarea programelor i protecia memoriei; un sistem cu multiprogramare asigur o utilizare mai uniform a diferitor resurse: 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.5.2.3. Sisteme cu timp partajat Un 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 foarte mici (cuante) 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 executarea de ctre sistem a serviciului cerut. 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, deci, n medie 100 utilizatori activi (care se afl n ateptarea

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.17

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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 este neglijabil n comparaie cu valoarea cuantei. Multiprogramarea devine obligatorie, dac inem cont de raportul dintre acest timp i timpul necesar pentru ncrcarea unui program din 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 nu au fcut acest lucru au avut doar de ctigat. Apariia microprocesoarelor cu posibiliti mari de calcul i de 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 pentru sistemele informatice ale anilor care au urmat.

1.5.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 sistemelor de operare i a condus la elaborarea unor metode proprii de concepere. Debutul unei cercetri tiinifice a sistemelor de operare poate fi considerat anul 1964, care a succedat o etap important de dezvoltare 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 elaborate noiunile necesare contientizrii gestionrii activitilor fizice sau conceptuale paralele: proces secvenial, formularea i soluionarea unor probleme de excludere mutual, sincronizarea i inventarea semaforului. Acestea au fost aplicate cu succes n 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 '70. Utilite 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 in memoria fizic, direct adresabil. Restriciile de capacitate i pre a memoriei principale a condus foarte repede la apariia necesitii unei memorii secundare i a 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 sau segmente. n 1966 este propus un model de arhitectur pentru calculatoare cu partajare a timpului, implementat n IBM 360/67. n acest calculator segmentele sunt doar simulate printr-o dubl paginaie, din care cauz noiunea de segmentare va rmne pentru mult 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 adresare uniform (contiguu). Au fost introduse noiunile de modularitate i structurare ierarhic, obiect, etc. Astzi sistemele de operare n sensul tradiional de concepere sunt obiectul unor elaborri industriale, dect de cercetare. Chiar i lucrrile care au avut loc sau mai deruleaz n SUA capt tot mai multe trsturi de lucrri semiindustriale. Aceasta este datorat att achiziionrii unei rezerve extraordinare de metode i algoritmi, ct i

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.18

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA standardizrii stricte a funciilor i interfeelor sistemelor de operare. Au totui loc unele activiti de cercetare, ca de exemplu cercetrile din domeniul mediilor operaionale obiect-orientate. 1.5.3.1. S UNIX i standardele sistemelor 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 sistemului de operare UNIX a permis trecerea de la declararea sistemelor deschise la dezvoltarea 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 (dei, 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 ntreinerea acestui produs program complicat, unele dificulti juridice, etc.), compania AT&T a creat compania USL (UNIX System Laboratories), care avea n arj exclusiv dezvoltarea i susinerea modulelor surs ale 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 sistemelor de operare UNIX a fost realizat mecanismul proceselor legere (thread, fire), care erau executate n baza unei memorii virtuale comune i permitea utilizarea posibilitilor dispozitivelor fizice, numite arhitectura multiprocesoral simetric n care mai multe procesoare au drepturi egale de accesare a memoriei centrale comune. n 1993 compania USL a fost absorbit de compania Novell, 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 sistem de operare 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 modificaii i extensii n aceast versiune. Ca exemplu, Sun a implementat paralelizarea programelor pentru sistemele multiprocesorale simetrice. Solaris este un mediu de interfaare 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 total compatibile cu toate standardele de baz 1.5.3.2. OSF-1 i alte variante UNIX 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 n sens de liceniere curat, 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 iniiale i folosit chiar n fosta URSS pe calculatoarele de tip DEC. 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. 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 propuneau modificri i chiar variante proprii, a aprut necesitate elaborrii unor standarde, care ar conduce la sisteme compatibile. Prin standard al unei interfee al SO subnelegem un set de proprieti, mai mult sau mai puin formale, sintactice sau semantice ale componentelor sistemului de operare. Activitatea de standardizare a nceput cu mai mult de 10 ani n urm, dar este puin probabil s se ajung la fini ntr-un viitor apropiat. Totui rezultatele sunt mai mult dect vizibile, permind elaborarea unor sisteme de operare mobile.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.19

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 1.5.3.3. Standarde UNIX

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 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 profesionali 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 resurselor, 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 necesare ntr-o realizare standard. Deoarece chiar de la apariie limbajul C i sistemele de programare respective 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.5.4.

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. Exerciiu Scopul acestui exerciiu [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 ale 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.

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.20

Material didactic pentru studenii FCIM, anul IV, specialitile TI, C i ILMA 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. 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.14).

intrri Calculatorul pentru I/E Procesare ieiri Calculatorul principal

Fig.1.14. Exemplificarea cazului 2. 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. 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. 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?

/var/www/apps/conversion/current/tmp/scratch17450/97995130.doc

Victor Beliu

p.21

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