You are on page 1of 66
INTRODUCERE Un sistem de calcul modern este ale&tuit dintr-unul sau mai multe procesoare, memorie principal, discuri, imprimante, tastatur’, display, interfete de rejea si alte dispozitive de inirarefegice. Toate fmprenni alcStuiese un sistem complex. Elaborarea de programe care si ‘2stioneze corect toate aceste componente, cu utiizarea in regim optim a fiecarcia dintre ele, este 0 risiune extrem de dificil. Din acest motiv calculatoarele sunt dotate cu un program de baza, numit sistem de operare, a cirui sarcind este si administreze dispozitivele din sistem i si ofere programelor utiizatorilor modalititi de interfafare mai simpli cu structura hard, Sistemele de ‘perare constituie subiectul acestei cart. Local sistemului de operare in ansamblul hard — soft este precizat in fig. 1-1. La baza ansamblului se afl structura hard, care in multe camari este, la rindul ei, consiruit& pe dowd sau mai ‘multe niveluri, Nivelul cel mai de jos cuprinde disporitivele fizice reprezentate de circuite integrate, fire de legiturd, surse de alimentare, tuburi catodice si alte dispozitive asemiinatoare. Constructia acestor dispozitive $1 modul in care lucreaza sunt de competent iugincrlr electroni Peste nivelul ,fizic” se afla nivelul microarhitecturii, care asambleazt dispozitivele fizice in unitii functionale. in mod obisnuit acest nivel cuprinde un set de registre interne ale CPU (Central Processing Unit, rom: unitate central de prelucrare, UCP’) gi o cale de date, care include unitatea aritmeticd-logica. in fiecare perioada de ceas unul sau doi operanzi sunt preluaji din registre si sunt prelucrati in unitatea aritmeticd-logic& (de ex: prin adunare sau $I logic). Rezultatul este memorat ‘ntruinal sau mai multe registre. La anumite masini de calcul, modal de lucru al cali de date este fn aceasta lverare vom folosi prescurtarea UCP sau’ denumitea echivalenti “procesor central” saw “procesor” acolo unde nu exist posibilitatea de confuze. 2 INTRODUCERE, gestionat de catre o entitate soft, numit microprogram. La alte masini, calea de date este gx direct de citre resursele hard. Obiectivul ciii de date este si execute anumite seturi de instructiuni, Unele dintn instructiuni pot fi executate intr-un singur ciclu de operare, in timp ce altele necesita mai mul de cicluri, Instructiunile pot folosi registre sau alte resurse hard. Structura hard impr instrucfunile in limbaj de asamblare alcituiesc nivelul ISA (Instruction Set Architectus arhitectura setului de instructiuni). Acest nivel este numit adesea limbaj masini. Sistem ponte: [Rezewiicom| Brower] | Programe de operat bancar| panieaerians | Web aplicatie Interpreter lcompietoar| eatowre | Mormreter | | de sistem Sisteme de operare Limbaj maging Microarhitecturd Hardware Dispozitive fice Fig. 1-1. Sistem de calcul alcatuit din structura hard, sistem de operare si aplic Limbajul masini are, de obicei, intre 50 si 300 de instructiuni, dintre care cele ma realizeazi transferuri interne de date, operatii aritmetice si compariri de valori. La aces dispozitivele de intrare/iesire sunt comandate prin incdtcarea unor valori in registrele (registrele de dispozitiv). De exemplu, un disc poate primi comanda si citeascd date prin ine in registrele sale a valorilor care reprezinta adresa discului, adresa memoriei principale, num octeti si tipul de operatie (citire sau scriere). in practic sunt necesari mult mai mulfi param informatia de stare returnati de disc in urma executarii operatiei este si ea foarte complexa. | pentru multe dispozitive de I/E temporizarea joac un rol important in programare. Sistemul de operare a fost construit pentru a ascunde aceasta complexitate in spatel pera simple pentru utilizatori. Sistemul de operare reprezinta un nivel soft care ascunde (j structura hard $i ji furnizeaz’ programatorului un set de instrucfiuni mai comode. De ex citirea unui bloc de date dintr-un figier este, in principiu, mai simpli deca suecesiunea de despre deplasarca capetelor discului,stabilizarea lor si asa mai departe. Pe nivelul superior sistemului de operare se afli restul sistemului de programe. Pe acest ni fi intalnite interpretoare de comenzi (shell), programe pe baz de ferestre, compilatoare, edit alte programe independente de aplicatie. Este important de infeles ci aceste programe nu fa din sistemul de operare, chiar daci ele sunt furnizate, de obicei, de litre producitorul caleulat Acest aspect. desi subtil, este crucial. Sistemul de operare reprezinti, in mod obisnuit, pari pachetul soft care lucreazi in mod nucleu sau mod coordonator. Sistemul este protejat im} intervengiei utilizatorului de c&tre un modul din structura hard (se ignorai in acest moment microprocesoare mai vechi care nu ofera nici un fel de protectie hard). Compilatoarele si lucreaza in mod utilizator. Daca unui utilizator nu-i place un anumit compilator isi va serie pi compilator, daca asa i se pare mai simplu; utilizatorul nu este insd liber s-si scrie propriul pn SEC.LA (CEESTE UN SISTEM DE OPERARE? 3 pentru gestionarea intreruperilor generate de ceas, program care face parte din sistemul de operare sicare este, in mod normal, protejat impotriva interventillor utilizatorilor prin restrict hard. Diferena este mai putin neti in cazul sistemelor evoluate (la care poate s& lipseasc modul nucle) eau in eazul sistemelor incorporate (embedded systems) (cm sit sistemele de operare bazate pe Java, care folosesc interpretarea si nu structura hard pentru diferentierea componentelor). Pentru calculatoarele traditionale sistemul de operare continu si lucreze in mod nucleu. Malte sisteme de caleul sunt dotate cu programe care ruleazi in mod utiizator, dar care se folosese de sistemul de operare pentru a executa unele functii speciale. De exemplu, exist adesea un program care le permite utilizatorilor si-si schimbe parolele. Acest program nu face parte din sistemul de operare si nu ruleaz in mod nucleu, dar cu siguranta apeleaza la o functie ,sensibila” care trebuie protejati in mod special. La unele sisteme, ideea separiri ia forme particulare, asa incat parti de program care in mod traditional fac parte din sistemul de operare (cum ar fi sistemul de figiere) ruleaza in spatiul uillzatorilor. Pentru astiel de sisteme este greu de trasat o demarcatie clara intre sistemul de operare si programele utilizatorilor. Astfel, tot ceca ce ruleaza in mod nucleu este, evident, parte din sistemul de operare. Exist insi si programe care nu lucreaza in mod nucleu gia cAror apartenenta sau asociere la sistemul de operare este discutabila. in sfirgit, pe nivelul superior programelor sistem se afl aplicatiile. Aceste programe sunt procurate sau scrise de utiizator pentru a solutiona probleme particulare, cum ar fi procesarea de text, crearea de foi de calcul, efectuarea calculclor ingineresti sau memorarea informatiilor int-0 bazi de date, 11 CE ESTE UN SISTEM DE OPERARE? Multi dintre utilizatorii de calculatoare au avut de-a face cu un sistem de operare, dar le este sgreu sil defineascd. O parte a problemei se datoreaza faptului ca sistemele de operare realizeazit dou functii de baz, intre care nu exist nici o legiturd: extinderea functionalitatii masinii si sestionarea resurselor; din acest motiy, cel care rispunde la astfel de intrebare poate gresi prin a fcoentua importanfa uneia dintre funeti, fri ao aminti pe cealalta. {n continuare sunt prezentate ambele func 11 — Sistemul de operare ca extensie functional a masini ‘Asa cum s-a precizat in paragrafele anterioare, arhitectura (setul de instrucfiuni, organizarea memoriei, porturile de I/F si structura magistralei) cclor mai multe calculatoare la nivetul limbajului rmasina este primitiva si greu de folosit pentru programare, in special pentru intrariesiri. Pentru a crea 0 imagine mai concreti este prezentat in continuare modul in care este gestionat un dispozitiv de VE de tip unitate de discheta, folosind circuite de comandii compatibile NEC PD765, utilizate la Iajoritatca calculatoarclor personale construite cu familia de circuite Intel. Modulul de comanda PD765 executa 16 comenzi, fiecare dintre ele fiind detinita prin insenerea.a 1 pana la 9 octet tnt-un registra al dispozitivului. Comenzile se referd la cititea sau scrierea datclor, deplasarea bratului 4 INTRODUCERE discului si formatarea pistelor, ca si la initializarea unitatii, masurarea de parametri, sterg recalibrarea controlorului sia elementelor de actionare. Comencile primare se refer’ la citire si scriere si necesiti fiecare cate 13 parametri, grup octeti. Acesti parametri furnizeaza informatii despre adresa blocului de date ce urmeaza a fi Pe disc, numérul de eectoure pe pisti, modul de inegistrare pe mediul fizic, spatiul liber sSectoare si ce se intampla dacé se citeste un simbol care marcheaza adresa unor date sterse. i semnificatia acestor parametri este greu de infeles nu este un motiv de ingrijorare, pentr mod sigur ei se adreseazii numai cclor initiafi. Dupa executarea operatiei, circuitul de co returneaz’ 23 de cimpuri de stare si eroare, grupate in 7 octeti. Ca si cum toate acestea ni ajuns, programatorul unei unitati de dischet mai trebuie si tind cont si de starea de porit sa @ motorului de actionare. Daci motorul este oprit, el trebuie pornit (cu asigurarea unei temp Jungi pentru pornire) inainte ca datele si poata fi scrise sau citite, Motorul nu poate fi L functioneze prea mult timp, din caza riscului de uzurd prematura i defectare. Programaton prin urmare, nevoit s realizeze un couspromis intre intarzierile lungi de la pormire $i perici defectare (care ar determina gi pierderea datelor). Fara a intra in detalii practice, este clar ca programatorul de nivel mediu nu vre: implice prea mult in programarea unitatilor de discheti (sau a discurilor fixe, care sunt la complexe, dar semnificativ diferite), In schimb, programatorul vrea, ca solutic, o abstractiz nivel inalt, simpla, cu care si poati si Iucreze. in cazul discurilor, o abstractizare uzuala ar p cea care defineste discul ca 0 colectie de fisiere cu nume. Fiecare fisier poate fi deschis, apoi e scris si in final inchis. Detalii cum sunt cele referitoare la utilizarea modulatiei in fre modificata pentru inregistrarea pe suport sau cele referitoare la starea curent& a motory trebuie sa apara in abstiactizarea prezentata utilizatorului. Programul care fi ascunde programatorului ,adevarul” despre structura hard si care prez viziune simpli si ,frumoasi” a fisierelor cu nume, care pot fi citite si scrise, este, desigur, sister ‘operare. Sistemul de operare ascunde fati de programator atat structura hard a discului, pe prezinti ca o interfata simpld orientata pe fisiere, cat si o multime de operatii ,neplicute” intreruperile, timer-cle, gestiunea memoriei si alte elemente de nivel scizut. in fiecan abstractizarea fumizata de sistemul de operare este mai simpli si mai usor de folosit dec: furmizati de structura hard de bazi. in acest fel, functia sistemului de operare este si-i furnizeze utilizatorului varianta echiv, ‘uoci :taynti extinse sau a unei masini virtuale, care este mai usor de programat decit structure de baz. Modul in care sistemul de operare realizeazd acest obiectiv reprezint 0 poveste | spusi pe indelete de-a lungul acestei ciirti. A rezuma foarte concis inscamna a spune ci sisten operare furnizeazi diverse servicii la care programele le pot apela folosind instructiuni spe ‘numite apeluri sistem. Apelurile sistem utilizate mai des vor fi examinate mai tarziu, tot in capitol. 1.1.2 Sistemul de operare ca administrator de resurse Conceptul potrivit caruia sistemul de operare este in primul rand furnizorul unei int convenabile pentru utilizatori semnificd 0 vedere de sus in jos. Ca altemativa, 0 vedere de jos | releva ci sistemul de operare se afla acolo pentru a administra toate componentele unui s complex. Calculatoarele moderne sunt aleituite din procesoare, memorii, discuri, mous interfete de rejea, imprimante si o mare varietate de alte dispozitive. in aceasta viziune altern ) sec12 ISTORIA SISTEMELOR DE OPERARE. 5 " sarcina sistemului de-operare este si realizeze 0 alocare ordonata si controlati a procesoarelor, __ memorillor si dispozitivelor de W/E in diversele programe serise pentru cle. ‘Se poate imagina ce s-ar intimpla daci trei programe care ruleazii pe caleulatoare diferite ar fncerca 84 tipdreasca simultan la aceeasi imprimanta. Primele céteva linii tipdrite ar apartine " programului 1, urmétoarele cdteva:programului 2, urmate de linii din programul 3 si aya mai departe, Rezultatul ar fi de neinfeles. Sistemul de operare poate pune ordine in aceasta situatic ipoteticd prin memorarea temporara pe disc a tuturor iesirilor destinate imprimantei. Atunci cand " unprogram a terminat de rulat,sistemul de operare poate sa copieze rezultatele din fsierul in.care au fost memorate pe disc si si le transmit’ imprimantei, in timp ce restul de programe pot sa continue generarea rezultatelor intrucat ele nu sunt transmise direct imprimantei (inca). ‘Atunci cénd un’ calculator (sau o refea) are mai mulfi utiizatori, nevoia de administrare si protejare a memoriei, a dispozitivelor de I/E si a altor resurse este mai mare, pentru cit altfel uilizatoni pot interfera intre ei. Mai mult, exist{ multe cazuri in care utilizatori trebuie sa partajeze fu numa suuctuta liad, ci si informatiile (fisiere, baze de date). Pe scurt, aceast abordare a sistemului de operare arata c& principala lui sarcina este sa tind cont de cine ce resus foloseste, st aloce resurse Ia cerere, sa permit accesul pentru utilizare si sii medieze cererile generatoare de ‘conflicte venite de la diverse programe sau diversi utilizatori, ‘Administrarea resurselor include partajarea (rmultiplexarea) resurselor in dou moduri: in timp si fnspatiu, Atunci cand o resursi este multiplexata in timp, programele sau utilizatori 0 folosese pe rind, De exemplu in cazul unei singure UCP si a mai multor programe care dorese si ruleze pe eh "sixtemul de operare atribuic mai intai UCP unui program, apoi, dup ce acesta a mulat 0 perioada, un ale program capat acces la UCP, apoi altul si cichul poate fi reluat, eventual eu primul program. Stabilirea modului in care o resursi este multiplexata in timp, adic cine urmeaza si pentru cat timp, "este treaba sistemului de operare. Un alt exemplu de multiplexare in timp este partajarea unet | imprimante, Atunci cind mai multe job-uri de tiparire stau la coada pentru a fi executate de 0 singura imprimanta, trebuie sa se decid’ ordinea de acces pentru tiparit. Cea de-a dova varianta este multiplexarea in spatiz. Clientii nu vor mai sta la rand, ci fiecare va {los o parte a resursci, De exemplu, memoria principal este, in mod normal, imparfité inte mai ‘multe programe care ruleaz, asa incat fiecare dintre ele poate fi rezident in memorie (pentru a-si astepta rindul la wtilizarca UCP). Presupundind cd exista destul memorie pentru a retine mai multe programe, este mai ficient s& pistrezi in memorie mai multe programe, la un moment dat, decat sit atribui toata memoria unui singur program, mai ales daca el nu foloseste decat o mica fractiune din ‘memoria total, Desigur, aceasta optiune genereaz’ probleme de atribuire corceti, de. protectie si ‘epinde de sistemul de operare ca ele si fie rezolvate. O alta resursi care este multiplexata in spatiu este discul magnetic. in multe sisteme un singur disc poate stoca fisierele mai multor utilizatori in acelasi timp. Atribuirea spatiului pe disc si tinerea evidentei despre: cine ce blocuri de pe dise foloseste este 0 sarcina tipici de administrare de resurse a sistemului de operare. 1.2 ISTORIA SISTEMELOR DE OPERARE Sistemele de operare au eyoluat de-a lungul anilor. Momentele mai importante vor fi prezentate in paragrafele care urmeazi. Intrucat sistemele de operare au fost strans legate, din punet de vedere 6 INTRODUCERE, CAP, istorie, de arhitectura calculatoarelor pe care rulau, vom avea in vedere generafii succesive « calculatoare pentru a vedea cum ardtau sistemele de operare. Aceastd suprapunere restrictiva generatillor de sisteme de operare peste generafile de calculatoare este utilé pentru c& prezinta structurare a expunerii, nefiind aga de severii in realitate. Primul calculator numeric adevarat a fost proiectat de matematicianul englez Charles Baba, (1792-1871). Desi Babbage si-a petrecut mult timp din viat’ si a cheltuit o bund parte din averea incercéind si-si construiascé ,motorul analitic”, el nu a reusit si-1 facd si lucreze corect pentru realizarea era pur mecanici, iar tehnologia de atunci era incapabila si produca rotite, rulmenti sire dinfate de precizia necesard. Este clar c& motorul analitic nu avea sistem de operare. Ca un aspect istoric important, trebuie spus c& Babbage a infeles ci ar fi avut nevoie de so pentru motorul analitic, motiv pentru care a angajat o téndrd, Ada Lovelace, fiica celebrului po englez Lord Byron, ca prima programatoare din lume. Limbajul de programare Ada® a fost botez dupa numele ei. 12.1 Prima generatie (1945 — 1955). Tuburi cu vid si pkici de conexiuni Dupé eforturile fra succes ale lui Babbage, pind la cel de-al doilea rizboi mondial s-au realiz: progrese reduse in constructia calculatoarelor numerice. Pe la mijlocul anilor 1940 Howard Aike de la Harvard, John von Neumann de la Tnstitutul de Studii Avansate din Princeton, J. Prespt Eckert si William Mauchley de la Universitatea Pennsylvania si Konrad Zuse din Germania, prints alii, au reusit si construiascd masini de calcul. Mai intai, au folosit relee mecanice, care erau foan lente, iar maginile aveau perioade de ceas masurate in secunde, Mai tarziu, releele au fost inlocuit cu tuburi cu vid. Astfel de masini erau foarte mari si ocupau camere intregi cu zeci de mii de tubu cu vid, dar erau in continuare de milioane de ori mai lente decat cel mai ieftin calculator person: disponibil astazi. in acele zile de pionierat exista cate un singur grup de oameni care proiectau, construia’ rogramau, operau si igi menfineau in functiune propria masind. oat programarea era facut | limbaj masina absolut, realizat adesea prin fire de legaturd trase pe placile de conexiuni pentru comanda functile de bazi ale masini. Limbajele de programare erau necunoscute (chiar si limbajt de asamblare era necunoscut). Despre sisteme de operare nici nu se auzise. Modul obignuit operare era ca programatorul si-si rezerve un interval de timp pe o lista afisata pe perete, apoi s coboare in camera calculatorului, si-si introducd placa cu conexiuni in calculator si si petreac ‘urmatoarele cdteva ore sperand ca nici unul dintre cele aproximativ 20.000 de tuburi cu vid nu sev defecta in timpul rulirii. Teoretic, toate problemele de rezolvat erau calcule simple, cum ar fi for tabelarea de sinusur, cosimusuri sau logaritmi. La inceputul anilor 1950 modul de programare a progresat prin introducerea cartelelo perforate. in acel moment devenea posibili scrierea programelor pe cartele si citirea lor pentn rulare, in Jocul folosiri placilor pentru conexiuni; restul procedurii rimanea la fel. SEC.12 ISTORIA SISTEMELOR DE OPERARE 1 A doua generatie (1955 ~ 1965). Tranzistoare gi sisteme cu procesare pe loturi de lueriti (batch'processing) Thtroducerea tranzistorului pe la mijlocul anilor '50 a schimbat complet situatia, Calculatoarele W devenit suficient de fable, asa incat sa poata fi fabricate si vandute unor cliengi, Cu speranta c& or funciona suficient timp pentru a putea fi folosite in activitatile curente. Pentna prima daté s-a produs o separare intre proiectanti, constructori, programatori sipersonalul de fntretinere. | Aceste masini, numite ,sisteme mari de calcul” (mainfiumes), erau amplasate in camere speciale, otate cu aer conditionat, in care lucrau operatori specializali. Doar matile corporatii, agentille ‘avertamentale importante sau universitaile isi puteau permite o asemenea achizife, in valoare de “mai multe milioane de dolari. Pentru a rula un job (adicd un program sau un grup de programe), sramatorul trebuia sé il scrie’' mai intai pe hartie (in FORTRAN sau asamblare) si apoi exe” pe cartele, Cartelele eraut duse apoi in camera de intrare (receptie) a calculatorului si date unui dintre operatori, dupa care programatorul puted si mean si bea o cafe pink end Jurmau si apard rezultatele rularii, ~ Dupai ce calculatorul a terminat de rulat lucrarea curenti, un operator trebuia sa treaci pe la imprimanti, 84 preia rezultatele tiparite si si depund listingurile in camera de iesire (predare), de Si poata fi preluate de cAtre programator. in continuare, operatorul lua un alt pachet de de din camera de intrare si il introducea in cititor. Dacd era necesat compilatorul de RAN, operatorul trebuia sé-l preia dintr-un dulap de fisiere si Si-1 transfere, prin citire, in noria calculatorului. Pentru toate aceste activititi, operatorit trebuiau si se deplaseze prin perile din jurul masinii, motiv pentru care se pierdea mult ,timp de calculator”, Cunoscut fiind costul ridicat al echipamentului, mu este de mirare ci Gamenit au cautat cai de a luce timpul pierdut. Prin urmare, Solutia adoptata a fost aceea a sistemelor de prelucrare pe loturi je programe. Ideea de la care s-a pornit a fost colectarea intr-o cutie” a mai multor job-uri, aflate in mera de intrare, urmati de citirea si transferarca lor pe band magneticai, folosind un calculator emai mic si mai pin costisitor, cum era IBM 1401, care era foarte bun pentru citirea cartelelor, ferarea informatiei pe band magnetica si tiparirea rezultatelor, dar nu era deloc potrivit pentru ci ‘humerice. Pe de alta parte, calculatoare mult mai costisitoare, cum era IBM 7094, erau oloste pentru prelucrarea adevarata. Aceasti situatie este prezentati in fig. 1-2. Dupa aproximativ o ora de colectare si constituire a unui lot de lucriri, banda era derulata tru a putea fi citita de la inceput) si era adusa in camera calculatorului, unde cra ‘montata in ltea de band. Operatorul inedsca, ia continuare, 1m program special (un strmos al sistemului ‘operare de astiizi), care citea de pe banda prima lucrare si o rula. Rezultatele erau scrise pe 0 a jo ite. Dupa terminarea fiecdrui program, sistemul de operare citea de pe andi urmitorul program si incepea sil ruleze, Dupi ce toate ucrarile din lot crau rulate, operatorul indepiirta benzile de intrare si de iesire, monta banda care continea un grup nou de job- urisiducea banda de iesire inapoi la 1401 pentru tiparirea final a rezultatelor, operatie desfasuratd jaluracalculatorului principal de prelucrare (imprimare offline). * Procesare pe loturi ~ se referi la execufia unui lot de lucrari neinteractive, primite de la. mai multi Particularitatea sistemului const din ateea ea sistennal nui lacreaza direct cu utiizatorul in timpal sick lurdrle sunt tratate pe lotur. cap, INTRODUCERE Unite asda sends wean magnetcl een Meatet mag Gentry ovesie a 1401 un 7084 vn 1401 (a) ) © (@) ) co Fig, 1-2. Unul dintre primole sistere de prelucrare pe lotur +401; (b) 1401 transferd grupul de luerari pe banda; (c) operatorul i gata prelucrarea, (0) operatorul duce banca inapo} la 1401; (9, 1401 tipsroste rezultatele, ‘Structura unei lverdri de intrare obignuite este prezentatd in fig. cartelé $JOB, care specifica durata maxima de rulare (In minute), fnedrca programul si numele programatorului, Urma apot © cartel fF sistemului de operare si incarce comp ‘urma programul care trebuia compilat si apot operare si incarce programul obiect, toomai ‘compilat. (Programele carer ilies rcbuinu sa fie reinarcate expici.) Urma o carelé SRUN are i cores § de operare sa ruleze programul, folosind datele amplasate dupa program. in final, cartela $1 maven sfarsital programului, Aceste cartel, care coniiueau eomensi elements limbajelor moderne de comanda a programelor $i a nterpretoarelor de comenzi ent program — pale (08) 10/6610802) MARVIN TANENBAUM! Fig, 1-3 Structura unui program tipie pentru FMS. Imprimant (a) programatorii predau cartelele | duce banda la 7094; (d) 7094 1.3. Programul incepea ¢ ilatorul de FORTRAN de pe banda de sistem. in continy ‘o cartela SLOAD prin care i se cerea sistemulut ‘compilate erau, adesea, Sis sunt inant SEC.12 ISTORIA SISTEMELOR DE OPERARE 9 Calculatoarele mati-din generatia a coua au fost folosite:maiales pentru efectuarea calculetor ‘tinge si ingineresti, un exemplu fiind rezolvarea ecuatilor diferentiale cu derivate partiale, care apar adesea in fizicd $i inginerie. Limbajele de programare folosite frecvent erau FORTRAN $i | limbajul de asamblare. Sistemele de: operare-tipice- eran FMS (the: FORTRAN Monitor System | mm: Sistem. ce: Monitorizare: FORTRAN) $i: IRSYS, sistemul de operate al firmei. IRM pent, "caleulatorul 7094. | | 123. Generafia a treia (1965-1980). Circuite integrate si multiprogramare Lainceputul anilor 1960.cei mai multi dintre fabricantii de caleulatoare aveau'dou lit distincte “i total incompatibile de produse. Pe de o parte erau calculatoarele stiintifice mari, orientate pe | uvaint, cum era 7094, care erau folosite pentru calcule numerice in stiinta si ingineric. De cealalta parte erau calculatoarele comerciale, otientate pe caracter, cum-era 1401; care erau folosite frecvent de banci si companii de asigurari pentru sortare sitiparire de. pe banda. Dezvoltarea si: mentinerea a dota linn de: produse: complet diferite « reprezentat! 0 solutie costisitoare pentru, producatori. Mai mult, multi dintre:utilizatorii_noi:de calculatoare doreau la ‘nceput masini mici, pe care le extindeau dupa un timp pentru cd simfeawinevoia unor masini: mai mati, care si poatii executa toate vechile lor programe, dar mai repede. IBM a fncercat sirezolve cele doui probleme: dintr:o. singursi miscarey:prin introducerea sbtemului 360, Seria’ 360-cuprindea: mai:multe masini, compatible soft, incepind:en masini de trau determinate de pret si performante (capacitatea maxima de memorie, viteza procesorului, umirul permis de dispozitive de VE si agaimai departe). Pentru ci toate: masinile aveau aceeasi ishitectura si acelasi set de instructiuni, un program scris pentna una dintre masini putea sé ruleze pe ‘ricare dintre celelalte, cel-putin in| teorie Mai mult, seria 360 a fost proiectatd si rezolve att probleme gtiintifice (adic numerice), cat si-probleme comerciale: in-acest fel, 0 singura familie de ‘masini putea si satisfac nevoile tuturor utilizatorilor. in anii care au urmat, IBM a produs succesori Seria 360 a fost prima linie important de calculatoare care a folosit circuite integrate (pe scard redusa), determindnd astfel.o imbunittire semnificativa a raportului pret/performanti fata de masinile din generatia a doua, care erau construite folosind tranzistoare. Solutia a reprezentat un ‘succes imediat si ideea unei familii de calculatoare compatibile a fost curdind adoptati si de cdtre .wilalti producatori importanti de calculatoare, Urmasele acestor masini mai sunt folosite si astaizi in centrele de calcul. in zilele noastre ele sunt, alesea, folosite pentru administrarea bazelor de date foarte mari (de exemplu, sistemele de rezervari pentru linlle'aeriene) sau ca si servere pentru site- uri World Wide Web, care trebuie si proceseze mii de solicitari pe secunda. Forta data de ideea de familie a reprezentat totodata si slabiciunea ei majora. Intenia a fost ca toate programele, inclusiv sistemul de’ operare’ 05/360, sii muleze ‘pe toate modelele. Sistemul de operare trebuia si ruleze att pe sisteme mici, care adesea inlocuiau masini 1401, destinate copierit cartelelor pe beni ct sipe sisteme foarte mati, care inlocuiau masini 7094, dedicate prognozelor meteo sau rezolvarii unor probleme care necesitau calcule multe si complicate: Sistemul trebuia si fie bun pentru calculatoare cu putine periferice, dar si pentru calculatoare cu multe periferice. El trebuia sd functioneze gi-in medii comercial sin medi stiintifice: $i in plus fat de toate acestea, sistenmul de operare trebuia si fie eficient in toate aceste variante de utilizare. 10 INTRODUCERE CAP:1 {A fost imposibil:ca TBM (sau oricne alteineva) sa serie un program care si fntruneasca toate acest eernte contradictori. Rezultatul a fost un sistem de operare foarte mare i fears complex, probabil eu dou sau tre ordine de marime mai mare deed FMS. Sistema! de operare era alcatuit via milioane de lini fn linbaj de asamblare, crise de mii de programatori st confinea rit de erori, care au impus un flux continu de noi versiuni in fnoercarea de ale corecta. Fieeate versiune nowt rezolva uucle erori, dar, in acelasi timp, introducea erori noi, asa jincat numérul de erori riménes ‘oarecum constant in timp. ‘Unul diatre proicctanti sistemului de operare OS/360; Fred Brovks, seis o carte amuzant $ incisivi (Brooks, 1996) in care descria experien(ele lui cu OS360. Pentru of este imposibil s rezamam cartea aici, trebuie spus doar ci pe:coperta era desenata o turmi de animale preistorio dnchike intrun fare. Coperta cri hi Silberschatz gi ali (2000) sugereara aoceasi idee, prezentiiy sistemele de operare ca pe niste dinozauri. qincivda dimensiunilor mari sia problemelor sale, OS,360 i celelalte sisteme de operare similar de generatia a tteia, produse de alfifabricanti de, caleulatoare, au dat satisfactie: majoritat de Bee an satvodus, de asemenca; cteva soi tchnologi de bazi, absent lasstemele ¢ operate din genteratia a doua. Cea mai importanta dintre ele era prubabil multiprogramarea 1 crrulator 7094, UCP riménea inactiv im perioada in care job-ul curent astepta ca banda S08 Sispovitv de VI sisi termine treaba. in cazal caleulelor sige, care folosese UCP aproape « Timi, lucrl cu-de VE era putin utiliza, aga inet timpul picrdat era nesemniticatys in caz prelueranii datelor comercial timpul de asteptare pentru lucrul cu dispozitivele de VE putea ajun, area le 8-909 in impale, ag incat ra neve deo slut care sh evie stare de inact a UCP pentru atitde mult timp. Solutia gasiti a fost partionarea memorieiinmai multe zone, flecare oni giaduind | program, ca in fig. 1-4. in timp ceo lurare astepta ca activitatea unui disponiiv de W/E si se termi D alté lucrare putea sé utlizeac UCT. Daci memoria principal putea sh gizduiascd, la un mome Ghat, sufiiente programe, atunci procesorul putea si fie ocupat aproape 100 4» din timp. Prezet see rand a mel multor luorri in memorie impanea existenfa unui rodul hard special, care protcjeze fiecare program pentru a nu fi spionat sau modificat de citre ccelelalte; masinile seriei 3 precum sialtesisteme din generafia atria erau echipate cu acest modul Lucrarea 3 Lucrarea 2 Pantitii de Luctaroa 4 ‘mamorie Sistem de ‘operare Fig. 1-4. Un sistem multiprogramat, avand treilucrérin memoria. © alti caracteised importanta a sistemelor de-operare din generajia 2 treia ora dat posibiitatea de a transfera lucrile de pe cartele pe dise de indat ce carteele era aduse in car Prteulatorulsi, Atunci cénd programul curent termina de rulat, sistemul de-operare putes #4 Pt ‘unul nou, de pe disc, in zona’ de memoric’ masi liberd gi ‘poi sicl mleze. Aceasta tehnict units virtyalizare (spooling ~ de la Simultaneous Peripheral Operation Cn: Linc, roms oft SEC.12 ISTORIA SISTEMELOR DE OPERARE n simultand online a perifericelor) si era folositd si pentru iesire. Folosind virtualizarea, masinile 1401 ‘mu mai erau necesare, iar plimbatul benzilor a dispirut. ‘Desisistemele de operare din generatia a treia crau potrvite pentru calcule stinfifice complicate sipentru prelucrarea unor camtititi mari de date comercial, ele riméneau totusi niste sisteme de prelucrare pe loturi de programe. Multi programatori tanjeau inci dup’ zilele primei generatii de sisteme, cnd aveau masina numai pentru ei timp de céteva ore si puteau si-si depaneze repede programele. Cu sistemele din generatia’a treia durata de timp dintre predarea job-ului ¢i ‘eeeptionarea rezultatelor era, adesea, de cdteva ore, asa incat plasarea gresiti a unei virgule, care determina 0 eroare de compilare, i ficea pe programator si-si piard o jumatate de zi. Dorinja de a avea un timp redus de rispuns a determinat aparitia partajarii_ in timp (timesharing), o varianta de multiprogramare in care fiecare utilizator are un terminal on line. intr- _ unsistem cu partajare in timp la care sunt conectati 20 de utilizatori, dintre care 17 se windese, stau de vorbii saui beau cafea, UCP poate fi atribuit pe rind. celor trei job-uri care solicité serviciul. intrucat depanatorii de programe emit, de obicei, comenzi de scurta durata (cum ar fi compilarea ‘nei proceduri de 5 pagini) si doar rareori comenz lungi (cum ar fi sortarea unui tister cu un milion éeinregistari), calculatorul poate deservi rapid si interactiv un grup de utilizator si, in acelasi timp, ‘poate executa, atunci cand UCP: riméne liber, luerari dintr-un lot mai mare. Primul sistem functional cu partajare in timp, CTSS (Compatible Time Sharing System, rom: Sistem Compatibil cu partjare in timp), a fost dezvoltat la MLLT. pe o masind 7094 adaptata special. (Corbato. i alii, 1962). Cu toate acestea, partajarea in timp nu a devenit ew adevarat populari pind cind nu a devenitcisponibil un modul hard pentru protectie.. _ Dupii succesul sistemului CTSS, MIT, Bell Labs si: General Electric (care a devenit apoi un itor important de calculatoare) au decis sa investeasc’ in dezvoltarea unui calculator utilitar timp. Modelul lor era sistemul de distributie a energici electrice, unde nevoia de energie electric’ rezolva ptin introducerea stecherului in priza din perete, conectati deja la reteaua electric’. jiectantii acestui sistem, cunoscut ca MULTICS (MULTiplexed Information and Computing , rom: Serviciu Multiplexat pentru Calcule si Informatii), anticipau o masina foarte mare care si puna la dispozitie putere de prelucrare pentru toti utilizatorii din zona Boston. Ideea ci dupa je ani -ar putea vinde masini mult mai puternice decat masina super-performanti: GE-645, cu 1000 de dolar, citre milicane-de_utilizatori, ar fi fost considerata 0 poveste stintitico- fantaticd; ideca ar fi insemnat atunci ceca ce ar insemna astizi propunerea de realizare a unor renurisubacvatice transatlantice supersonice. _ MULTICS nu a fost un succes prea mare. I: era proiectat sa deserveasca sute de utilizatori pe o msina putin mai puternica decat un PC bazat pe 386 din zilele noastre, care suporta un numar mult ‘ai mare de dispozitive de I/B. Aceast situatie nu era chiar asa de neobisnuitd pe cat prea, pentru ‘oamenii stan cum si serie programe scurte si eficiente, indeménare care s-a pierdut pe parcurs. _Aufost multe motive pentru care MULTICS nu a cucerit intreaga lume, unul dintre cele importante ‘find faptul ca era scris in PLA, iar compilatorul de PL/I a aparut cu cativa ani dupa aceea si atunci a wt folosit foarte putin. in plus, MULTICS a fost foarte ambitios pentru timpul sau, mai ambitios chiar decat motorul anaitic al lui Charles Babbage in secolul al 19-1ea. Pe scurt, MULTICS a introdus multe idei de perspectiva in literatura despre calculatoare, dar area lor intr-un produs serios sun suoces comercial important a fost mult mai grea decat sar astepatoricine, Bell Labs sa tetra cin proect, iar General Electric a renuntat la afacerea cu ‘alculatoare. M.LT. a continuat totusi a Ricut MULTICS si functioneze, El a fost vandut, in cele 2 INTRODUCERE, CAP.1 din urma, ca produs comercial companiei care a cumpiirat afacerea cu calculatoare a Iui General Electric (Honeywell) si a fost instalat fn aproximativ 80 de companii si universitati importante din toati lumea. Chiar dacd numarul lor era redus, utilizatorii MULTICS erau devotati sistemului. General Motors, Fuid si US National Security Agency, de exemphi si-nn scos din functiune sistemele MULTICS abia dup’ anul 1990, la 30 de ani dupa ce MULTICS a fost lanset. jn acest moment, conceptul de , calculator utilitar” s-a cam rasuflat, dar el poate si revina sub forma de grupuri mari, centralizate, se servere pentru Internet, la care sunt conectate ‘masini relatis slabe, cu rol de terminale, a caror actvitate se desfaigoara in mare parte pe servere. Motivatia acestei situafii este faptul c& multi utilizatori nu doresc sa administreze un sistem de calculatoare complex si pretentios, ci ar prefera ca aceasta treabii si fie ficuti de 0 echipa de profesionisti dela compania care detine serverele. Comertul electronic (e-commerce) evolueaza in aceasta directie, bazindu-se pe diverse companii care gestionea2i magazine virtuale pe servere, multiprocesor, la care sunt ‘conectate masinile utilizatarilor, solutie care este in continuare in spiritul proiectului MULTICS. {in ciuda lipsei de succes comercial, MULTICS a avut o influenta uriasa asupra sistemelor de operare care au urmat. Sistemul este deseris in (Corbato si ali, 1972; Corbato si Vyssotsky, 1965; Daley si Dennis, 1968; Organick, 1972; Saltzer, 1974), Sistemul are inci un sit Web activ, wnow-multicians.org, care euprinde multe informatii despre sistem, despre proiectantii i utilizatorti lui. © alta dezvoltare important din timpul generafiei a treia a fost evolutia fenomenala a minicalculatoarelor, incepand cu DEC PDP-1 in 1961. PDP-1 avea doar 4 k cuvinte de 18 biti, dar la cei 120.0008 pe masind (mai putin de $% din preful unui 7094) s-a vandut ea painea calda. Pentru anumite tipuri de activitati ne-numerice el era aproape la fel de rapid ca si 7094 sia dat nastere uni industri complet noi. PDP-I a fost urmat repede de o serie de alte PDP-uri (iuate incompatibile, na cala familia IBM), culmindnd cu PDP-11. in aceasta perioad’, Ken Thompsond, de la Bell Labs, wnul dintre: specialistit in domeniul calculatoarelor, care a lucrat mult la proiectul MULTICS, a gasit un minicalculator PDP-7 pe care nu folosea nimeni si sa pornit si serie 0 versiune’ de MULTICS simplificati, pentru un singur tilizator. Aceasti activitate sa concretizat mai tarziu sub forma sistemului de operare UNIX®, care.a devenit popular in lumea academicé, in agentile guvernamentale giin multe companii, storia sistemului UNIX a fost povestiti cu alt ocazic (de exemplu, Salus, 1994). O:parte a povesti va fi spusd in cap. 10. Pentru moment este suficient de spus ci intrucdt codul sursii era disponibil, multe companii si-au dezvoltat vetsiuni proprii (incompatibile), sitwatie care a dus la 0 oarecare dezordine, $-au dezvoltat doud versiuni importante: SystemV, de la AT&T si BSD (Berkeley Soft Distribution), de la Universitatea din California, de la Berkeley. Cele doua sisteme au ‘mai avut si alte variante mai putin importante. Pentru a putea serie programe.care si ruleze pe orice sistem UNIX, IEEE a dezvoltat un standard pentru UNIX, numit POSIX, pe care il respect cele ‘mai multe versiuni de UNIX de astizi, POSIX defineste o interfata minimala de apel sistem pe care trebuie si o suporte sistemele UNIX care sunt conforme cu standardul. De fapt, sunt si alte sisteme de operare care accepti astzi interfata POSIX. Cao completare, merit mentionat c& in 1987 autorul a lansat o clond redusi de UNIX, numiti MINIX, pentru scopuri educafionale.) Functional, MINIX era foarte aseménitor cu UNDG incluzind si interfata POSIX. O carte care descrie modul inter de lueru si lsteazai codul sursi in annex este si ea disponibilé (Tanenbaum si Woodhull, 1997). MINIX este cisponibil gratis (inclusiv codul sursd, in intregime) pe Internet; la URL wwwcs.ytanl/-astiminichurnl. 1EO.12 ISTORIA SISTEMELOR DE OPERARE B Dorinta de a realiza o versiune gratuita de MINIX, destinatd productiei, (opusit celei sducationale) Fa determinat pe studentul finlandez. Linus Torvalds si scrie Linux. Sistem a fost Jeaoltat din MINIX si, din start, suporta diverse caracteristici ale MINIX (de ex: sistemul de fisiere MINIX). Ds ia foot extins in multe direct sistemul pistrea7A ined cv bund parte din structura de saz comund cx MINIX gsi UNIX. Mare parte din ceea ce.este scis in aceasta carte despre UNIX ‘ste valabil pentru SystemV, BSD, MINIX, Linux si alte versiuni si clone ale UNIX. 124 — Generafia a patra (1980 — pani in prezent). Calculatoare personale Calculatoarele personale au apirut datorit& dezvoltarii circuitclor integrate LSI (Large Scale Integration), chip-uri care contin mii de tranzistoare pe cm? de siliciu. Ca si arhitecturi, calculatoarele personale (numite initial microcalculatoare) nu erau deloc diferite fayii de minicalculatoarele din clasa PDP-11, dar_prefurile lor erau sigur diferite. Acolo unde thinicalculatorul permitea unui departament dinte-o companic sau unei universitii si xiba proprial calculator, microprocesonul permitea fiecZrui wtlizator sa aibii propriul calculator. in 1974, cand Intel a lansat 8080, primul UCP de uz general pe 8 bifi, era necesar un sistem de operare pentru el, sistem care sa fie capabil si-l si testeze. Intel i-a cerut unuia dintre consultant si, Gary Kildall, si scrie unul. Kildall,impreuna cu un prieten, a construit mai intdi un controlor pentru floppy disk-ul de 8” proaspat lansat de Shugart Associates si a cuplat discul la 8080, realiznd astfel primul microcomputer cu disc. Kildalla scris apoi un sistem de operare bazat pe disc, numit CP/M (Control Program for Microcomputer, rom: Program de Control pentru Microcalculator), pentru structura nou creat. Pentru ci nu a intrevazut viitorul microcalculatoarelor cu disc, Intel a concesionat in favoarea Ini Kildall drepturile asupra CP/M, Kildall si-a construit o companie, Digital Research, pentru a dezvolta sia vinde in continuare CP/M. in 1977 Digital Research a rescris CP/M in asa fel incat si functioneze pe mai multe tipuri de microcalculatoare, realizate cu 8080 de la Intel, cu 280 de la Zilog sau cu alte UCP, Malte aplicati fan fost scrise in asa fel incdt si lucreze sub CP/M, permifandu-i acestuia si domine lumea microcalculatoarelor pentru aproximativ 5 ani. in primii ani ai decadei 1980 IBM a proiectat IBM PC si a cautat soft pentru el. Angajati ai IBM au luat legitura cu Bill Gates pentru licentierea interpretorului de BASIC seris de el, Totodata au intrebat daca stie vreun sistem de operare care s& ruleze pe PC. Gates le-a sugerat celor de la IBM si ia legitura cu Digital Research, companie care domina pe atunci lumea sistemelor de operare. Kildall a retuzat sa se intalneasca cu cei de la IBM, luand cu siguranfi cca mai proastt decizic de alaceri din istoria cunoseuti a calculatoarelor sia trimis un subordonat in locul lui, Pentru a inritutti si mai mult lucrurile, avocatal lui a refuzat s4 semneze in{elegerea de confidentialitate propusi de IBM, privind PC-ul care nu fusese inc anunfat. Prin urmare, IBM s-a intors din nou la Gates ca si-] intrebe daca nu poate si le furnizeze un sistem de operare ‘Atunci cénd a revenit IBM, Gates si-a amintit c& un producdtor local de calculatoare, Seattle Computer Products, avea un sistem de operare numit DOS (Disk Operating System, rom: sistem de operare bazat pe disc) care s-ar fi putut potrivi. Gates a tratat cu cei de la Seattle Computer Products si le-a propus si-i vinda sistemul pentru 50,0008, fra si-l verifice, cerere pe care compania a ceeptat-o fi ezitare. Gates le-a oferit apoi celor de la IBM pachetul DOS/BASIC, pe care IBM - ‘aacceptat. IBM a dorit anumite modificdri, asa inet Gates a angajat persoana care scrisese DOS. Tim Paterson, ca angajat al nou infiin{atei companii Microsoft, a lui Gates, a facut modificdrile. Sistemul revizuit a fost redenumit MS-DOS (Microsoft Disk Operating System) si a devenit rapid 4 INTRODUCERE CAPT sisteml principal pe pinta de PC-uri, Un factor cele jn aceasta situate a fost decizia lui Gates de @ ae ME-DOS computor de caleulatoare, care s-insale® PE structurile lor hard, decizie care s- vintvedit extrem de infeleapti (prvi retrospectiv) in comparajie cu incercarea Ini Kildall de a vinde CP/M utilizatontor finali, unl cate ‘unl (cel putin a inceput). Gu timpal IBM PC/AT a ajuns in 1983, folosind Frooevorul 80286, MS-UOS era consolidat in simp ce CPIM isi triia ultimele clipe. MS-DOS a fost, in continuare, mult folosit pe caleulatoare & procesoare 80386 si 80486. Desi versiunca nila de MS-DOS era relativ rudimentard, versiunile eee au urmat au fost perfectionate, cuprinzind S ractristch avansate, unele dintre ele find preiuate de la UNIX. (Microsoft nu ave TPnig de a face ou UNIX, chiar dack a vandut oversune pentru microcalclatoare, numité XENTX, in primi ani de existent’ a companicl.) CPIM, MS-DOS gi alte sisteme de operare din erioada de inoeput a microcelulatoaelor $© pazau pe comenzle introduse de operator de le tasatura, © eventual schimbare in introduocres comenzilur ar fi putut reetirilor efectuate de Doug Engelbart de la Stanford Research Institute in anii 1960. sntat GUI (Graphical ‘User Interface, rom: interfata grafic cu uilizatorul,realizatéou fereste, iconite, meniur simouse. Aceste dei au fost preluate de ‘ercetitorii de la Xerox PARC sia fost aplicate la masinile pe care le construiau. crag a, Steve Tobs, co-inventator al calclatorulut ‘Apple, eonstruit in garajul su, a viziat PARC, a vizut GUI $i -a infeles imediat valoarea potenti, luru de care cei din echipa Xerox nu va dat seama (Smith gi Alexander, 188); Jobs s- apvcat 0% ‘sdcconstruiasca un Apple cu GUT. Proiectul s-a coneretizat prin realizarea ‘Lisa, care ins era prea costisitor $1 prin urmare a fost un esec: ‘comercial. A doua incercare @ tui Jobs, caleulatorul Apple ‘Macintosh, a fost un succes uriag nu seat penta cera mult mai iftin decat Lisa i PSA ‘ca era prietenos cu utilizatorul (user friendly), aceasta insemndnd ca cra destinat utilizatorilor care nu uma ‘cA nu stiau nimic despre caloulatoare, dar nici mu aveau de gand si invete. Atunei cand Microsoft s-a decis ‘sf construiasc’ un succesor a lui ‘MS-DOS, a fost puternic influentat de succesul obfimat'de Macintosh. ‘Microsoft a produs tn sistem bazat pe GUI. umit ‘Wado, are rala infil peste MS-DOS (adied era mai mult ca un interpretor de comentzi decdt ca Wrijstom de operare), Pentru circa 10 ani, din 1985 and in 1995, Windows a fost doar un medi trafic peste MS-DOS. Incepind din 1995 2 fost Tansath o versiune de Windows de sine sttito=te arden 95, care inciudea multe dintre caracterstcle Gerermului de operate 5 se folosea de MS- ‘DOS num pentru intialzareasistemulat (bootare) si pentru rularea veehilor programe MS-DOS. 1 1098 a fost lansatd u versiune uyor modifica do sisters ‘numith Windows 98. Far indoial c& art Windows 95 elt gi Windows 98 foloseaw ncn bund ‘muisurd limbajul de asamblare pe 16 biti al Iwi Intel ‘Un alt sistem de operare a firmei Microsoft este WindowsNT (NT vine de Ja New Technology, rom: tehnologie noua), care este ‘compatibil cu Windows95 de la un ‘anumit nivel, dar este complet resets, de la zer0. Este un sistem eare lvereaz in totalitate pe 32 de bil. Seful de proiect pent retin NT a fost David Cutler, care a fost si unl dine proiectangi sistemulai de operare VAX “VMS, aga inet unele idei ale VMS sunt prezonte St Ia NT. Microsoft sa asteptat ca prima versiune Ye NT ai elimine complet MS-DOS si toate cclelaie ‘versiuni de Windows, pentru cf era um sistem superior, dar sat ingelat, Abia cu Windows? ved reusts& objid un real succes in special in Yetelele marilor companii. Versiunea 5 @ Wurce’ NE a fost redennmiti Windows 2000, la jnceputul lui 1999: Se intentiona ea Windows 71000 2 fe suocesorl atta ui Windows 98 ct = al tui Windows NT'40. intrucat inlocuirea 58 ‘a functionat foarte bine, Microsoft a produs 0 alta io gine de Windows 98, numita Windows Me (Millenium Edition). eee SBC.12 ISTORIA SISTEMELOR DE OPERARE 1s Un alt competitor important in lumea calculatoarelor personale este UNIX (si diversele tui variante), UNIX este foarte putemic pe statile de lucru si pe caleulatoarele de nivelul superior, asa cum sunt serverele de retea, El este popular mai ales pe masinile echipate cu procesoare RISC de inaltd performanti. Pentru calculatoarele bazate pe Pentium, Linux a devenit o alternativa mai cunoscuti la sistemele Windows, mai ales pentru studenti si pentru un numér tot mai mare de utlizatori din companii. (Ca 0 precizare, termenul Pentium, folosit de-a lungul cdrfii, va insemna Pentium I, 1, UH sau 4.) Desi multi utilizatori UNIX, mai ales programatori cu experienti, preferii o interfa(a bazat pe comenzi, uneia bazate pe GUI, aproape toate sistemele UNIX suporta si un sistem de ferestre, ‘umit X Windows, produs de M.LT: Sistemul realizeaza gestiunea de baza a ferestrelor, permitand utiizatorilor si creeze, si steargi, si deplascze ‘si si redimensioneze ferestre cu mouse-ul, Adesea este disponibili o interfata completii GUL, aga ca Motif, care si Iucreze chiar peste sistemul X Windows, dindu-i UNDX-ului o forma asemdnatoare cu cea a sistemului de pe Macintosh sau cu cea 4 Microsoft Windows, pentru utilizatorii care isi dorese acest hier O dezvoltare interesanta, care a apiiut pe la mijlocul decadei 1980, este cresterea refelelor de caleulatoare personale in care lucreazi sisteme de operare de refea si sisteme de operare distribuite (Tanenbaum si’ Van Steen; 2002). Intr-un sistem de operare de retea utilizatorii iu c& exist mai multe calculatoare sic se pot conecta si inregistra la masini aflate la dlistanti si pot copia fisiere de pe o masini pe alta. Fiecare masina ruleaza propriul ei sistem de operare local si isi are utilizatorul local. Sistemele de operare de retea mu sunt fundamental diferite de sistemele de operare pentru un singur procesor. Ele au, de obicei, nevoic de un controlor pentru interfafa de refea si un soft de nivel jos care si-1 comande, aga incdt programele si poati realiza conectarea la distant’ ¢i si obtind secesul la fisicre la distant. Aceste adugiri nu modifica structura de baza a sistemulut de operare. Un sistem de operare distribuit este, prin contrast, unul care le apare utilizatorilor ca un sistem traditional, chiar daca el este scris, de fapt, pentru mai multe procesoare: Utilizatorii mu trebuie sa stie unde ruleaza programele lor sau unde le sunt stocate fisierele; toate acestea sunt gestionate automat gi ficient de catre sistemul de operare. Sistemele de operare distribuite reale au nevoie de mai mult decat adaugarea unei bucati de cod la un sistem de operare uniprocesor, pentru ci intre sistemele distribuite si cele centralizate exist diferonte semnificative. Sistemele distribuite, de exemplu, permit adesea aplicatillor si ruleze pe mai multe procesoare in acelasi timp, lucru care necesitialgoritmi mai complecsi pentru gestionarea activititii procesoarelor, cu scopul dea optimiza paralelismul aplicatilor: Intarzierile de comunicatie din interiorul retelei pot duce la situatia in care acesti algoritmi (sau alfil) sf lucreze cu informatii incomplete, depasite (in timp) sau chiar incorecte. Aceasti situate este complet diferité fata de sistemul. pentru un singur procesor, la care sistemul de operare are informatii complete despre starea sistemului 1.2.5 Ontogeneza reia filogeneza Dupé ce a fost publicata cartea ,,Originea speciilor” a lui Charles Darwin, zoologul german Est Haeckel a afirmat 4 ,ontogeneza reia filogeneza”. Prin aceasta el a vrut sa spun ca dezvoltarea unui embrion (ontogeneza) repeta (adica urmecaz4 avciasi pasi) evolutia speciilor. Cu alte cuvinte, \dupa fertilizare, un ovul uman trece prin stadille de peste, pore $i altele, inainte de a deveni un 16 INTRODUCERE CAP.1 bebelus. Biologii modem privesc aceasta afirmatic ca pe: simplificare grosolaniycw toate ci €a continu sa contind un simbure de adevar: ‘Cova similar sa intdmplat sin industria calculatoarelor: Fiecare specie noua (masinile cw putere mare de calcul, minicalculatoarele, calculatoarele:personale,sistemele incorporate, sistemele de tip cartela inteligenti, etc.) pare s& treci prin etapele de dezvoltare pe cate le-au parcurs sistrimogii ci. Primele masini cu putere mare de calcul erau programate in otalitate in imbaj de asamblare: Chiar si programele complexe, compilatwarele si sistemele de operare, erau scrise in limbaj de asamblare. Cx timpul au aparat minicalealatoarele, iar FORTRAN, COBOL si alte limbaje de nivel inalt av devenit uzuale pentru masinile-cu putete mare de calcul, dar noile minicalculatoare nu au mai fost programate in limbaj, de-vasamblare (din lipsi de:-memorie): ‘Atunct cand aw fost iniventate vr procaleulatoarele (primele calculatoare personale), ele au fost din nou programate in limbaj de aeamblare, chiar dacd ping atunci minicalculatoarele fuseser’ programate in limbaje de nivel inalt. Caleulatoarele palmiop au inceput giele cu limbajul de asamblare, dar au treet repede la limbaje de nivel inalt (mai ales pentru ci activitatea de programare se efectua pe masini mari). Acelasi lueru este valabil si pentru cartele inteligente (cartel inteligentas). ‘Si-urmarim gi ce s-2inldunplat in cazulsistemelor de operare. Primele masini cu putere mare de calcal nu aveau la inceput nici 0 protectie hard si nici un fel de suport pentru multiprogramare, 258 jncat ele rulau sisteme de operare simple; care gestionau un singur program, introdus manual, la un moment dat. Mai tirziu lis-au adaugat module hard si lis-au dezvoltat sistemele de aperare, as neat si poati gestiona mai multe programe la un moment dat. in continuare li s-au adéugat capacititi de lueru cu partajare in timp. [La aparitia lor, minicalculatoarele: mu aveau nici ele: protectie hard gi rulau cate un singur program, introdus manual, latun moment dat, cu-toate.ci multiprogramarea er deja bine definita in tunes eslcntatoarelor mari: Ca timpul, minicalculatoarelor lis-au adaugat module hard de protectic scapacitatea de a rula doud sau mai multe programe la wn moment dat: Primele microcalculatoare rau capabile si roleze numai-céte un singur program la un»moment dat dar apoi au dobandit capacitatea de a rula’ mai: multe: programe: $iide aceasta dati sistemele: pentru calculatoarele palmtop si pentru cartele inteligente au urmat acelasi dram. Discurile au aparut mai intAi pe maginile mari, apoi pe minicalculatoare, pe microcalculatoare si tot asa pe structuri din ce in es mai reduse. Astizi, cartele inteligentele nu au) discuri, darvor fi dotate veaun eehivalent al discurilor ca urmare a aparitiei memorillor ROM cu tehnologie Flash. Odata cu aparitia discurilor au aprut si ssteme primitive de fsiere. Pe CDC 6600, cea ‘mai puternicd masina timp de mai multi ani din deceniul 1960, sistermul de fisiere reprezenta capacitatea atribuité utilizatorilor de @ crea fisicre gi dea le. declara apoi permanente, aceasta insemnand ci fisierele imaneau stocate pe disc chiar siidupd ce programul care le-aereat era inchis. Pentre a apela un astfel de fisier dup un anumit timp, un program trebuia si-i atageze 0 comandi si s& ,,prezinte” parola (atribuiti atunci cand fisierul a fost facut permanent). Prin wemares exista un singur catalog partajat de tofi utlizatorii si depindea de utilizatori si se evite conflictele generate de numele fisierelor. La primele minicaleulatoare, sistemele de fisiere aveau cate un singur catalog partajat de {oti utilizatorii gi tot aga s-a intamplat sila primele microcalculatoare. ‘Memoria virtuald (capacitatea de’ a rula programe cucerinfe de memorie mai mati decét memoria fizicd disponibila) a avut o dezvoltare similara. Ea a aparutmai inti la calculatoarele mari, apoi la minicalculatoare; Ja microcalculatoare si tot aga Ia sisteme:din cen ce mai mici- Conectarea in retea a avut oistorie similara. pe SEC13 GRADINA ZOOLOGICA A SISTEMELOR DE OPERARE 7 in toate cazurile prezentate, dezvoltarea structurii soft a fost dictaté de tebnologie. Primele microcalculatoare, de exemplu, aveau in jur de 4 KB de memorie si nu aveau nici o protectie hard. Limbajele de nivel inatt si multiprogramarea erau prea complicate pentru ca un astfel de sistem sii le poati utiliza. Microcalculatoarele au evoluat pind la calculatoarele personale modeme, care au fost echipate cu modulele hard necesare si apoi cu structura soft cu care s% poatd gestiona activitati avansate, Este limpede cd aceastd dezvoltare va continua si in anii ce urmeaza. Sunt si alte domenii {in care se poate evidentia aceastA roatd a progresului, dar in industria de calculatoare ea pare si se invarti mai repede. 13 GRADINA ZOOLOGICA A SISTEMELOR DE OPERARE Toati aceastd evolutic a creat o istorie in care se gaseste o mare varietate de sisteme de operare, dintre care inele sunt mai putin cunoseute. fn acest capitol sunt prezentate, pe scurt, 7 dintre ele. Se vareveni, mai tarziu in carte, la diverse tipuri de sisteme de operare. 13.1 _ Sisteme de operare pentru masinile mari de calcul Pe nivelul cel mai de sus se afla sistemele de operare pentru calculatoarele mari, acele caleulatoare ,cdt casa”, care se mai gasesc si astazi in centrele de calcul ale marilor companii. Aceste caleulatoare se deosebesc de calculatoarele personale prin capacitatea mare de lucru cu dispozitive de IE. Astfel, o astfel de magina cu 1000 de discuri si cu mii de gigaocteti de date nu este ceva neobignuit; un calculator personal cu aceste caracteristici ar fi chiar ciudat. Caleulatoarele mari sunt pe cale sa redevina actuale ca servere de Web, servere pentru sit-uri dedicate comer {ului electuonic pe scard larga si servere pentru tranzacfiiintre companii. Sistemele de operare pentru aceste calculatoare mari sunt puternic orientate spre procesarea ‘mai multor job-uri in acelasi timp, majoritatea necesitnd multe dispozitive de /E. Ele oferi, de bicei,trei tipuri de servicii: procesarea loturilor, procesarea tranzactiilor si partajarea ff timp. Un sistem de procesare pe loturi proceseazi Iucrari obisnuite, far si necesite prezenta gi interventia uilizatorului. Procesarea operafiilor uzuale in cadrul companiilor de asiguriri, sau raportarea vanzirilor pentru un lant de magazine se rezolva uzual in acest mod — procesare pe loturi. Sistemele de procesare a tranzacfillor gestioneaz pachete mari de cereri scurte ~ de exemplu, procesul de iutarevverificare intr-o baz de date de rezervari a unei companii aeriene. Fiecare unitate de lucra este mic, dar sistemul trebuie s gestioneze sute de mii de astfel de unitati pe secunda. Sistemele cu périajare in timp permit mai multor utilizatori, aflati la distanta, si-si ruleze programele prin care inferogheazi o baz de date mare in acelasi timp; sistemele de operare de pe calculaoarele mari executi adesea toate cele trei tipuri de servicii, Un exemplu de astfel de sistem de operare este (08/390, un urmas al lui OS/360. 18 INTRODUCERE CAP. 13.2 Sisteme de operare pentru servere Cu un nivel mai jos se afl sstemete de operare Penta senvere. Acestea ruleazii pe servere, care sont fe calculatoare personale sau stait de luers foarte Te fie chiar masini eu putere mare de Sale Ele deservese mat multi utilizatori odat, Prin sntermediul unei rejele si le-permit acestora si partajezeresursele hard gi soft. Serverele Pot forniza servicii de imprimare, servis pentru fisicre ren de Web, De exemphu, furnizort de servi rvernet spun chiar de mai multe servere pentru * angura ulizatorilor servile cerute, ar sit-urle Web folosese serverele pentru a memora paginile de Web si pentru a gestiona cererile care vin pe adresa lor. {in mod obisnuit, sistemele de operare pentru severe sunt UNIX gi Windows 2000, we imu clstigs gi el teren in aceasté competific, 133. Sisteme de operare multiprocesor ‘Un mod din ce in ce mai des folosit pent & castiga putere de calcul semnificativa este conectarea mai multor unitat de procesare intr-un singut ‘sistem. in finetic de numarul de procesoare conectate side resursele partalae, ‘aceste calculatoare sunt numite calculatoar® paralele, rvultrcalculatoare, sau multiprocesoare. Ele necesita sisteme de operare speciale, dar adesca mestea sunt variante ale sisemelor de operare Pentri senvere, oa caracteristici speciale privind ‘comunicatia si conectivitatea. 1.34 _ Sisteme de operare pentru calculatoare personale tnmitoarea eategorie cuprinde sistemele de operare Pont ‘calculatoarele personale. Sarcina Joreste de a oferi o interfafa eticient yuu singur utilizator. Aceste sisteme sunt ‘mult folosite pentru 4 sustine apicatii cum sunt proeesoarele de fo fistemele de foi de calcul si aocesu ki Entesnst, Exemplele obignuite sunt Windows 98, Windows "2000, Linux si sstemul, de operare pentry Macintosh, Sistemele de operare pentru calculatoare personale sunt cunoscute de. atit de mult me neat nu maie nevoie deo introducere prea UN ‘De fapt, multi utilizatori nici mu sti cA mat exist gi altetipuri de sisteme de operare- 1.3.5 Sisteme de operare in timp real ‘Un alt tip de sisteun de operare este sistermul in timp real. Astfel de sisteme 2 particularitatea ca timpul reprezinta pentru ele un paramelaw icheie, De exemplu, Im sistemele de conducets procesclor industrial, calculatoarele in tmp chet eebuic si colecteze date despre procestl de producti si si le foloseasc pentru a manda masini din fabric. De eole mai multe oi exist’ performanye sever definite care trepolese ‘ndeplinite. De exemplu, dacd un automobil (in Postrace) se deplaseazd itso Tinie de asamblare> vamaite actin se cer exceutate Ia momente de timp bine definite. Daci un robot de sudurs sudeazi prea devreme sau prea ta17it automobilul ar putea si se dezmembreze. Dac actiunea festiva trebuie executata la un anumit moment de timp (Gau intr-on anumit interval atunei el este U9 steve strict in mp real (hard real-time sistem) ‘Un alt tip de sistem in timp real este sistemul ,Jejer” in timp real (soft ‘yeal-time system), Ja care se accept ratarea ocazionala @ unut termen de exccutic. Sistemele ‘audio digitale si sistemele vrultimedia se incadreaza in aceasta cateyoric. Qa Works si ONX sunt sisteme de operare in tmp real bine cunoscute. SEC.14 _ NOTIUNIDESPRE STRUCTURA HARD A CALCULATORULUI » 13.6 Sisteme de operare pentru dispozitive incorporate Coboriind inca un nivel, cdtre sisteme din ce in ce mai mici, se ajunge la calculatoare palmtop sila sisteme incorporate. Un calculator palmtop sau un PDA (Personal Digital Assistant, rom: asistent personal digital) este un calculator de dimeusiuni reduse, cate tncape in buzunarul de la cémagi gi execut un numar redus de funcfii, cum ar fi si memoreze 0 agendii cu adrese in format electronic sau Si permit serierea unor scurte notite. Sistemele incorporate ruleazi pe calculatoare care ‘comanda dispozitive ce nu au fost gindite, in principiu, ca gi calculatoare, cum sunt televizoarele, cuptoarele cu microunde $i telefoanele mobile. Acestea au adesea caracteristici similare cu cele ale sistemelor in timp real, dar au restrict’ privind dimensiunile, memoria si consumul de putere, care le fac si fie speciale. Exemple de astfe! de sisteme de operare sunt PalmOS si WindowsCE (Consumer Electronics, rom: sisteme electronice pentru consumatori) 13.7 Sisteme de operare pentru cartele inteligente Cele mai mici sisteme de operare ruleazit pe canele imeligente, care sunt disporitive de marimea unci cirti de credit gi sunt dotate cu un cip UCP. Ele au restrcti severe privind puterea de procesare simemoria. Unele dintre ele pot gestiona numai un singur tip de singura funcfi, cum ar fi cele pentru platle electronice, in timp ce altele pot gestiona cfteva functii diferite pe aceeasi cartela inteligenié. Adesea, aceste sisteme de operare sunt dedicate numai pentru dispozitivele respective. Unele cartele inteligente sunt orientate pe Java. Acest lucru inseamni cdi memoria ROM de pe ‘careléinteigenta contine un interpretor pentru JVM (Java Virtual Machine, rom: masina virtual Java). Applet-urile Java (programe mici, scrse in Java) sunt descarcate pe card gi sunt interpretate de jnterprciutul JVM. Uncle dintre aceste card-uri pot rula mai multe applet uri Java in acelasi timp, ceea ce conduce la multiprogramare si prin urmare la nevoia de planificare a lucrarilor. Gestiunea resurselor si protectia devin gi ele probleme atunci cénd doua sau mai multe applet-uri sunt prezente ‘nacelasi timp. Aceste probleme trebuie rezolvate de citre sistemul de operare (de obicei extrem de rugimentar) existent pe cartela. 1.4 NOJIUNI DESPRE STRUCTURA HARD A CALCULATORULUI Un sistem de operare este croit pe masura structurii hard a calculatorului pe care ruleazii. ‘Sistemul extinde setul de instructiuni al calculatorului si fi gestioneaza resursele, Pentru a functiona, sistemul de operare trebuie sa stie multe lucruri despre structura hard, un minim fiind dat de modul fn care programatorul vede structura hard. Principial, un calculator personal simplu poate fi feprezentat de schema bloc functional din fig. 1-5. Unitatea central de prelucrare, memoria si dispozitivele de intrare/iesire (de I/E) sunt conectate la magistrala sistemului, prin intermediul careia ‘comunica intre ele. Calculatoarele personale moderne au structuri mai complicate, folosind mai tulte magistrale, ce vor fi prezentate mai tarziu, Pentru moment, modetul prezentat va i suficent. {in capitolele urmitoare vor fi trecute in revista, pe scurt, toate aceste componente $i se vor examina cateva dintre problemele hard care fi privesc pe proiectantii de sisteme de operare. Controlor Fig. 15. Cateva dintre componentele unui calculator personal simplu- Procesoare reiert” ul calelator ete UCP-EY CAE instructiuni baz al fiecanai UCP se deruleaz’ ‘tf, cites prima instrueione din ‘memorie, 0 decodifie’ penta vi determina tipul si operanzil, © ‘executé $i continual ou citireay i jstruciunilor urmatoare. In acest fel se executa programele. ‘Fiecare UCP are us set specific ‘de instructiuni pe care le poate executa, Astfelun Pentinm oe fe executa programe SPARC, iar un SPARC mu poate cxceuts prnerame Pentium. intrucat jarea memoriei pentru & ‘prelua o instructiume Sa fon cuvant de date dureaZt mult mai mult decat executarea tne insructumi, 104 SSCP au in interior ceva registte 9 CAE sefin variabilele cheie si rezultatele temporare ibstfel, setul de instractiunt fnearcare a unui cavant din memorie intraun registra ‘memorie. ovpus fat de registro folsite pent 2% fine variabi calculatoarelor au anumite registre cate sant acces ‘urmatoarea instructiune. Dupal c& instructiunea a fost citi, ‘adresa urmatoarel instruct ‘Un alt repstru este indicatoral de stiva (stack pointer), care Fevine nivelul curent at stivei (indict gpre elemental din vaful sve) ‘aflate in. memorie. Stiva Procedur care a inrat gn an ry isi cd. Un cara corespunZaon vunei procedu | retine parametri de intrareé, a able locale gi varibilee temporate Sore nu mai sunt memnorate if registte, Controlor tastatur’ ei storare ih memorie & un ceavant dintr-un registra, Alte instructiuni ‘cambini doi operanzi din Memon’ registre satin ambele intr) Teutat, Un exemplu poate i adunares ora euvinte si stocarea rezltauluiAE-22 registru sau in ite programatorului, Unol dinits ‘aoestea este contoru! de program (program Mounter), care refine aaresa, Ge memoric de fa care va fi cit Unitate de dischet’ Controlor unitate ch Magistrals ie din memorie si le exceut caren’ gi exeoutarea confine, in prinepivy instant de ile gi rezultate temporare, majoritatea | ssontonul de program este actualizat Cl | Toate cate un nivel penny Cee ‘Dn alt rogistu este euvml de stare programului (PSW ~ Program Status Word). Resist contine biti de consi, cae sunt Seta de unele mstructun de prioritate al UCP, bit carespecificd modul de luen (utlizator sau naclen) ide comparare, biti care codilick nivel iti de control ‘Becggamele uiizator pot 18 ‘mod normal, Si citeascd tot registrul PSW, dar nu pot si sorie decat i anumite Campi de wh ESM GENTLE tin apelurile sistem si.cele sPre spatiul de VE, SEC.14 NOTIUNIDESPRE STRUCTURA HARD A CALCULATORULUL a ‘Sistemul de operare trebuie cont de toate aceste registre. Atunci cdind UCP Iucreazit cu tmultiplexare in timp, sistemul de operare va opri, adesea, un program care ruleaz pentru a porni (‘eporni) un altul, De fiecare data cand opreste un program care ruleaza, sistemul de operare Irebuie si silveze toate registrele, aga incat ele si poati fi restaurate la relansarea programului Pentru a cieyte performantcle, proicetantii de UCP au abandonat de mult mordelul. simplu | aledtuit din citirea, decodificarea si executarea unei singure instructiuni la un moment dat. Multe | nitati'de procesare moderne pot executa mai multe instructiuni in acclasi timp. De exemplu, 0 UCP poate efectua avea unititi separate pentru citire, decodificare gi executie, asa incat in timp ce exccuta instructiunea n poate decodifica instructiunea n-+1 si poate citi instructiunea n+2. O astfel de organizare este numité banda de asamblare (pipeline). In fig, 1-6(a) este ilustrata o banda de ‘samblare cu trei niveluri, dar se folosese si benzi de asamblare mai lungi. In majoritatea solutilor de acest tip, odatd ce o instructiune a fost introdust in banda de asamblare, ea trebuie executata chiar acd instructiunea precedent a fost un salt conditionat care s-a executat, Benzile de asamblare provoaci multe dureri de cap celor care scriu compilatoare i sisteme de operare pentru ci ele ‘evidentiazd complexitatea masinii pentru care se serie. mate Tanne |_| pe de citire >| 46 cec0 | ae | _ [eae [oe sats Haase i ‘iiearel "Losaci cane ome - de chiray=| 40,2200 @ o Fig. 1.6. (a) 0 banda de asamblare cu trei niveluri; (b) Un UCP superscalar. ‘Mai avansat decit varianta cu banda de asamblare este o UCP superscalara, prezentati in fig. - ‘(0 in acest caz sunt prezente mai multe unititi de executie, cum ar fi una pentru aritmetica ‘umerelor intregi, una pentru aritmeticd in virgulé mobild si una pentru operafii booleene. Dous sau fi multe instructiuni sunt ctite in acelagi timp, sunt decodificate si plasate intr-o zonii de memorie ee pang cand pot fi executate, De indata ce 0 unitate de executie este liberi, ea verifie& daca in pon s¢ aflé vreo instrictinne pe care so poatd executa. Dac’ ca exist atunci unitatea preia - instructiunea din tampon si 0 executé, O consecinfi a acestei solutii este ci instructiunile ee sunt adesea executate in alta ordine. Pentru majoritatea cazurilor structura hard este ‘Gea care garanteaza ca rezultatele obtinute sunt accleasi cu cele generate de o unitate seeventiald. in “sclsitimp, apare si un plus de compleaitate i sistemul de operare, asa cum se va vedea mat tzu Majoritatea unitiilor de procesare, cu exceptia celor foarte simple folosite in sistemele ‘norpoat, pot luera in dou modi: mod nucle si mod vilizator (aa eum ss mentionat ma -devreme). De obicei, un bit din PSW comand modul. Atunei cfind lucreaza in mod nucleu, UCP te executa orice instructiune din setul propriu si poate folosi orice caracteristicd a strueturi har Suemulae operare lucreazii in mod nucleu si are, in acest fel, acces la toatl structura hard, Prin contrast, programele wtilizatorilor ruleazai in myd ulilizator, mod in eare se poate executa doar un subset de instructiuni si este posibil aocesul doar un subset de caracteristic ale structurii hard. in general, toate instructiunile care pot afecta protectia dispozitivelor de IE gi a memoriel mu al 2 INTRODUCERE CAP.1 sunt accesibile in mod utilizator. Setarea bitului de mod din PSW pentru ‘activarea modului nuclew este siea interzisi hae: ‘Pentru a beneficia de servicile sistemului de operare, un program utilizator trebule siexeeute vo apel de sistem (system call), care determin trecerea in mod nucleu si activarca sistemului de cperare. Inaruciuea TRAP (rem eapeana) comuts din mod utilizator in mod nucleu ¥ porness crremal de operare. Dupi ce operafile au fost executate, comanda este transferaté programull vtligiton la instructiunea care urmeazi dupa apelul de sistem, Detail despre modul de exccutle & pelt de sistem vor fi prezentate mai tari in acest capitol. Merit preczat cf exist sate 1D de capcane, nu numai cele floste pentru apelurile de sistem. Majoritaten eelorlalte apelust de trap sunt generate de siructura hard ca avertismente in cazul unr situa de eroare, com Wt fi impartirea la 0 sau eroarea de depisire inferioard in cazul operatiilor in virgulé mobila. in toate ae astemul de operare prea contolul si trebuie i decid ce este de fen. Uneoriprogramut trobuie oprit co sermalizarea unei eros. Alteor eroarea poate fi ignoratl un num enrea generss 0 croare de depisire inferioard poate fi considerat 0). jn sffisit, atunci cand programul anunta ci Gloeste af gestioneze singur anumite tiputi ve conditi, comanda poate fi transferatd: inapol programului pentru al Kisa si-girezolve problema. 14,2 Memorie ‘A doua component, important, in orice ealevator este memoria, Ideal, 6 memorie trebuie si fis extrem ee aida (mai rapid deeatexecutarea une instrvctiun, aga neat UCP sini fe tint Bloc de memorie), cét se poate de mare si foarte ieflind. Nic una dintre tehnologile actuale ny a ac toate aceste deziderate, asa incit este luatl in considerare o abordare difeit. Sistem de memorie este construit ca o ierarhie de nivelur, aga cum este prezentat in fig, 1-7. Nivelol superior este alcltuit din registrele interne ale UCP. Ele sunt rellzave dis acclasi material ca si UCP si de aczea sunt la fel de rapide, Prin urmare nu exist nicl o Gntriese in Tpelarea lor, Capacitatca de memorare dsponibil i resste este, de oblee, de 32 = 32 biti pentru UR UCP de 32 de bit side 64 x 64 biti pentru un UCP de 64 de biti, Aceasta inseamn 0 capacitate wn nick de 1 kB in ambele eazuti. Programele trcbue sisi gestioneze singure reistele (adic si decid ce memoreazi in ele). Pe nivelul uimator se ail memoria intermediard (cache memory) care este, comandals cy prevadere de structura hard. Memoria principal este imprft tn lini! de ‘memorie intermediar rrgehe lines), avand de obicei 64 octet, cu adrese de fa Ola 63 in lniaO, cu adrese dela 6 Ip Tin (ae i age’mai depart, Cele ui folosite lini sunt retinate intr-n memorie intermediard foarte rapid, plasaté in interiorul UCP sau foarte aproape de el Atunci cind programul trebuie Si epessckvan cuvant din memorie, sructura hard a memoriciintermediare verifies daca linia solicits fe in memoria intermediar’. Daca da, apelul se numeste cache hit — semnific regasires ncmmorin intermediar’ -, iar cererea este satisfacutd direct cu datele din memoria imtormediard fra ea reo cerere suplimentara de acces la memorie si fie transmis prin magstala ‘memoriei principale. Operatile de citire pentru care datele se regisesc in memoria intermediara ‘iureasd, in mod normal, in jur de dow’ cichuri de ceas. Dac linia ceruta lipseste din memoria aoe ard, rezatatl cererl se numeste cache miss — semnifick absenta informatiel cerute din jnemarin intermediata ~ si determin’ folosirea memorici principale, dar cu penaliziri importante de timp. Memoria intermediara este limita ca mrime din cauza costlul ridlst, Uncle masini au cara SEG1M4 _ NOTIUNIDESPRESTRUCTURA HARD A CALCULATORULUI 2 douii sau chiar trei niveluri de memoric cache, fiecare dintre cle mai lent si mai mare decit eel pai sen em dinaintea lui. a Pe urmitorl nivel se ala memoria principal, Aceesta epreint call de bata tel de eT 1memorie. Memoria principal este adesea numita RAM (Random Access Memory, rom: Memorie sca somal Erste anton. Hisind domenhitto mmc ear zoemareier”(corroenon) peat ee oermnhd in decenile 1950, 1960 calculatoarele foluseau peut walizatea siemotici principale incle mici de ee ease ferti al cdror miez se magnctiza. Uzual, memorille au capacititi de zeci sau sute de megabiti si meme ake Se gsi ee ml Tone creda merone le UCP, cre mu pot fete de ‘eloralte apeluri de tP ‘memoria intermediar, sunt transferate memoriei principale Fide eroare, cum ar it mobil In toate ai seals eg ingot mobi c2es tpic apacitae pied facut. Uneori programol van mmr care & BENET nsec Regist «ike annie tn progam ang 2 ne Fiemme 18 fe A wansferats ta001 % WOnsec ‘Memorie principals 64-512 MB 10 meee Dise magnetic 1 a Fig, 1-7. Jerarhiatipicd a memoriel. Numorele sunt aproximative, Jdeal, o memoric trebuic aincat UCP sa 00 fie tinut sre tehnofogile actuale m™ diet Sisesml © Pe urmatorul nivel ierarhie este plasat discul magnetic (hard disk). Memorarea pe dsc exte ct ordare diferita. St ‘oud ordine de mirime mai ieftin’ per bit in raport eu memoria RAM i adesea si cu dou ordine de mérime mai mar. Singura problema ese i timpul de acces aleator la datele de pe disc este cu trai ordine de mirime mai mare. Viteza scizuti se datoreaza faptului c& discul este un dispozitiv mecini, asa cum se vede in fig. 1-8. “Un disc este aleatuit dintr-umul sau mai multe platane metalce care se rotese cu 5400, 7200 sau 10500 rotativminut. Un brat mecanic se deplascazd radial deasupra discuilor, intr-un mod aseminitor cu deplasarea bratului de pick-up la ascultarea discurilor de vinil Inform pe dic sub forma unei succesiuni de cercuri concentrice. Pentru orice poztie a brajului fecare “inte capete poute citi o zona crculard, numita pista (track). Toate pistele care corespund unci _ pei bratuluialcatuiese un elindra, | Ficcare pis este impart intr-un mumar de sectoare, sectorul avand, de obicei, 512 octet. La scurle moderne cilindrii exterior au mai multe sectoare decat cilindrii interior. Deplasarea nafului dela un cilindra la urmitorul durcaza aproximativ 1 ms. Deplasarea brafului la un eilindru az intre 5 gi 10 ms in functie de tipul unitiii de dise. Dupa ce braful este poditionat pra pstei corecte, unitatea trebuie si astepte incl un interval de timp intre 5 si 10 ms, in ‘nets de viteza de roti, pind cind sectoral upelat se afi sub eapul de etre. Odut ce eapal de lire este pocitionat corect, citirea sau scrierea se realizeaza cu viteze cuprinse intte $ MBS la cure mai vechi si 160 MBIS la discurile rapide. © Pe ulimul nivel ierarhic al sitemului de memori se afli banda magnetici, Acest media este eseautlizat ca mediu de arhivare pentru discur si pentru stocarea unor seturi foarte mari de date ‘a banda s& poati fi apelati, ea trebuie mai inti montata in ctitoral de banda fie de © fie de un robot (manipularea automati a benzilor este ilzati in instalait cu baze de date ceastainseamnd o capacitale sp eingure registrle (adie SS care este comand 8 4e intermedia init de memorie intermedia “pen adrese de la 64 a 127 in rmemorie intermedia’ fo3rte find programul tebuic 95 wy) jal fe ransmish prin magi fe een ered sec ene din meno Pepwenta informa ceute 2 orev penal amporante sou dient, Unele masa 0 ” ‘uriage). in continuare, banda trebuie peste alta operatiile per bits faptul c¥ este detasebil, Iuera care pistratein alta locatie Suprafata 7— suprafata 6 Suprafata 5 Suprafata 4 Suprafata 3— ‘Suprafata 2“ Supratata 1 Suprafaja 0 INTRODUCERE, pentru.a supraviefui eventualelorincendl inundatii, CAP.1 erulatd rapid inainte-pentra a ajunge = blootl solicitat. Una acestea pot dura minute. Miorile avanaje ale beni sunt prel extrem de mic este important pentru benzile de arhivare, care irebuie coutremure ete. Cop de citiralscriere {onul pentru fiecare suprafaé) Directia de deplasare a bragului Fig. 18, Structura unel unitayi de dise- Jerarhizarea prezentatit pe masurii ce sia, ia preful per bit scade, 4 functioneze in continuare, parcurs. e langi tipurile de memorie diseutate pan’ capacitate redusi, Spre deosebire de ‘cu acces aleator, nevolatila si de si pierde continutul Ta i pentri sistemil de menorie este una HCA dar au toate nivelurile sau au niveluri usor diferte (Com ° fi se goboat” in erie timp de acces aleator ess ‘semnificativ, Prin urmare, este vhiar daca implementarile nivelurflor respective s¢ Vor ‘moderniza pe intreruperea tensiunii de alimentare, exist gi sisteme care nu discul optic). Pentru toate structurile, ins, capacitatea creste foarte probabil ca princpiulirashilor de memoric acum, multe calculaioare au stun Bloc de memon® RAM, memoria nevolatilé nu- ROM (Read Only Memory, rom: vamorie accesibila numa pentru citire) este programatd in fabrick sim mai poate f modificata. Modulele ROM sunt rapide si putin costs sistemului folosité 1a pornire pentru gestionarea EEPROM (Electrically Erasable ROM) spre deosebire de ROM pot fi sterse 3 re ‘marime mai mare decat serierea in eronate. "Memoria CMOS reprezint un alt tip CMOS pentru a refine data si ora curenti. Memort timpul sunt alimentate alimentirii de I retea, at fi indicativul discului de pe CMOS este consumul extrem de la o mica baterie, este stocata in ROM. ‘comenzilor de nivel seizut ale TRAM, asa incat ele indeplinese aceleast ROM a singura deoscbire ci eventualele eror din ProBr=m de memorie volatila. Multe ‘Memoria CMOS poate care se incarca configuratia sistem de redus de energie, aya inc&t ‘bateria instalat’ de fabricant ‘dureazi, de cele mai multe ori, cafiva ani. Atunei cand bateria slabeste, Seeepe unele calculatoare aplicatia de inifialian® ‘be asemenea, plicie de VE contin blocuri ROM dispozitivelor. eet in tchnologie flash sunt i cle nevolatle, dar rise. Scrierea lor dureaz un timp cv cateva ordine de func ca si memoriile ot fi corectate prin resrierea zonelor calculatoare folosese ‘memoria CMOS gional de ceas care inerementeaz aga inca timpul este actualizat corect chiar gi in lipsa refine, de asemenea, parametsi de comEUESS, cum ‘Avantajul utilizirii memoriet calculatorul pare a avea boala SEC 14 NOJIUNI DESPRE STRUCTURA HARD A CALCULATORULUI Alzheimer, uitind lucruri pe care le-a stiut ani la rand, cum ar fi data, ora sau discul de pe care inifalizeazi sistemul. fn cele ce urmeazi discutia se va concentra asupra memoriei principale. Estwadesea de dorit ca memoria s stocheze mai multe programe in acelasi timp. Daci un program s-a oprit, asteptand finalizarea unci operatii de citire de pe disc, un alt program poate utiliza UCP, determinand astfel un grad sporit de utilizare a UCP. in cazul in care dou sau mai multe programe sunt retinute in ‘memoria principal’ in acelasi timp trebuie rezolvate doua probleme: 1. Cum se evita interactiunea intre programe siintre nucleu si programe? 2. Cum se gestioneazi relocarea in memoric a programelor? ‘Sunt posibile mai multe soluti. Toate implic’, ins, echiparea UCP cu o structura hard special Prima problemi este relativ lar’, in timp ce a doua este ceva mai subtili, Atunci cind un program este compilat si editarea de legituri este completa, compilatorul si cditorul de legaturi nu sfiu care este zona de memotie fizica in care se va incarca programul in timpul executirii. Din acest motiv ele presupun, de obicei, c& programul incepe la adresa 0 si plaseazii prima instruetrune la aceasti adres’. Si presupunem c& prima instructiune trebuie s& citeascd un cuvant de la adresa de ‘memorie 10.000, $i si presupunem, de asemenea, c4 programul si datele sunt incircate incepand de Ja adresa 50.000. Atunci cdnd se executi prima instructiune, ea va esua pentru c& va apela un cuvant ela adresa 10.000 in locul cuvantului de la adresa 60.000. Pentru a rezolva aceastii problema este necesar fie ca programul si fie relocat in momentul incarcarii, prin cautarea gi modificarea tuturor adreselor (ceca ce se poate face, dar este costisitor), fie sa realizeze relocatarea din mers”, in timpul executii Solutia cea mai simpla este prezentati in fig. 1-9 (a). in figura este prezentat un calculator dotat cu douii registre speciale, registru de bazii si registru limit. (De rejinut cA in carte mumerele care {ncep cu Ox sunt in hexazecimal, conform conventiei din limbajul C. Similar, numerele eare ineep cu | un 0 sunt in octal). Atunci cand un program este rulat, registrul de baz este setat cu adresa de ‘inceput a textului programului, in timp ce registrul limita precizeaz& cat de lungi este combinatia aleituité din textul programului si date. Atunci cand trebuie extrasi o instructiune, structura hard Yerifici daca valoarea din contorul program este mai mica decat valoarea din registrul limita. Dacé ‘ste aga atunci adund valoarea din contorul program la valoarea din registrul de baza, iar suma 0 trimite ca noua adres a memoriei. in mod similar, atunci cnd un program intenfioneaza sa extraga lun ouvdnt de date (de exemplu, de la adresa 10.000) structura hard adund automat valoarea din registrul de baz (de exemplu, 50.000) la adresa curenta si trimite suma (60,000) ca noua adresd in memorie, Registrul de baz’ impiedica un program si apeleze zone de memorie de ,sub” el. in mod ‘similar, registral limit impiedica un program s& apeleze zone de memorie de ,deasupra” lui. Astfel, schema rezolvi atat problema protecfiei, cat si pe cea a relocarii cu preful introducerii a doud “regisre noi si a unei usoare cresteri a timpului unui ciclu (pentru a realiza verificarea limitei si adunarea). Verificarea si punerea in corespondenté au ca rezultat conversia unei adrese generate de program, numiti adres virtuald, intr-o adres’ utilizaté de memoric, numita adresa_fizicd. Dispozitivul care executa verificarea si punerea in coresponden{ii este numit MMU (Memory ‘Management Unit, rom: unitate de administrare a memoriei). Unitatea este plasata, construct, pe chipul UCP sau foarte aproape de el, iar din punet de vedere logic este plasata intre UCP si memorie, 26 INTRODUCERE, CAP.1 © MMU mai sofisticaté este prezentat in ig. 1-9 (b): in acestcaz se foloseste 0 MMU cu dou perechi de registe bazi-limiti, una pentru textl programului si und pent date. Contorul program fi toate celelalte componente care se refed la textul programuluiflosest perechea iar referirile la vate folosese perechea 2 Ca o consent este posbi in acest moments existe ma multi utilizatori ‘care partajcaza acelasi progtamn, memorat o singurd dati, fuera care nu era posibil cu prima schema. ae Registrele onrresFF iia regia e canals Lamia bi j— Baza-2 nee Limnits-2—>} fe ines ans Bazé-1 Fig, 1-9. (a) Utizarea unei perechi bazélimits. Programul poate apela memoria cuprinsa intre pazd timita tb) Utiizarea a dous perechi bazéimit&, Codul progremulu ost cuprins intre baz’ 1 5 limita-1 In timp ce datele sunt cuprinse intr baz? 51 limnit8-2. ‘atunciefind roleazd programul 1, cele 4 registre sunt setate asa cum indies ‘sigetile din partea sting « Gg 1-9 (b). Daci ruleaza programmul 2, registele sunt setate as CAT arata sagetile din parteadreapti a fig. 1-9 (b). Exist i variante de MMU mt mat soFstico ‘Unele dintre ele wor fi vdiate mai taria m carte. Lucrul care trebuie subliniat aici este ef penta geste MMU trebuie 4 existe 0 functic a sistemului de operare, deoarece wilizatort pot $4 m aibi suficient’ pricepere in realizarea operatic ‘Sent dowd aspecte legate de sistexnul de memorie care au un efect major asupra performantelor. Primul aspect este legat de faptul c& memoria intermediar& maschea7A vier relativ sciizuti a temoriet principale, Dupa ce programul a rulat pentra un timp, memo intermediara este ‘ocupati eu linille de memorie intermediara ale programulu, determinand performante bune de oteek Daed sistemull de operare comut de la un program la altul, memoria intermediara riméne ‘ocupatii cu linile “cache” ale primulut program. ‘Liniile necesare noului program trebuic incdrcate cate una, pe rind, dia memoria fzica. Aveasté operatic poate fio cauzd majors de depreciere a performantelor daca se intmplit prea des. SBC:14 NOTIUNIDESPRE STRUCTURA HARD A CALCULATORULUL ” ‘Al doilea aspect este legat de faptul ca la comutarea de la un program Ia altul trebuie schimbate registrele MMU. fn fig. 1-9 (b) trebuie setate din nou numai 4 registre, ceea ce nu reprezinti 0 problema, dar’ la MMU reale trebuie reincarcate explicit sau dinamic, dup’ caz, mult mai multe registre, Opcratia ia timp, indiferent de calea aleasi. Morala povestirii este ci trecerea de la un program la altul, numita schimbare de context, este 0 operatic costisitoare. 143 Dispozitive de VE Memoria mu este singura resursi pe care trebuie si o gestioneze sistemul de operate. _Disporitivele de V/E interactioneaza freevent cu sistemul de operare. Aga cum a fost prezentat in fig, 15, dispozitivele de VE sunt aleituite, in principiu, din dowd blocuri: un controlor si dispozitivul propriu-zis. Controlorul este un chip sau un set de chip-uri, montate pe o placa ce poate fi montaté fn calculator si care comandai la nivel fizic dispozitivul. Controlorul aecepta comenzi de la sistemul de operare, cum ar fi si citeascd date de la un dispozitiv si sa le prelucreze. in multe cazuri comanda reali a dispozitivului este foarte complicata si detaliatd, asa inciit este treaba controlorului si punta la dispuzitia sistemului de operare o interfajii mai simpli, De exemphu, in controlor de disc poate primi o comanda de citire a sectorului 11,206 de pe discul 2. Controlorul ‘trebuie sf converteasca acest numar ,liniar” de sector intr-o combinafie reali alcatuita din cilindru, sector si cap de citire. Conversia poate fi complicata datorita faptului cd cilindrii exteriori au mai multe ‘sectoare decat cilindrii interiori, sau pentru ci sectoarele defecte au fost rescrise in alte sectoare. in continuare, controlorul trebuie si determine pe ce cilindru este amplasat braqul disculut $188 genereze o succesiune de impulsuri care si deplaseze bratul spre interior sau spre exterior cu numérul calculat de cilindri. Odata amplasat pe cilindrul corect, bra{ul va astepta pana end sectorul dort se deplaseaz’ sub capul de citire, dupa care poate incepe citirea si memorarea bitilor (in ordinea data de unitate), eliminarea preambulului si calculul sumei de control. in final, controlorul ‘ebuie si asambleze biti cititi in cuvinte pe care si la stocheze in memorie. Pentru a realiza toati ~ aceasti activitate controlorele contin, adesea, mici caleulatoare incorporate care sunt programate si ~ execute operaliile prezentate. Cel de-al doilea bloc component este dispozitivul propriu-zis. Dispozitivele au interfete relativ "simple, atat pentru ci ele au functionalitati restranse, cat si pentru ca este bine ca interfetele sa fie ~ standard. Ultima conditie este necesara, de exemplu, pentru ca orice controlor de dise IDE sa poata “gestiona orice disc IDE. IDE vine de la Integrated Drive Electronies (rom: electronica integraté in ~ untate) si este standardul tipic pentru discurile de pe Pentium-uri si de pe alte caleulatoare. Deoarece interfata reala a dispozitivului este ascunst in spatele controlorului, tot ceca ee vede “sistermil de: opcrare este interfata cu controlorul, care poate fi diferita fagi de interfatn en dlspozitivul. Pentru ca exista tipuri diferite de controlore, sunt necesare si programe diferite pentru fiecare dintre ele. Programul care comunici cu un controlor, furnizindu-i comenzi si receptiondnd ‘rispunsuri, este numit driver de dispozitiv (device driver). Fiecare producitor de controlore trebuie i furnizeze cate un astfel de driver pentru fiecare sistem de operare care va interactiona cu dispozitival, Astfel, un scanner poatc veni cu drivere pentru Windows 98, Winclows 2000 si UNIX, de exemplu. "Pentru a putea fi folosit, un driver trebuie addugat sistemului de operare in aga fel incit si poata ‘nulain mod nucleu. Teoretic, driverele pot rula si fn afara nucleului, dar in acest moment sunt puyine “sisteme care-accepti eveasti posibilitate, pentru ci ea cere, practic, si se permita unui program din 28 INTRODUCERE CAP.1 spatiul utlizator sa poatd apela dispovitivul in mod comandat, caracteristicl rareori suportatd, Exist ‘rei modalititi prin care un driver poate fi addugat nucleului, Prima modalitate este si recompilarea gi refacerea nucleului cu noul driver inclus, urmata de reinitializarea sistemului. Multe sisteme UNIX lucreaza in acest fel. A doua modalitate este generarea unei intrari intr-un fisier al sistemului de operare, precizindu-i ca are nevoie de driver, urmata de asemenca de reinitalizarea sistemului. in momentul reinitializarii, sistemul de operare pomeste, cauti driverele de care are nevoie $i le incarca. Windows lucreazi in acest fel. A treia modalitate este gindita pentru ca sistemele de operate si poat& accepta si instala din mers drivere noi, fai sa fie nevoie ca sistemul s& parcurga etapa de reinifializare. Aceasti modalitate, putin folositi pan’ acum, devine tot mai comund. Dispovitivele ce pot fi conectate a cald”, cum sunt dispozitivele USB si IEEE 1394 (discutate mai jos), necesita intotdeauna drivere incarcate dinamic. Fiecare controlor are un numér redus de registre, care sunt folosite pentru comunicatie. De exemplu, un controlor minimal de disc poate avea registre care sf contina adresa discului, adresa memoriei, numarul de sectoare si directia (citire sau scriere). Pentru a activa controlonul, driverul primeste 0 comanda de la sistemul de operare, pe care o transforma conform cu valorile specifice care sunt inscrise in registrele dispozitivului. La unele calculatoare registrele dispozitivului sunt puse in corespondenti in spatiul de adrese al sistemului de operare, aga ineat ele pot fi citite gi serise ca gi locatii obignuite de memorie. Pentru astfel de calculatoare nu sunt necesare instructiuni speciale de 1/B, iar programele utilizator mu vid structura hard daca aceste adrese nu sunt la indemana utilizatorilor (de exemplu, prin folosirea registrelor de baza si limita). La alte calculatoare registrele dispozitivului sunt plasate intr-un spatiu special de porturi de /E; unde fiecare registru are 0 adres de port. Pe aceste masini, in modul nucleu, sunt disponibile instructiuni speciale IN si OUT, care permit driverelor si citeascai gi si serie. din/in registre. Prima schema inlitura nevoia de instructiuni speciale de /E, dar foloseste o parte a spatiului de adiese, Ullima schema uu foluseste spatiul de adiese, dar necesita instructiuni speciale. Ambele sisteme sunt folosite in egal misuri. Operatiile de intrare si iesire pot fi realizate in trei moduri diferite, in cel mai simplu mod, un program utilizator genereaz un apel de sistem, pe care nucleul il transforma intr-un apel de proceduri la driverul corespunzitor. Acesta pomneste dispozitivul de VE si rimfne intr-o bucld continua de interogare a dispozitivului, in care verifica dac s-au realizat operatiile cerute (de obicei exist un bit care indica daca dispozitivul este ocupat). Dupa ce s-au finalizat operatiile de VE, driverul transfer datele (daci ele exist) si se intoarce in program. Sistemul de operare cedeazi apoi comanda apelantului. Aceasti metoda este numiti agteptare ocupati (busy waiting) si are dezavantajul ci retine UCP intr-o bucla de interogare pana la terminarea activitatii dispozitivalui. Cea de-a doua metodi ii cere driverului si declanseze activitatea dispozitivului si s& solicite 0 intrerupere la terminarea activitatii. In acest moment, driverul nu mai asteapta, ci revine imediat din apel. Sistemul de operare il blocheaz pe apelant, daca este nevoie si cautii alte operajii de executat. Atunci cand controlorul detecteaza sfarsitul transferului genereaza o intrerupere care si semnaleze incheierea activitatii, intreruperile sunt foarte importante pentru sistemele de operare si de aceea ideea trebuie examinate mai atent. in fig. 1-10(a) este prezentat un proces, in trei pasi, de interactiune cu un dispozitiv de IB. in pasul 1 driverul precizeazi controlorului ce este de facut, prin scriere in registrele dispozitivului, Controlorul declanseaza apoi activitatea dispozitivului. Dupa ce controlorul a terminat de citit sau de scris numarul de octeti cc trebuiau transfcrati, va scmnala terminarea operatiei controlorului de intreruperi, folosind anumitelinii de magistralé, Acesta este pasul 2, Dacd SEC.14 NOTIUNIDESPRE STRUCTURA HARD A CALCULATORULUI 2» controlorul de intreruperi este pregitit si accepte intreruperca (poate si nu o accepte daci este eupat cu o intrerupere de priortate superioari), aun ativeaza un pin al UCP. Acesta este pasul 3. in pasul 4 controlorul de intreruperi plaseaz numarul dispozitivului pe magistrali, asa inet UCP si poata citi si si stie care dintre dispozitive si-a incheiat activitatea (mai multe dispozitive pot fi active in acelasi timp) Tpatrucianes eurentd Terruciunea urmatagre 3. Revenire| 1 introrupere 3 oo Te, ‘Agent de tratare a intreruperil (a (by Fig, 1-10. a) Pasii pentru declansarea unui dispozitiv de VE si pentru primirea unei intrerupert. {b)Procesarea intreruperii implica acceptarea intreruperii, rularea rutinei de achitare si intoarcerea in : programul utilizator. __De indati ce UCP a deci si accepte intreruperea, contorul program si PSW sunt memorate in stivacurenti, iar UCP wece in mod nucleu. Numaul dispozitivalui poate fi folositca indice intr-o oni de memorie (unde sunt loclizate rtinele de tratare a fntreruperior) pentru a gsi adresa inci de achitare pentru dispocitival respectiv. Aceasti zona de memorie este numiti si veetor de fnireruperi. Dupa ce rutina de achitare (parte a driverului pentra dispozitival care a cerut a) sa declansat, ea salveaza contextul (contorul program si PSW) si apoi transmite vitivuui cererea, Cand s-a incheiat rutina de achitare (deci operatia de de VE s-a terminal), xl se reia cu prima instructiune care nu a fost inca executatd. Acesti pasi sunt prezentafi in fig. 1-10 (0). Cea dea treia metoda de lucru cu dispozitive de VE utilizeazi un chip special, numit DMA rect Memory Access, rom: acces direct la memorie), care poate controla fluxul de bifi intre si un controlor, fir interventia sistematicé a UCP. UCP configureazi DMA, previzind ral de octeti de transferat, dispozitivul si adresa de memoric implicate si directia, dupa care edanseazi transferul. Dupa ce transferul s-a incheiat, DMA genereazi o intrerupere, care este aaa metoda prezentata mai sus. Structra hard a DMA sia de VE vor idiseutate mat detaat ilu! 5. reruperile pot surveni, adesea, in momente foarte putin convenabile, cum ar fi intervalul in quleaza o alta rutin de achitare. Din acest motiv, UCP are la dispozitic 0 cale de a dezactiva perile pentru un timp si de a le reactiva mai tarziu, Cat timp intreruperile sunt dezactivate, ispocitiv care si-a incheiat activitatea menfine activ semnalul prin care solict& intrerupere, dar 1 \4 fl Intrerupt pind cfind fntreruperile nu vor fi din nom activate ‘Daci mai multe dispozitive 30 INTRODUCERE, CAP.1 isi termina exccufiie in timp ce intreruperile sunt dezactivate, atunci controlorul de intreruperi va decide care dintre intreruperi va fi achitatit prima, in functie de o ierarhie staticd de priortati atribuite dispozitivelor. Dispozitivul cu prioritatea cea mai mare va fi deservit primul, 144 Magistrale Organizarea prezentata in fig. 1-5 a fost folositi pe minicalculatoare si pe varianta original’ de IBM PC. Cu timpul, procesoarele si memoria au devenit mai rapide, iar capacitatea unei singure magistrale (desigut, magistrala IBM PC) de a administra tot traficul a fost extinsi la maxim. in ‘aceste conditii trebuia fficut ceva. Prin urmare, au fost adiugate. magistrale suplimentare dedicate atat traficului cu dispozitive de VE mai rapide, cit si celui dintre UCP si memorie. Ca 0 consecinta a acestei evoluti un sistem complex Pentium arata astazi ca fn fig, 1-11, Maisie ee Masia NScia ioermedrs Gea enenor fe f Pane f ! lta! ‘ce . Bip recs EEE ED cps poate (EE pineal git Pe Lioesi la lsum Tae aw aera -conectare PCI eke DE ‘aisponibis Fanté de consctare SA dispenteis Fig. 1-11. Structura unui sistem Pentium complex. ‘Acest sistem are 8 magistrale (magistrala pentru memoria intermediard, magistrala locali, magistrala pentru memorie, magistralele PCI, SCSI, USB, IDE si ISA), fiecare dintre ele eu functi sirate de transfer diferte. Sistemul de operare trebuic si stie de existenta lor pentru configurare si ‘administrare. Cele dou magistrale mai importante sunt magistrala originala IBM PC1SA (Industry Standard Architecture, rom: arhitectura standard a industriel) si succesoarea ei, magistrala PCI (Peripheral Component Interconnect, rom: interconectarea enmponentelor periferice). Magistrala TSA, care a fost magistrala originala a IBM PC/AT functiona la 8,33 MHZ si putea si transfere doi ‘octeti in acelasi timp, aceasta insemnand o vitezd maxima de 16,67 MBVs. Magistrala era gandita si pentru compatibilitate cu plicile de I/E mai vechi si mai lente. Magistrala PCI a fost inventata de SEC.1L4 —_ NOTIUNIDESPRE STRUCTURA HARD A CALCULATORULUL at tel ca o succesoare a magistralei ISA. Ea poate si functioneze la 66 MHz si poate sa transfere 8 ‘octet in acelasi timp, ceea ce insemna o rata de transfer de 528 MB\s. Cele mai multe dispozitive de VE de mare vitezd folosesc astiai magistrala PCL Exist si calealntoare fies componente Intel care folosesc magistrala PCI datoriti numarului mare de plici de IE cisponibile pentru ca. {n accasti configuratie UCP converseazii cu cipul de conectare pe magistrala PCI (PCT bridge “dhip) prin magistrala locali, iar acesta converseazii cu memoria prin magistrala dedicata memorici, ‘car Tunctioncazi, adesea, la 100 MHz. Sistemele Pentium au o memorie intermediara de nivel 1 “(Level 1 Cache) amplasata pe cipul UCP gio memorie intermediara de nivel 2 (Level 2 Cache), mult Imaimare, conectata la UCP prin magistrala memoriel intermediare. ~ inpplus, acest sistem contine trei magistrale specializate: IDE, USB si SCSI. Magistrala IDE este edivata conectirii la sistem a disporitivelor periferice de tip disc sau CD-ROM. Magistrala IDE {ste 0 prelungire a interfeyei controlorului de disc de la PC/AT si este prezenti pe aproape toate ‘sstemele Pentium, pentru conectarea unitatilor de hard-dise si a unititilor CD-ROM USB (Universal Serial Bus, rom.: magistraki serial universald) 2 fost inventata pentru a putea ‘conecta la calculator toate dispozitivele lente, cum sunt tastatura si mouse-ul. Ea foloseste un tor de mici dimensiuni, cu 4 fire, dintre care dova sunt utilizate pentru a alimenta dispozitivele USB este o magistralé centralizata, la care un dispozitiv principal (USB root) interogheaza Je de VE la fiecare 1 ms pentru a verifica daca particip® la trafic. Disporitivul central poate sarcina” total de 1,5 MBIS. Toate dispozitivele USB partajeazi un singur driver de vovity USB, aceasta insemnand c& nu mai este necesar’ instalarea de drivere suplimentare ‘pentru tispozitivele USB noi. Prin urmare, dspoztivele USB pot fi adaugate Ia calculator fara si he ~ Magistrala SCSI (Small Computer System Interface, rom.: interfaja de sistem pentru eulatoare mici) este o magistrali cu performante ridicate, dedicati discurilor rapide, poritivelor de scanare si altor dispozitive care cer Kirgime de banda considerabili. Ea poate cu viteze de pina la 160 MB/s. Magistrala a fost prezenta pe sistemele Macintosh inci de ‘acestora, este folositi pentru sistemele UNIX si pentru unele sisteme bazate pe Intel. “Maiexista o magistrala (care nu este prezentatd in fig. 1-11) si anume IEEE 1394. Ba este numiti ori FireWire”, desi, strict vorbind, acesta este nuimele folosit de Apple pentru implementarca st entra 1394. Ca si USB, IEEE 13% este serialii, dar este proiectata pentru transferuri de pachete la teze de pana la SO MBis, fiind utild pentru conectarea fa calculator a camerelor de luat vederi sia dispoziive tiullinedia similarc. SCSI qi IEEE 1304 eunt in compotitie en 0 versiune mai rapid JSB care este in curs de realizare. ~ Pentru ca sistemul de operare si poata lucra intr-un mediu cum este cel din fig. 1-11, el trebuie si sce dispozitive nu funcjioneaza, ca s le poata configura. Aceastd cerin(a ia determinat pe Int. softs proiecteze un sistem PC ce nu necesita instalare, numit plug and play (conecteazi s reste), bazat pe un concept similar cu cel implementat prima data de Apple Macintosh. fnainte troducerea acestui concept, fiecare placa de I/B avea un nivel de cerere de intrerupere fix $1 drese fie pentru toate registrele de VE proprii. De exemplu, tastatura folosea intreruperea 1 $ Gresele de I/E 0x60 pnd la 0x64, controlorul unititii de discheta folosea intreruperca 6 si adresele E Ox3FO pan la 0x3F7, imprimanta folosea intreruperea 7 si adresele 0x378 pai la Ox37A si mai depart. "Pind aici, toate bune. Necazurile apireau abia atunci cnd itorul cumpara 0 placa de sunet oplac modem, care, din intémplare, foloseau si una gi alta intreruperea 4. in acest fel ele intrau in 2 INTRODUCERE. cAP.1 conflict siprin urmare nu puteau lucra impreund, Solutia inifialé a fost adiugarea unor comutatoare DIP sau a unor jumperi pe fiecare placi de VE. si instruirea utilizatorului sé seteze in asa fel nivelurile de intrerupere si adresele incat si evite conflictele in sistem. Se pare ci numai adolescent ‘ate giau dedicat zilele gi noptile rezolvirii problemelor din structura hard a PC-ului proprin an reusit uneori si configureze sistemele in acest fel. Din picate nimeni altcineva n-a mai reusit, cea o: a generat dezordine si nemmultumire. Conceptul de autoinstalare (plug and play) determin’ sister si colecteze automat informai despre toate dispozitivele de VE, si atrbuie centralizat nivelurile de intrerupere si adresele de W/E si apoi s& transmit datele de configurare fiecarei plici. Pe scurt,sistemul functioneaz& aga cum se poate vedea pe Pentium. Fiecare Pentium contine 0 placi de baz. Pe placa de bazi este instalat un program de sistem, numit BIOS (Basic Input Output System, rom: sistem de baza pentru operatii de intrare /iesire ). BIOS contine programe de nivel sedzut pentru de'V/, incluzand proceduri de citire a tastaturii, de scriere pe ecran $i de citire/scriere pe disc. in zilele noastre, BIOS-ul este memorat {ntr-o memorie flash care este nevolatila, dar are avantajul c& poate fi actualizata de catre sistemul de operare atunci cénd sunt depistate erori. ‘Atunci cand un calculator se initializeaza, porneste si BIOS-ul. El verificd mai intai dimensiunea RAM-ului instalat, precum si daca tastatura si alte disporitive de baz sunt instalate si rispund: corect. Actiunea continua prin verificarea magistralelor ISA si PCI pentru a detecta toate disporitivele atagate Ia ele. De cele mai multe ori, exist in sistem si dispozitive'din generatii mai vechi, adicd proiectate inainte de inventarea sistemelor autoinstalabile (plug and play) si deci au niveluri de intrerupere si adrese de /E fixe (posibil de configurat cu comutatoare sau conexiuii montate pe plac, dar imposibil de configurat de c&tre sistemul de operare). Aceste disporitive sunt inregistrate, lucru care se intimpla gi cu disporitivele care suport anininstalarea. Daca dispozitivee sunt diferite fata de cele gisite de sistem la ultima inifializarea a sistemului, éisporitivele noi sus configurate. BIOS-ul determina apoi dispozitivul de pe care se initalizeaza sistemul, testand dispozit intr. list memorata in memoria CMOS. Utilizatorul poate modifica aceast lists apelénd imei un program de configurare din BIOS. in mod obignuit, primul dispozitiv de pe care se ince: inifializarea sistemului este unitatea de dischet. Daca incercarea esueazi se incearcd CD-ROM. Dacé nu exist& nici unitate de discheta gi nici CD-ROM, sistemul booteaza de pe disc. Primul sect de pe dispozitivul de initializare este transferat in memorie gi executat. Acest sector contine ut program care, in mod normal, examineazii tabela de partitii care urmeazt dupa sectorul de pentru a vedea care dintre partitu este activa. Apot, un al doilea program de inifalizare este partita activa si este rulat. Acest nou utiitar citeste sistemul de operare de pe partitia activa si pomeste. Sistemul de operare interogheazi apoi BIOS-ul pentra a primi informatii de configu Sistemul de operare verifici daca are drivere pentru fiecare dispozitiv. Dacd nu are, sistemul fi cere utilizatorului sa introducat o dischetd sau un CD-ROM care si contin programele respect (de obicei, acestea sunt furnizate de producatorul dispozitivului). De indat& ce driverele ne sunt disponibile pentru un anumit dispozitiv, sistemul de operare le incarc& in nucle. Apoi, isi initializeaza tabelele, creeazi eventualele procese care trebuie si ruleze permanent in fundal pomeste un program de conectare pe masind sau direct GUI pe fiecare terminal. in viata de zi eu sistema cu autoinstalare este freevent nefabil, aga incit mulfutilizaton il mumese plug and pray adaugs SECS CONCEPTE ALE SISTEMULUI DE OPERARE 15 CONCEPTE ALE SISTEMULUI DE OPERARE Toate sistemele de operare au anumite concepte de baz’, cum sunt procesele, memoria si “figerele, a céror cunoastere este capitala pentru infelegerea sistemelor. fi wumatoarcle paragrafe se | voravea in vedere unele dintre aceste concepte de baz, chiar si numai sumar, ca 0 introducere. Se ‘areveni la detalii despre ficcare dintre ele mai tarziu in carte. Pentru a ilustra conceptele se vor din cdnd in cdnd exemple, preluate in general din UNIX. Exemple similare exist’, desigur sin ‘Un concept cheie pentru toate sistemele de operare este procesul, Un proces este in fapt un ygram in executie. Fiecirui proces i se asociazi un spatiu de adrese, adica o lista de locatii de morie din care programul poate citi sau fn care poate scric. Locatille sunt cuprinse intre dowk tte, una minima (de obicei 0) si una maxima. Spatiul de adrese confine programul executabil, jprogramului si stiva, Procesului i se asociaza, de asemenea, un set de registre care cuprinde program, indicatorul de stiva si alte registre hard, precum si diverse alte informatii necesare iiprogramului. “Conceptul de proces va fi reluat mai detaliat in capitolul 2, dar pentru moment cea mai simpli cae de 2 obtine o imagine corecti a unui proces este discutarea sistemelor cu partajare in timp. siemul de operare decide, periodic, sa opreascd rularea unui proces gi s& deelangeze rularea alta penn c, spre exemplu, primul si-a depasit timpul de acces la UCP care i se cuvenea. “tunel cand un proces este suspendat tempotat (ca mai sus), cl trebuie repomit dup ua timp din starea pe care o avea in momentul suspendarii. Accasta inseamna cA toate informatiile proces trebuie salvate explicit undeva si trebuie pastrate pe tot durata suspendiri. Spre I, procesul poate avea cdteva fisiere deschise pentru a citi din ele. Fieciruia dintre aceste fieste asociat un indicator (pointer) care precizeaz& pozitia curenta (adica numirul octetulut alinteisrii care urmeazi s fie citi), Atunei cind un proces este suspendat temporar, toti indicatori trebuie salvati, asa inedt, dupa ce procesul a fost reluat, orice incercare de citire di si citeasc& datele corecte. La multe sisteme de operare, toate informatiile despre fiecare €s,altele decat cele aflate in propriul spatiu de adrese, sunt memorate intr-un tabel al sistemului re, numit tabel de procese (process table), care este un tablou (sau 0 lista infanpuita) de cAte una pentru fiecare proces existent. tel, un proces (suspendat) cuprinde spatiul propriu de adrese, numit de obicei imagine de orie (core image) si intrarea lui in tabelul de proces, care confine si registrele, printre alte ‘Apelurile de sistem care joact un rol cheie in gestunea sistemului sunt cele care se ocuplt de fierea si terminarea proceselor. Sa considera un exemplu tipic: un proces mumit interpretor de menvi (shell citeste comenzi de la un terminal. Utilizatorul tocmai a introdus o comanda prin care i un program si fie compilat. Interpretorul trebuie ca creeze in acel moment un nou proces te si ruleze compilatonul. Atunci cand procesul a terminat compilarea, el executi un apel de stem pentru a se upri. M INTRODUCERE CAP. SE ‘Daca un proces poate crea unul sat mai multe alte procese (numite cop) Se Ja randul lor pot rea proprile provese-opii, se ajunge la o structurd de procese de tip atbore, ca in fig. 1-12. See area nncite care coopereaza la ralizarea unui job au adesea nevoie si comunice inte ele ca | eh cincronizeze activitiile, AceastA comunicatje Se numeste eoimunicafic interproces siva fi prezentata in detain in eapitolul 2, 8 (a) Gpera® COO Fig. 7-12, Un arbore de proces. Procesul A a creat dova procese-copi B gC. ProcesulBacreattrel procese-copi D, E siF. 5 ROSES ‘Alte apeluri de sistem sunt disponibile unui proces pentru a soi mi mult memorie (S20 entra a elberara memoria neutiizati), pent a atepta ca un proces-copi sisi incheie actvitatea sau pentru a-inlocui programul de executat cu un alt Uneori exte nevoie si se transmit informatie unui proces care ruleaza, dar Cafe A sti? Si astepteaseast informafje. De exemplu, un proces care comunied cy un al ret Se ruleazi pe AT Ealulator face acest luera prin trimiterea, mesojelor (prin intermedia! une! retele de At caatonrs)eatre procesulaflat Ia dstanla. Pentru evita pierderea mesajulu! sau 8 raspunsului la fhona col eae transite poate s- cearé propriui stem de operare <8 sisi dupa un numir prezat de secunde (configurat prin intermediul unui eronometry), of Wa § ‘primit inca nici un Pispus de recunoastre, situa in care mesajul va fi etransmis, Dup& conigurarca cronometli, programul poate si continue efectuaind alte operat ‘Dupi tecerea mumérului preczat de secunde,sstemul de operare time pprocesului un semnal de slant Somnalol determina procesul si suspend temporar activitatea curents, S13) salveze registrele in stivi ss inceapd rularea unei procedur speciale de trata 4 semialului, de exemplu, eer mid mecjul presupus pierdut, Dupicerutina de tratare s- incheiat, proce! ears rala se rein din starea in care era inainte de aparifia semmnalului. Semnalele sunt corespondentele soft ale Fatreruperlor hard pot fl geuciate de o mime de enue legate de expiares unot SOT Malte & tapeane (raps) detectate de hard cum ar fi exeeutarea une! instrueivn ‘legale sau folosirea une 1 se oeee nevalide sunt i ele convertte in semnale adresate procesulu ,vinova ot ieeivei persoane autorizae si foloseascd un sistem ise alsbuie un, UPD (User Identification, 1 rom, identiicator de uiiizator) de cStre administratorul de sistem, Fiecare proces C% porneste 4 Contine UID al persoanei care La declansat. Un proces-copll are ‘acelasi UID ca si procestl parinte-f | Ufilizatorii pot fi membrit unui grup, fiecare dintre ei avind un GID (Group Identification, rom: : jidentificator de grup). Ee On UID. mamt super-utlizator, are puter speciale gi poate trece peste multe dint regulile de) 7 protetie fn install mari, mamai administratorul de sistem sie paola nets pentru a deveril ? uper-tiizator, dar multi dintre vwtllzatori de rand (in special student’) depun eforturi | saree email ig Ancercarea de a gsi ,fsui” in sistem, care si le permit si deving super-utlizatori | fara parol. rare, comunicaiainterproces sate luerurlegate de ele vor fi studte in capitol 2 a v 1 BCS CONCEPTE ALE SISTEMULUI DE OPERARE 38 Interblocirile - Atunci cand dou sau mai multe procese interactioneazi, ele pot ajunge, uncori, in situatit nflictuale din care nu mai pot ies. O astfel de situatie se numeste interblacare. "Cel mai simplu mod de prezentare a interblocatilor este folosirea unui exemplu din viata de zi cu ,cu care este obignuitd toati lumea: blocajul in trafic. Se considera situafia din fig. 1-13 (a), in care we se apropic de o interscctic. in spatele ficedruia dintre ele vin alte autobuze (care nu sunt ). Cu un pic de ghinion, cele 4 autobuze pot ajunge simultan in intersectie, generand situatia fig. 1-13 (b), in care masinile sunt blocate, pentru c& nici una dintre ele nu mai poate merge mai eparte. Fiecare autobuz blocheaza calea unuia dintre celelalte 3. Masinile nu mai pot da nici inapoi Fig. 1-13, (a) 0 interblocare potential8. (b) Interblocarea reala, Procesele din calculator pot trece si ele printr-o situatie asemanitoare, din care nu mai pot asa in nici un fel. Se poate imagina, de exemplu, un calculator echipat cu o unitate de banda si cu dispocitiv de inscriptionat CD-uri, Se pot imagina, in continuare, doud procese care doresc si azeze copii pe CD-ROM ale datelor de pe banda. Procesul 1 solicita si primeste accesul la rade banda. Procesul 2 solicita si primeste accesul la unitatea de inscripfionare a CD-urilor. esl 1 solicit acces la unitatea de inscriptionare siva fi refuzat pand cand procesul 2 mu cedeaz sul fn farsi, la fel pafeste si procesul 2 cu unitatea de banda. Asa arati o interblocare din care ‘scapare. Interblocirile si modul in care pot fi ele abordate si gestionate se vor studia in Administrarea memorici are calculator are o memorie principala, in care retine programele care se executa. intr-un n de operare foarte simplu, in memorie se afl numai un singur program la un moment dat jira a rula un al doilea program, el trebuie plasat in memorie dupa ce a fost indepartat primul. le de operare mai sofisticate permit mai multor programe si coexiste in memorie ~ in j timp. Pentru a evite influentele intre aceste programe (si pe acelea cu sistemul de operare) 36 INTRODUCERE CAP.1 este necesar un mecanism de protectie. Mecanismul este hard, dar este comandat de sistemul de operare. Punctul de vedere exprimat mai sus se referd la administrarea si protectia memoriei principale @ calculatorului. O problems difertd, dar la fel de importants, logati de memoric, este administrarea spatiului de adrese a proceselor. Fiecare proces are, in mod normal, un set de adrese pe care il poate folosi, pornind de obicei de la 0, pana la o adres limiti superioari. in cel mai simplu caz, dimensiunea maxima a spafiului de adrese atribuit unui proces trebuie si fie mai mic& decat dimensiunea memoriei principale. in acest fel, chiar daci un proces utilizeaz tot spatiul situ de adrese, tot mai rimfne suficient spatiu in memoria principal pentru sistemul de operare. Pentru multe calculatoare adresele de 32 sau 64 de biti genereaz spatii de adrese de 2” sau 2 ‘octefi. Ce se intmpla daca un proces are un spatiu de adrese mai mare decat memoria principal a calculatorului si intentioneaza si-l foloseascd pe tot? Pentru calculatoarele mai vechi, un astfel de proces este ,lipsit de noroc”. in zilele noastre cxistd o tchnicd, numit’ memorie virtual, conform Cireia sistemul de operare piistreazi o parte din spatiul de adrese in memoria principal si o parte pe disc, transferdnd la nevoie blocuri intre cele dow suporturi. Aceast functie a sistemului de ‘operare, precum si alte functii legate de administrarea memoriei vor fi discutate in capitotul 4. 1.54 Intrare/legire ‘Toate calculatoarele sumt echipate cu dispozitive fizice cu care preiau intrari si genereazi ‘Lace ar fi bun un calculator dacd utilizatorii n-ar putea si-i ,spund” ce si facd si n-ar putea prelva rezultatele activitiiisolicitate, Exista multe tipuri de dispozitive de intrare si de iesire, printre care sunt tastanurile, manitearele, imprimantele gi aga mai departe: Depinde daar de sisterml de aperare si administreze toate aceste dispozitive. Prin urmare, fiecare sistem de operare are un subsistem de I/E pentru administrarea figier Similar, intrarea standard poate fi redirectata ca in sort < filel >file2 care apeleaza programul sort, cu intrarea preluata din file? si cu iesirea trimisd in fle2. Datele de iesire generate de un program pot constitui date de intrare pentru un alt program, prin conectarea printr-o conducta (pipa - pipe). Astfel: * cat filel file? Fi1e3 | sort > /dev/Ip apeleaad programul cat ca si concateneze 3 fisiere si si trimitA iesiren efitre sort, care si aranjeze in ordine alfabetica toate liniile, Iesirea din sort este redirectata cate fisierul special /devilp, care este, de obicei,o imprimanta, Daca utilizatorul incheie comanda cu semnul &, interpretorul nu mai asteapt ca ca si fie executata si afigeaza imediat prompt-ul. Prin urmare: cat filel file2 file3 | sort > /dev/Ip & declangeazi sort ca un job in fundal, permifindu-i utilizatorului si-si continue activitatea normal, in timp ce sort ruleaza. Interpretoral are un numdr de alte caracteristici interesante pentru care nu existi spafiu acum, Majoritatea cartilor de UNIX discuta despre aceste interpretoare de comenzi (shells) in mai micé sau mai mare uniswd (Kernighan si Pike, 1984; Kochan si Wood, 1990; Medinets, 1999; Newham si Rosenblatt, 1998; Robbins, 1999). | SECS CONCEPTE ALE SISTEMULUI DE OPERARE aL 158 "Reciclarea" conceptelor Stiinfa calculatoarelor, ca $i multe alte domenii, este puternic dependentii de tehnologie. Motivul pentru care vechii romani nu aveau automobile nu era bucuria lor de a merge pe jos. Nu aveau ‘automobile pentru ci nu stiau si le constniiasc. Caleulatoarele personale existé nu pentru c& ‘milioane de oameni aveau o dorintS nemérturisit’ de a avea un calculator, ei pentru ci in acest toment ele pot fi fabricate la preturi sciizute. Uitim adesea cat de mult influenfeaz’ tehnologia ‘Vigiunea asupra sistemelor si de aceea merit luata in seama aceasta problemi din cind in cénd. in particular, se intimpli frecvent ca o schimbare in technologie si dea sentimentul ¢4 anumite ‘dei sunt demodate si s& le fac& sA dispara. Cu toate acestea, este posibil ca o alta schimbare sa le “teaducd fn actualitate. Acest lucru este adevirat mai ales atunci cand schimbarea se refer la “performantele relative ale diferitelor parti componente ale unui sistem. De exemplu, atunci cand ‘untile de procesare (UCP) au devenit mult mai rapide decat memoriile, au devenit importante memorile intermediare (cache), care puteau si creasca viteza memoriei ,rmas& in uma”, Daci va eni 0 zi in care tehnologia de fabricatie a memoriilor Ie va face mult mai rapide decat unitatile de P (UCP), atunci memorule intermediate vor disparea. $i daca va apirea o nous (ehnvlogie pentru unitijile de procesare (UCP), care si le faci din nou mai rapide decdt memoriile, atunci memoriile intermediare vor reapirca. in biologic, disparitia este pentru totdeauna, in timp ce in Ca urmare a acestei evoluti, in carte vor fi discutate din cand in cdnd si concepte ,.demodate”, ‘dei care nu mai sunt tocmai optime pentru tehnologia actuala. Nu uitatiinsi ci schimbarile in igie pot readuce in actualitate unele dintre aceste concepte ,,demodate”. Din aceasta cauza important de injeles cauza pentru care un concept este demodat si ce schimbari ale contextului {readuce in actualitate. Pentru a Limuri acest aspect se consideriiciteva exemple. Primele calculatoare aveau seturi de tetiuni cablate. Instructiunile erau executate direct de hard si nu puteau fi modificate, Apoi a fut microprogramarea, care avea la baz’ un interpretor si executa ,soft” instrucfiunile. Executia rd a devenit demodati. Au fost inventate calculatoarele RISC si microprogramarea (adic& ia interpretati) a devenit demodata pentru c& executia direct cra mai rapida. In acest ment se constat o revenire a interpretirii pentru cazurile applet-urilor Java, care sunt transmise smet si interpretate la destinatie. Viteza de lucru nu este intotdeauna cruciala pentru ci ile in retea sunt atat de mari incit tind si devin predominante. Dar si aceasta situatic s-ar schimba intr-o 7 imele sisteme de operare inscriau fisierele pe disc prin plasarea lor in zone contigue succesive. [schema era usor de implementat, ea nu era flexibiké peutuu c& atunei cind un figicr igi marca nsiunea nu mai era suficient spatiu pentru a-l memora in continuare. Astfel, conceptul de a spatii contigue pentru fisiere a devenit demodat si s-a renuntat la el. Aceasta pind cand au CD-ROM.urile. in acest caz fisicrele nu-gi cresc dimensiunea. Dintr-o data, alocarea de jcontigue pentru fisiere a fost privité (din nou) ca o idee grozava, iar sistemele de figiere de pe OM se bazeaz acum pe ea. Cao idee de incheiere, si considerim editarea dinamica de legdturi. Sistemul MULTICS a fost eclat si Iucreze zi si noapte, fara intrerupere. Pentru a repara crorile din soft era nevesara o cale {locui procecurile din bibliotecile sistemului in timp ce erau folosite. Conceptul de editare a legiturilor a fost inventat pentru acest scop. Dupa ce MULTICS a dispirut, conceptul a uitat pentru un timp. Totusi, el a fost redescoperit atunci cand sistemele de operare moderne au 2 INTRODUCERE CAPA avut nevoie de 0 modalitate care si permit mai multor programe s& partajeze aceeasi procedura dintr-o biblioteca de proceduri, fara si aiba proprille lor copii (pentru cA bibliotecile grafice au devenit foarte mari). Majoritatea sistemelor suport astizi, din nou, unele forme de editare dinamic& de legitur. $i lista ar putea si continue, dar exemplele prezentate au evidentiat pe deplin deca ci coea ce astiz este demodat poate deveni maine , regina batului” ‘Tehnologia nu este singurul lucru de care depind sistemele si softul. Cerintele economice joaci si ele un rol important. in deceniile 1960 si 1970, majoritatea terminalelor erau terminale mecanice de imprimare sau display-uri orientate pe caracter, cu capacitate de afigare de 25x80, in locul terminalelor grafice de tip harti-de-bigi. Aceasti optiune nu a fost o problema de tehnologie. ‘Terminalele grafice de tip harta- — stone ~ fortnight ). Principalele prefixe metrice sunt listate in Fig. 1-29. Prefixele sunt abreviate in mod normal dupa primele lor litere, cu unitatile mai mari decat 1 capitalizate. Astfel, o baz de date de 1 TB ocup’ 10” octet si un’ ceas de 100 psec (sau 100 ps) ticdie o data la fiecare 10°” secunde. Cum mili si micro incep ambele_ cu litera “m”, a trebuit si se facd o alegere. in mod normal “m” vine de la mili iar “yw” (litera ‘greceasci miu) vine de la micro. Bo. | Enelieits | colicit Prati tos | 6.001 1.009 | Kilo 10 | 0.000001 4.000.009 | Moga | 10° | 0.000000003 +,000.000,000 | Giga | 10 | 0.0o000c00090% 1 00.000, i 10° | v.e000000n0000007 4.00090. 00.00.000, ‘swt | c.ceaoooooo0ce0000001 | 1.000.00.000.00.000.000| | ta31” | .coaoo0000n0cc0cac00001 | zepte a8 11660,090.000 00.000, 00.000 | Zora 40% .coan000900000000000000001 | _yocte 10% | 1000.000.000.00.000.000.000.000) Yor Fig, 1-29. Principalele prefixe metrice. De asemenea merit punctat cd pentru masurarea volumului de memorie, in_practica frecventi din industrie, unitatile au semnificatii ugor diferite. Acolo Kilo inseamna 2'° (1024) si nu 10° (1000), pentru ci memoriiile au intotdeauna ca dimensiuni puteri ale lui doi. Astfel, o memorie de 1 KB confine 1024 octeti, nu 1000 octeti. Analog, o memorie de 1 MB contine 2” (1048576) octeti si o memorie de 1 MB contine 2” (1073741824) octeti. Totusi o linie de comunicatie de 1 Kbps transmite 1000 de biti pe secunda si o refea locala de 10 Mbps merge cu 10000000 biti/see pentru ci aceste viteze nu sunt puteri ale lui doi. Din pacate multé lume tinde si amestece aceste dou’ sisteme, in special pentru méimile discurilor. Pentru a evita ambiguititile, in aceasti carte vom folosi simbolurile KB, MB si GB pentru 2”, 2” si respectiv 2” octeti Gbps pentru 10°, 10° gi respectiv 10” bitisec. REZUMAT stemele de operare pot fi vizute din dou puncte de vedere: gestionare de resurse si masini jin viziunea de gestionare de resurse, sarcina sistemului de operare este aceea de a Jiferitele parti ale sistemului in mod eficient. in viztunea de masina extinsa, sacina de operare este aceea de a oferi utilizatorilor o masini virtuald care este mai usor de gat decit masina real. temele de operare au 0 istorie lunga, incepénd din zilele cfnd au inlocuit operatorul, pind la le moderne, multiprogramate. Printre momentele de retinut avem fazele de sisteme de erare pe lotur, sisteme multiprogramate gi sisteme de calculatoare personale. n sistemele de operare interactioneazd strns cu hardul, cdteva cunostinte despre hardul or sunt utile pentra a le infelege. Calculatoarele sunt construite din procesoare, sidispocitive de ME. Aceste elemente sunt conectate prin magistrale. meeptcle de bazi dup’ care sunt constmuite toate sistemele de operare sunt procesele, ‘memorici, gestiunea VE, sistemul de fisiere si securitatea. Fiecare dintre acestea vor fi siar-un capitol separat na oricirui sistem de operare este setul de apeluri de sistem pe care poate sa le execute, ne spun ce face intr-adevar sistemul de operare. Pentra UNIX am trecut in revisti patra apeluri de sistem. Primul grup de apeluri de sistem se leag de crearca si terminarea 1. Al doilea grup foloseste Ia citirea si scrierea fisierclor. Al treilea grup foloseste la cataloagelor. Al patrulea grup contine apeluri diverse, de operare pot fi structurate in cAteva feluri. Cele mai comune sunt sistermul monoliic, deniveluri, masina virtual’, exokernel-ul sau sistemul ce foloseste modelul client-server PROBLEME sant cele doua functii principale ale unui sistem de operare’? este multipengramarea? Je spooling-ul? Credeti ci pe vitor calculatoarele personale avansate vor avea spooling ca teristic standard? latoarcle timpurii, iecare octet de date citit sau scris era direct tratat de procesor ‘nu exista DMA), Ce implicd aceastd organizare pentru multiprogramare? ce nu era divizarea timpului larg raspandita pe calculatoarele dingeneratia a dou? familiei de calculatoare a fost introdusi in anii 1960 0 dati cu calcualatoarele multi- IRM Systern/360. Este accasti idee moarti acum de-a binelea sau incit ravictuieste? 1 uL n 4 15, INTRODUCERE CAP.1 §. ‘Un motiv pentru care interfe(ele utilizator grafice au fost adoptate cu gret la inceput cra costul 1 hardului necesar pentru ale suporta. Cat memorie video RAM este necesard pentru a suport aanerran monoctom text de 25 lili X 80 coloane? Cat pentru unul color de tip hart de bit 1024 X 768 psc? Cat costa acest RAM la prefrile din 1980 (5S/KBY? Cit costa acum? Care dintre urmatoareleinstructiuni ar trebui sf fle permise numa‘ in mod nucleu? a. Dezactivarea tuturor intreruperilor. 1 b. Citirea ceasului cu ora curenta. c. Setarea ceasului cu ora curenti, 4] 4d. Schimbarea hirtii de memorie. Enuntati unele dintre diferentele dintre sistemele calculator personal gi sistemele multi utilizator. | Un calculator are 0 bandé de asamblare cu patru etape, Fiecdrei etape i ia acelas timp si ducd la indeplinire functia, adicd 1 nsec. Cate instructiuni pe secunda poate executa aceastl maging’ Un redactor atent observa 0 eroare de ortografic consistent in manuserisu! unui manual sistom de operare ce toemai trebue sie tpt, Carten are aproximativ 700 de pagin fie aercate $0 de lini i 80 de caractere. Cat timp va dura scanarea electronic a textului pen saint fn eave copia principalé sc alé in fiecare din nivelele de memorie din Fig. 1.7? Pen tnctodele intorne de memorare, se considera c& timpul de acces dat este per caracter, pent Uspoztive bloc presupuneti cd timpul este per bloc de 1024 de caractere far pentna ba mepnetica se presupone ci timpul dat este de la nceputul datelor cu aeceseulteioare Ia aces vitezd cu accesul la disc. in Fig. 1.9, unitatea de gestiune a memorici compara adresa virtual primi cu registrul limit generind o eroare dack este prea mare. Un model altematv arf si se adune mil intdiadres vsetual la registrul baza si si se compare rezultatul cu adres (fizic8) din regisrul limit. Su cele dou’ metode logic echivalente? ind un program utilzator face un apel de sistem pent a citi sau sere dinvint-un fies de dsc, el fumizeaz’ o indicatie asupra figerului dont, o refering la za de date tampon rnumdrul de octet. Se transferd apoi controll sistermului de operare, care apeleaza ri potrvt. 84 presupunem ci driveral pores discal si termina pana la aparitia une} intrery iin cazul citirii de pe disc, evident apelantul va trebui si fie blocat (pentru cA nu exist dal pentru el), Dar in cazul scrieri pe disc? Trebuie apelantul sa blocheze terminarea aflata & asteptare a transferului pe disc? Care este principala diferentd dintre o trapa si o intrerupere? Un calculator foloseste schema de relocare din Fig 1-9(a). Un program are o lungime de 10. 0 Ge octet geste ncareat la adresa 40.000, Ce valor se objin in rqistrele haa sill urman schema descrisi in text? )BLEME 6 ieee este nevoie de o tabeli de procese intr-un sistem cu divizarea timpului? Este nevoie de ea jin sistemele de calculatoare personale in care exist un singur proces, acel proces preluand trolul asupra intregii masini pana cfnd se termina’? ta vreun motiv pentru care afi putea dori si montati un sistem de fisiere inte-un catalog care ste pol? Daci da, care este acesta? * count = write(fd, buffer, nbytes); {n count 0 altd valoare decit nbytes? Daca da, care? Iseek(fd, 3, SEEK SET); read(fd, 8buffer, 4) apelulIseek face o cAutare pani la octetul 3 din fisier. Ce confine buffer dupa ce s-a principala diferent dintre un fisir special bloc siun fier special caracter? atin Fig. 1-17, procedura bibliotecd se numeste read si apelul de sistem propriu-zs ca ambele si aiba acelasi nume? Daca nu, care dintre ele este -23 arat cA unele apeluri de sistemUNIX nu au echivalente Win32 API. Pentru fiecare elurile listate care nu au echivalent Win32, care sunt consecinfelepentru un aMator care doreste sti converteasca un program UNTX pant a rula pe Windows? leva intrebari pentru a exersa conversiile intre unitati de miisur’: Cit inseamni un micro-an in secunde? Micrometrii sunt deseori numiti microni. Cat inseamna un gigamicron? Citi octeti avem intr-o memorie de 1 TB? "Masa Pamintului este de 6000 de yottagrame. Cat inseamnéi aceasta in kilograme? 4iun interpretor de comenzi similar cu cel din Fig. 1-19 dar care confine destul cod inca ‘si meargi si si il puteti testa. Puteti de asemenen adinga unele earacteristici cum sunt INTRODUCERE, CAP. redirectarea intrati sia iesiri, inkinquiri de comenzi si sarcini executate in fundalul executiel interpretorului. Daci avefi la dispozitie un sistem personal de tip UNIX (Linux, MINIX, Free BSD etc.) pe care il puteti bloca si repomni in sigurantd, scieti un script de comenzi care incearcii si creeze un numar nelimitat de procese copii si obscrvati cc se intampla. inainte de experimentare, dati syne interpretorului de comenzi pentru a transfera confinutul zonelor de memorie tampon ale sistemului de fisiere pe dise pentru a evita ruina sistemului de fisicre. Noti: Nu incercati aceasta pe un sistem cu memorie partajata inainte de a cere permisiunea administratorului de sistem. Consecinjele vor deveni evidente instantaneu aga c& probabil vet fi prinsisisanctionati, . Examinati si incercati si interpretati continutul unui catalog din UNIX sau Windows cu us! instrument precum un program od in UNIX sau DEBUG in MS-DOS. Indicatie: Modul in care faceti acest lucru depinde de ce va permite sistemul de operare. O smecherie care ar putea si find este si se ereeze un catalog pe un disc flexibil cu un sistem de operate si apoi si se citeascd datele nepreluctate de pe disc folosind un sistem de operare diferit care permite un astfe! de acces.

You might also like