SOMIPPRaspunsuri

download SOMIPPRaspunsuri

of 82

Transcript of SOMIPPRaspunsuri

  • 8/18/2019 SOMIPPRaspunsuri

    1/82

  • 8/18/2019 SOMIPPRaspunsuri

    2/82

    1. Noţiuni şi termeni din domeniul resurselor tehnice

    Un calculator constă dintr-un ansamblu de componente funcţionale fizice şi logice, care cooperează pentrua satisface cerinţele utilizatorilor privind introducerea, stocarea, prelucrarea, căutarea şi transmitereainformaţiilor. Aceste componente funcţionale sunt structurate pe niveluri, care interacţionează prin interfeţe

     bine definite. Prin noţiunea de sistem de operare înţelegem modulele program ale unui S, careadministrează resursele te!nice. "odulele în cauză solu ionează situa iile de conflict, optimizeazăț ț

     productivitatea sistemului, sporesc eficien a utilizării lui.ț

    #alorile concrete ale atributelor sistemelor de operare şi combinaţii ale acestora determină diverse tipuri deS$. onform acestor atribute pot fi evidenţiate următoarele tipuri de sisteme de operare%

    •  secvenţiale,

    •  cu multiprogramare,

    •  cu prelucrare multiplă,•  în timp real, etc.

    2. Noţiuni şi termeni din domeniul SO

    Un sistem de operare este un ansamblu de programe de control şi de serviciu care g!idează un calculator îne&ecuţia sarcinilor sale, asistă programele de aplicaţie şi interacţionează cu utilizatorul prin intermediulanumitor funcţiuni. 'atura funcţiilor şi modul în care acestea sunt realizate determină atributele carecaracterizează un sistem de operare% timpul de răspuns- e&primă durata intervalului delimitat de lansarea

    unei cereri de serviciu şi ac!itarea acesteia de către sistem, simultaneitatea utilizării- măsoară gradul în careun sistem poate să e&ecute în acelaşi timp mai multe lucrări., eficienţa- măsoară proprietatea unui sistem dea folosi în mod optim resursele de care dispune, parta(area resurselor şi protecţia informaţiei în calculator-caracterizează nivelul la care utilizatorii au posibilitatea să utilizeze în comun informaţia prezentă în sistemşi nivelul la care pot să comunice între ei, în deplină siguranţă, generalitatea, fle&ibilitatea, e&tensibilitatea,fiabilitatea şi disponibilitatea, transparenţa şi vizibilitatea. Un sistem de operare este obligat%

    • să păstreze informaţia despre starea fiecărei resurse,

    • să ia decizia cărui proces să i se aloce resursa, în ce cantitate, c)nd, cum şi unde,

    • să aloce resursa şi, la momentul oportun, să o retragă.

    3. Tipuri de sisteme de operare, obiective şi funcţii

    #alorile concrete ale atributelor sistemelor de operare şi combinaţii ale acestora determină diverse tipuri deS$. onform acestor atribute pot fi evidenţiate următoarele tipuri de sisteme de operare%

    Un sistem secvenţial *tratare pe loturi, engl. batc! processing, fr. traitement par lots+ e&ecută la un momentdat un singur program, care trebuie terminat înainte de a lua începe e&ecuţia unui alt program.

    Sistemele cu multiprogramare acceptă la un moment dat mai multe programe în memoria centrală, acesteaafl)ndu-se în diferite stadii de e&ecuţie.

    Un sistem de calcul cu prelucrare multiplă dispune de mai multe procesoare, care pot să e&ecute simultanunul sau mai multe programe.

  • 8/18/2019 SOMIPPRaspunsuri

    3/82

    Sistemele de timp real funcţionează, de obicei, în cadrul unor sisteme de comandă şi este necesar cavalorile anumitor atribute să se încadreze în limite destul de restrictive, dictate de dinamica proceselorcomandate.

    4. !emple de sisteme de operare

    indos,Uni&, "S $S.

    /. azul calculatoarelor personale

    ea mai simplă configuraţie a unui calculator personal *P+ include o unitate centrală, o memorie principală, un displa0, o tastatură şi un mouse. Această configuraţie, de regulă, este completată de omemorie secundară şi o imprimantă.

    Utilizatorul unui astfel de sistem va cere minimum următoarele două tipuri de servicii%

    identificarea şi crearea unor fişiere sau mulţimi structurate de informaţii1

    stocarea acestor fişiere în memoria secundară1 transferarea informaţiilor între fişiere şi dispozitivele deintrare2ieşire1

    e&ecuţia unor programe e&istente sau introduse sub formă de fişiere în P1

    introducerea datelor necesare pentru e&ecuţia programului *de la tastatură, dintr-un fişier sau de la altesurse periferice+1 listarea rezultatelor la displa0, imprimantă sau copierea lor într-un fişier.

    3. omanda unor procese industriale

    Procesul de producere este comandat de un calculator care îndeplineşte următoarele funcţii%•  Reglare. Pentru o derulare bună a procesului de fabricaţie parametrii de funcţionare *temperatura,

     presiunea, concentraţia, etc.+ trebuie să se afle într-o pla(ă de valori predefinite. Pentru aceasta va fiacţionat debitul de intrare a materiilor prime A sau B. Parametrii de funcţionare sunt măsuraţi cua(utorul unor captoare. alculatorul preia aceste măsurări şi, în dependenţă de algoritmul decomandă, acţionează robinetele de intrare.

    •  Înregistrare. 4ezultatele măsurărilor sunt periodic înregistrate1 valorile lor sunt afişate pe un tabloude bord şi recopiate într-un fişier *5(urnal de bord5+ în scopul unor prelucrări ulterioare *datestatistice+.

    • Securitate. 6n cazul în care unul dintre parametrii măsuraţi depăşeşte o valoare critică predefinităreactorul trebuie oprit imediat.

    7. Sisteme tranzacţionale

    aracteristicile principale%

    • sistemul gestionează un set de informaţii sau baze de date, care pot atinge volume importante deinformaţie1

    • asupra acestor informaţii pot fi e&ecutate un anumit număr de operaţii predefinite sau tranzacţii,

    adesea interactive1

  • 8/18/2019 SOMIPPRaspunsuri

    4/82

    • sistemul este dotat cu un mare număr de puncte de acces şi un mare număr de tranzacţii se potderula simultan. aracteristicile obligatorii ale unui astfel de sistem tranzacţional suntdisponibilitatea şi fiabilitatea1 pentru unele sisteme poate fi importantă şi toleranţa la defecţiuni. $caracteristică importantă ale sistemelor tranzacţionale este multitudinea activităţilor paralele, iar înmulte cazuri şi repartizarea geografică a componentelor.

    8. Sisteme în timp parta(at

    estinaţia principală a unor astfel de sisteme este furnizarea serviciilor necesare unei mulţimi de utilizatori,fiecare dintre ei beneficiind de servicii%

    • ec!ivalente serviciilor unui calculator individual1

    • legate de e&istenţa unei comunităţi de utilizatori% parta(area informaţiilor, comunicaţii întreutilizatori.

    Problemele care apar datorită conceptului de parta(are a timpului sunt o combinaţie a problemelor e&istente

    în cazul unui calculator individual cu cele din sistemele tranzacţionale. 

    aracteristicile obligatorii ale unuiastfel de sistem îmbină, în egală măsură, calităţile unui sistem de operare al unui calculator individual şi alunui sistem tranzacţional, cum ar fi% disponibilitatea, fiabilitatea, securitatea, e&ploatarea optimă acaracteristicilor resurselor fizice, calitatea interfeţei şi serviciilor utilizatorului, facilitatea adaptării şie&tensibilităţii.

    9. S$ i proceseleș

     'oţiunea de proces este asociată conceptului de lucrare şi poate fi definită ca o suită temporală de e&ecuţiide instrucţiuni, considerată ca fiind o entitate de bază în descrierea sau analiza funcţionării unui sistem.

    :voluţia în timp a unui proces presupune un consum de resurse, dictat de natura şi comple&itateainstrucţiunilor de e&ecuţie. 6n particular, rezultă că ori de c)te ori se e&ecută procedurile de sistem,resursele, pe care le utilizează acesta, intră în administrarea procesului, care a cerut serviciul. 4esurselealocate unui proces variază în timp.

    ;

  • 8/18/2019 SOMIPPRaspunsuri

    5/82

    ;;. Alte puncte de vedere asupra S$% abordarea funcţională, interfaţa cu utilizatorul

    Sistemele de operare pot fi abordate din diferite puncte de vedere, cum ar fi S$ şi procesele, S$ şi maşinae&tinsă sau S$ şi maşina ierar!ică. :&istă şi alte puncte de vedere asupra sistemelor de operare pe care unspecialist ar trebui să le cunoască.

    Abordare funcţională-Pentru un utilizator obişnuit, convins că un calculator este doar un instrument care îla(ută în soluţionarea unor probleme din domeniul său de activitate, noţiunile, cum ar fi administrareamemoriei cu paginaţie sau driverele dispozitivelor, nu semnifică prea multe. estinaţia principală a unuisistem de operare pentru această categorie de utilizatori este punerea la dispoziţie a unui set de programecare l-ar a(uta în formularea şi soluţionare problemelor concrete ce ţin de domeniul său de activitate.

    Abordare din punctul de vedere al interfeţei cu utilizatorul

    @nterfaţa sistemului de operare cu utilizatorul prezintă un interes aparte. Progresul în acest domeniu estespectaculos, dacă vom lua în consideraţie că în primele sisteme de operare utilizatorul era obligat să indiceîn mod e&plicit şi manual *în regim te&tual+ fiecare pas, oric)t de nesemnificativ ar fi părut. ormularea

     paşilor cu a(utorul unui limba( specializat, cum ar fi Bob ontrol Canguage *BC+, nu a sc!imbat substanţialsituaţia.

    ;D. :volu ia S$% de la 5poartă desc!isă 5 la tratarea pe loturiț

    Primele sisteme erau caracterizate prin prelucrarea secvenţială a tasEurilor. Fimpul de e&ecuţie a programelor era relativ mare, instrumentele de depanare ? primitive, fiecare programator îşi încărca în modindividual programul *pac!etul de cartele perforate+, apăsa butoane, controla conţinutul locaţiunilor dememorie, etc. *;9/< ? ;9/3+. Au fost propuse programe de monitorizare *monitoare+, care treceau de la olucrare la alta în mod automat, utilizatorul fiind responsabil de organizarea corectă a programelor în cadrulunui pac!et ? primele încercări de prelucrare pe loturi *;9/3 ? ;9/9+.

    upă ;93/ au apărut primele sisteme cu partajare a timpului *time s!aring+, au fost propuse sistemesofisticate de administrare a informaţiei Memoria virtuală şi maşinile virtuale sunt nişte principii carenici p)nă astăzi nu au fost e&ploatate p)nă la capăt. Progresele ultimilor ani în domeniul resurselor te!niceau permis implementarea acestor principii nu numai în cadrul sistemelor de calcul mari, ci şi pentrucalculatoarele personale.

  • 8/18/2019 SOMIPPRaspunsuri

    6/82

    Primele calculatoare nu dispuneau de sisteme de operare. iecărui utilizator i se rezerva pentru un timpdeterminat calculatorul cu toate resursele acestuia. @nteracţiunea era directă, programul şi datele fiindintroduse în mod manual sub formă de zerouri şi unităţi. Utilitele care au apărut aveau destinaţia de a asistaelaborarea programelor *asambloare, compilatoare, etc.+ sau de a facilitata operaţiile de intrare-ieşire.Acestmod de e&ploatare, numit 5poartă deschisă5 , era de o eficacitate minimă. in această cauză la sf)rşitul

    anilor G/< au apărut primele 5monitoare de înlănţuire5 - programe care permiteau e&ecutarea secvenţială aunui set de lucrări, pregătite anticipat, trecerea de la o lucrare la alta fiind automatizată.

    ;H. Evolu ia SO: mț  ultiprogramarea şi partajarea timpului

    Utilizarea principiului multiprogramării sau parta(area memoriei între mai mulţi utilizatori a permis outilizare şi mai bună a procesorului central. :&ploatarea unui calculator conform principiului timpului

     parta(at oferă utilizatorilor posibilităţi analogice unui calculator individual, permiţ)nd beneficiul unorservicii comune la un preţ redus.

    ;I. $rganizarea intrărilor - ieşirilor în memorii tampon

    Pentru e&cluderea influenţei perifericelor asupra vitezei de lucru a sistemului de calcul s-a propus să se păstreze în memorie în anumite zone tampon datele de intrare şi rezultatele mai multor lucrări.eşiutilizarea memoriilor tampon prezintă o serie de avanta(e, totuşi două momente negative pot fi menţionate%

    • atunci c)nd lucrarea în curs de e&ecuţie are nevoie de nişte date unitatea centrală răm)ne inactivă petoată perioada citirii acestora1

    • o lucrare de scurtă durată, sosită în timpul e&ecuţiei unei lucrări 5lungi5, trebuie să aştepteterminarea acesteia din urmă.

    ;/. "ultiprogramarea

    Multiprogramarea este un termen utilizat în cazul unui sistem în care pot e&ista simultan c)teva proceseîn stare de e&ecuţie. Un proces se consideră în stare de execuţie, dacă calculele au început, dar la momentulconsiderat nu au fost terminate sau întrerupte. Multiprogramarea permite menţinerea unităţii centrale

     în stare activă pentru perioada încărcării programelor sau operaţiilor de intrare-ieşire. cest mod de!uncţionare este adaptat tratării pe loturi pe un calculator" care nu dispune de un mecanism dereamplasare dinamică.

    ;3. Sisteme cu timp parta(atestinaţia principală a unor astfel de sisteme este furnizarea serviciilor necesare unei mulţimi de utilizatori,fiecare dintre ei beneficiind de servicii%

    • ec!ivalente serviciilor unui calculator individual1

    • legate de e&istenţa unei comunităţi de utilizatori% parta(area informaţiilor, comunicaţii întreutilizatori.

    Problemele care apar datorită conceptului de parta(are a timpului sunt o combinaţie a problemelor e&istenteîn cazul unui calculator individual cu cele din sistemele tranzacţionale şi pot fi clasificate după cumurmează%

    • definirea maşinii virtuale oferite fiecărui utilizator1

  • 8/18/2019 SOMIPPRaspunsuri

    7/82

    •  parta(area şi alocarea resurselor fizice comune% procesoare, memorii, dispozitive de comunicaţie1

    • gestionarea informaţiilor parta(ate şi a comunicaţiilor.

    ;7. indos, Uni& şi alte sistemeParalel cu evoluţia te!nică şi funcţională a sistemelor de operare a avut loc şi o importantă evoluţieconceptuală, care a permis o mai bună înţelegere a funcţionării sistemelor de operare şi a condus laelaborarea unor metode proprii de concepere.

    ebutul unei cercetări ştiinţifice a sistemelor de operare poate fi considerat anul ;93I, care a succedat oetapă importantă de dezvoltare te!nică% primele sisteme cu parta(are a timpului *F!or, FSS+. Sistemul deoperare U'@J, primul sistem mobil care asigură un mediu fiabil de dezvoltare şi utilizare a softului deaplicaţie, este fundamentul practic de elaborare a sistemelor fizico-logice desc!ise.

    ;8. S # $%&' şi standardele sistemelor deschiseSistemul de operare U'@J, primul sistem mobil care asigură un mediu fiabil de dezvoltare şi utilizare asoftului de aplicaţie.

    @mplementarea largă a sistemului de operare U'@J a permis trecerea de la declararea sistemelor desc!ise ladezvoltarea practică a acestui concept.

    #ariantele S$ U'@J, propuse de compania S$ şi destinate e&clusiv platformelor @ntel, sunt bazate pemodulele iniţiale ale S0stem # H.D, fiind total compatibile cu toate standardele de bază

    Unul dintre primele standarde de-facto a fost cel publicat de USC pentru versiunea S$ U'@J S0stem #4elease I - S0stem # @nterface efinition *S#@+.

    "ai menţionăm standardul de-facto SPA4 omplience efinition, propus de organizaţia SPA4@nternational,

    Pentru lumea U'@J este foarte important şi standardul limba(ului de programare , adoptat mai înt)i deA'S@ şi apoi de @S$. 6n acest standard sunt specificate, în afara limba(ului , bibliotecile necesare într-orealizare standard. eoarece c!iar de la apariţie limba(ul şi sistemele de programare respective eraustr)ns legate de U'@J, componentele bibliotecilor standard corespundeau e&act mediului standard al S$U'@J.

    ;9. $S-; şi alte variante U'@J

    $pen Softare oundation *$S+ a fost prima companie comercială, care a încercat elaborarea S$ U'@Jîn baza micronucleului "ac!. A fost creat sistemul de operare $S-;, care nu era în sens de licenţiereKcurat>, deoarece folosea o parte a modulelor iniţiale din S#4 I.

  • 8/18/2019 SOMIPPRaspunsuri

    8/82

    "ai menţionăm standardul de-facto SPA4 omplience efinition, propus de organizaţia SPA4@nternational,

    Pentru lumea U'@J este foarte important şi standardul limba(ului de programare , adoptat mai înt)i deA'S@ şi apoi de @S$. 6n acest standard sunt specificate, în afara limba(ului , bibliotecile necesare într-orealizare standard. eoarece c!iar de la apariţie limba(ul şi sistemele de programare respective eraustr)ns legate de U'@J, componentele bibliotecilor standard corespundeau e&act mediului standard al S$U'@J.

    D;. Sisteme de operare cu micronucleu

    "icronucleul este partea minimă principală a unui sistem de operare, folosită pentru asigurareamodularităţii şi transportabilităţii.

     'oţiunea de micronucleu a fost introdusă de compania 'e&t prin sistemul de operare cu micronucleul"ac!.

    Următorul S$ cu micronucleu a fost "S indos 'F, în care momentul principal declarat era, în afaramodularităţii, transportabilitatea. Acest sistem de operare poate fi utilizat în sistemele mono- şimiltiprocesor, bazate pe procesoarele @ntel, "ips, şi Alp!a

    Au aderat la te!nologia Kmicronucleară> şi companiile 'ovell2USC, $pen Softare oundation *$S+,@L", Apple şi altele. Unul din concurenţii principali ai lui 'F în domeniul S$ cu micronucleu sunt "ac!H.

  • 8/18/2019 SOMIPPRaspunsuri

    9/82

    H. ordonarea parametrilor 

    I. e&ecutarea unei ramificaţii la procedura apelată.

      (etur

    ;. salvarea rezultatului într-un amplasament stabilit

    D. restabilirea informaţiilor de retur şi eliberarea mediuluitemp%Madresa de retur top%Mbaza

     baza%Mbazavec!e

    H. returulramificare Qtemp ramificare indirectă

    DI. Activităţi asincrone i protec ia reciprocă între activită iș ț ț

    Pentru cazuri mai generale sunt necesare mecanisme suplimentare, cum ar fi conceptele de asincronism saude protecţie reciprocă între activităţi.

    )rin asincronism înţelegem efectul care îl pot avea asupra derulării unei activităţi anumite evenimenteexterioare. 

    %umim protecţie reciprocă între activităţi o modificare mai profundă a contextului, atunci când setrece de la o activitate la alta, în comparaţie cu ceea ce are loc în cazul unei simple apelări de

     procedură. 

    Un caz tipic de asincronism este e&ecutarea intrărilor-ieşirilor simultan cu e&ecuţia unui program. Frebuiesă fie asigurată posibilitatea informării programului despre terminarea unui transfer de informaţii.

    D/. "ecanisme de comutare a conte&tului

    omutarea conte&tului unui procesor permite e&ecutarea într-o manieră indivizibilă *atomară+ aurmătoarelor două operaţii%

    trecerea cuv)ntului de stare într-un amplasament specificat al memoriei,

    încărcarea în cuv)ntul de stare a conţinutului unui alt amplasament specificat al memoriei. omutareaconte&tului poate fi necesară din mai multe cauze distincte. Presupunem că fiecărei cauze i-a fost asociat unnumăr de ordine. Pot fi înt)lnite două sc!eme de comutare a conte&tului.

    ;. Salvare în amplasamente fi&e.

    D. Salvare într-o stivă.

    D3. 6ntreruperi

    $ întrerupere este comutarea conte&tului procesorului declanşată de o cauză e&ternă derulării instrucţiuniicurente. izic, întreruperea înseamnă trimiterea unui semnal procesorului, acest semnal provoc)ndsc!imbarea stării unuia dintre indicatorii, consultaţi în cursul e&ecutării fiecărei instrucţiuni. Semnalul

     poate proveni de la alt procesor, de la un organ de @2:, de la un dispozitiv e&tern, şi în genere, de la orice proces fizic, e&tern procesorului întrerupt. $ întrerupere permite să cerem procesorului să suspendee&ecutarea programului curent, din primul punct întreruptibil, şi să treacă la e&ecuţia unui program

     predefinit. Acesta din urmă este numit program de tratare a întreruperii *interrupt  andler , eng., traitant 

  • 8/18/2019 SOMIPPRaspunsuri

    10/82

    de l!interruption, fr.+. Programul de tratare a întreruperii este e&ecutat într-un conte&t diferit de cel al programului întrerupt, diferenţa fiind legată de modul de tratare, protecţie, informaţiile accesibile, etc.

    D7. evieri şi apelarea supervizorului

    $ deviere semnalizează o anomalie în derularea unei instrucţiuni, care pro!ibitează e&ecutareainstrucţiunii. $riginile pot fi diverse%

    date incorecte, instrucţiune nee&ecutabilă . evierile pot fi clasificate, ca şi întreruperile, conform cauzelorcare le generează. O deviere poate !i suprimată" dar nici intr-un ca* retardată. $n apel alsupervi*orului +supervisor call" prescurtat S," eng." appel au superviseur" !r. este o instrucţiunechemată să provoace o comutare a contextului procesorului. cest e!ect este analogic apelării uneiproceduri" însă modi!icarea contextului este mai pro!undă"

    estinaţia unui apel al supervizorului este de a permite apelarea unei proceduri a sistemului de operare, pretinz)nd la drepturi mai mari

    D8. :&emple de sisteme de întreruperi

    Sistemul de întreruperi are / nivele *în ordinea de descreştere a priorităţilor+% eroare !ardare, deviere,apelare supervizor, e&tern şi intrare-ieşire. iecărui nivel îi corespunde în memoria operativă un cuplu deamplasamente rezervate cuvintelor de stare vec!i şi nou. iecare nivel conţine mai multe cauze deîntrerupere.

    D9. Utilizarea devierilor şi apelării supervizorului

    Simularea instrucţiunilor lipsă. Unele instrucţiuni din setul de bază de instrucţiuni ale procesorului pot fi

    opţionale şi, deci, pot lipsi în unele configuraţii ale calculatorului. Fentativa e&ecutării unei instrucţiuniopţionale lipsă generează o drivere de tipul instrucţiune ine&istentă. "ecanismul devierilor poate fi utilizat

     pentru a realiza prin program instrucţiunea ine&istentă în setul de bază. e e&emplu, pentru o configuraţieîn care operaţiile aritmetice în virgulă mobilă nu sunt disponibile ele pot fi simulate prin apelarea

     procedurilor corespunzătoare. Aceste proceduri trebuie e&ecutate în mod slave pentru a permite tratareae&plicită a erorilor% ele sunt apelate prin încărcarea cuv)ntului de stare respectiv. $ adresă de retur trebuiesă fie pregătită de către programul de tratare a devierii în top-ul stivei pentru a asigura returul lainstrucţiunea care urmează instrucţiunii de operaţie aritmetică simulată.

     Măsurarea capacităţii memoriei. Un sistem de operare presupune a fi utilizat pentru diverse configuraţiiale calculatorului. apacitatea memoriei, numărul şi natura dispozitivelor periferice, etc., pot fi diferite.

    Sistemul de operare trebuie să se adapteze configuraţiei concrete, ca şi condiţiilor particulare de utilizare*număr de utilizatori, priorităţi, etc.+. rearea unei asemenea versiuni specifice se numeşte generareasistemului de operare. Pentru a reduce frecvenţa generărilor S.$. unii parametri de configurare pot fideterminaţi în mod automat la iniţializare.

    /estionarea devierilor de către utili*atorul sistemului. 4eacţia standard la o deviere care are loc întimpul e&ecuţiei unui program utilizator este apelarea unei proceduri de sistem, care provoacă emitereaunui mesa( de eroare, oprirea programului curent şi trecerea la programul următor.

    :ste de dorit ca fiecare utilizator să aibă posibilitatea să asocieze fiecărei cauze distincte de deviere i o procedură proprie, tratarea căreia ar înlocui reacţia standard. Pentru a evita o buclă infinită, o deviere dinaceeaşi cauză i în interiorul acestei proceduri trebuie să apeleze procedura standard.

    Asocierea unei proceduri proc de reluare a cauzei i de deviere se face cu a(utorul unui apel alsupervizorului *S# asociere"deviere+ cu parametrii i şi proc.

  • 8/18/2019 SOMIPPRaspunsuri

    11/82

    Pentru trecerea la programul următor se va apela o procedură a sistemului de operare, apel realizat prinîncărcarea unui cuv)nt de stare, numit scimbare.

    H

  • 8/18/2019 SOMIPPRaspunsuri

    12/82

    transferurile de informaţii din sau spre mediul e&terior *organe periferice locale sau la distanţă, captoaresau dispozitive de acţionare, alte calculatoare, etc.+.

    $rganizarea generală-Periferice, controlere, canale

    Un organ de intrare-ieşire este un dispozitiv capabil să transfere informaţii între procesorul sau memoriacalculatorului şi un suport e&tern de informaţie. Acest transfer este comandat de către procesorul central. 6ncel mai simplu caz, o instrucţiune specială a procesorului permite transferarea informaţiei între suportule&tern şi un registru al procesorului, care va fi deci ocupat pe toată perioadă transferului informaţiei. $datăcu evoluţia calculatoarelor, în scopul unei mai bune utilizări a procesorului s-a a(uns la necesitatea acordăriiunei autonomii organelor de intrare-ieşire încredinţ)ndu-le funcţii tot mai complicate de înlănţuire şicomandă, procesorului central lăs)ndu-i-se doar iniţiativa de lansare şi de control a operaţiilor. inconsiderente economice mai apoi s-a trecut la separarea dispozitivelor de comandă a perifericelor de

     perifericele propriu-zise, pentru ca dispozitivele de comandă să poată fi parta(ate între mai multe periferice.

    )teva sc!eme de organizare a perifericelor sunt prezentate în fig.D./. Sc!ema *c+ este proprie unui

    calculator de putere mare, *a+ şi *b+ corespund configuraţiilor calculatoarelor de putere mai mică. Precizămfuncţiile organelor reprezentate în această figură.

    ;+ Un canal *sau unitate de sc!imb+ este un procesor specializat în operaţiile de intrare-ieşire. :l poate filansat doar de un procesor central, nu posedă întreruperi, dar poate întrerupe un procesor central. Setulde instrucţiuni ale canalului îi permite să acţioneze controlerele şi perifericele, care-i sunt conectate."ini- şi microcalculatoarele pot poseda organe, numite #nităţi de acces direct la memorie $A%&', caresunt nişte canale simplificate.

    D+ Un contr0ler este un dispozitiv de comandă adaptat la un tip concret de ec!ipament periferic.Autonomia sa este limitată de operaţii foarte elementare. estinaţia principală a unui controler este de a

     permite conectarea a mai multor periferice de acelaşi tip la un singur controler. Un singur dispozitiv

     periferic poate transmite informaţii prin intermediul controlerului la un moment de timp dat. 6n acelaşitimp, este posibilă e&ecutarea simultană a unor operaţii pe alte periferice, operaţii care nu implicătransferul de informaţii *rebobinarea unei bande magnetice, deplasarea braţului unui disc, etc.+.Parta(area funcţiilor între periferic şi controler depinde de tipul perifericului. e obicei, funcţiile logice*înlănţuirea şi sincronizarea operaţiilor, emiterea unor semnale în caz de accident sau terminareanormală a e&ecuţiei+ sunt încredinţate controlerului, iar funcţiile fizice *transferul propriu-zis+ -

     perifericului. 6n programarea intrărilor-ieşirilor nu este necesar, de obicei, să se facă o deosebire întreun controler şi un periferic.

    H+ Un peri!eric este un organ capabil să transfere informaţii din sau spre un suport e&tern. ontrolerul estelegat de periferic printr-o interfaţă, care conţine un set de funcţii *intrare, ieşire, semnalizări de

    comandă şi de accident+ şi o linie de comunicaţie, care serveşte la transferul informaţiilor.

  • 8/18/2019 SOMIPPRaspunsuri

    13/82

    Un canal poate comanda un singur dispozitiv periferic cu debit ridicat *disc, de e&.+ sau poate fi multiple&at

     pentru mai multe periferice cu debitul mai mic. 6ncercarea mai multor procesoare *unităţi centrale saucanale+ de a accesa simultan memoria operativă poate genera conflicte. onflictele sunt reglate de cătredispozitivul !ardare de accesare, care impune o ordine de acces conform unor priorităţi prestabilite.analele au prioritate faţă de unităţile centrale, deoarece ele trebuie să reacţioneze c)t se poate de rapid laevenimentele e&terne.

    HD. "etode de comandă a perifericelor 

    Programul, care controlează funcţionarea elementară a unui dispozitiv periferic se numeşte driver.riverul gestionează în mod direct interfaţa controlerului perifericului, tratează întreruperile generate deacesta, detectează şi tratează cazurile de eroare. :l este, de obicei, invizibil unui utilizator obişnuit al

    sistemului, care apelează funcţii de intrare-ieşire prin intermediul unor servicii de înalt nivel, realizate prinapelări ale supervizorului.

       U   

       "

       A    "

       "  a  g   i  s   t  r  a   l

       ă    p  p

        p  p

       U   

       "

         p   p

         p   p

       "  a  g   i  s   t  r  a   l

       ă   *   a   +

       *   b   +

       "

            p

       

        p   "  a  g   i  s   t  r  a   l

       ă

       *   c   +

        p

      p

      p  p

      p

       U   

       U   

       U     %  u  n   i   t  a   t  e

      c  e  n   t  r  a   l   ă

       "  %  m  e  m  o  r   i  e

         %  c  a  n  a   l

       A      "  %  a  c  c  e  s

       d   i  r  e  c   t   l  a

      m  e  m  o  r   i  e

         p  %  c  o  n   t  r  o   l  e  r

      p  %   d   i  s  p  o  z   i   t   i  v

      p  e  r   i   f  e  r   i  c

          i  g .   D .   / .

       $  r  g  a  n

       i  z  a  r  e  a

       i  n   t  r   ă  r   i   l  o  r  -   i  e  ş   i  r   i   l  o  r

  • 8/18/2019 SOMIPPRaspunsuri

    14/82

    HH. @ntrări-ieşiri buferizate în memorie

    iferenţa considerabilă dintre viteza de lucru a unităţii centrale şi cea a organelor periferice impune5buferizarea5 intrărilor-ieşirilor, adică introducerea unei zone de memorie-tampon între periferic şi

     programul utilizatorului. Scopul este de a reduce timpul de inactivitate a unităţii centrale, dezleg)ndfuncţionarea acesteia de periferice. Programul utilizatorului va transfera informaţiile din sau spre zona-tampon, iar această zonă-tampon va servi, în mod paralel, drept sursă sau destinaţie la sc!imbul de date cu

     perifericul. ezlegarea unităţii centrale de periferic este cu at)t mai bine realizată cu c)t este mai marecapacitatea zonei-tampon. Adesea, pentru a nu supraîncărca memoria principală, zona-tampon este situată

     pe discul fi&.

    HI. 6ncărcarea iniţială

    Pentru a începe lucrul maşina 5goală5 trebuie să aibă încărcat în memoria operativă programul sistemuluide operare şi să e&ecute un salt la prima instrucţiune a acestui program. Aceasta presupune prezenţa înmemorie a unui program de citire, care el însuşi trebuie încărcat în prealabil. Ca primele calculatoare, un

     program de c)teva instrucţiuni, introdus manual în memorie cu a(utorul unor comutatoare ale pupitrului decomandă la o adresă fi&ă, permitea încărcarea unui program de citire mai elevat capabil să citeascăversiunea completă a sistemului de operare. Acest proces era numit încărcare *bootstrapping, eng.+.

    6n calculatoarele contemporane, programul de iniţializare se află permanent într-o memorie constantă*L@$S+. :&ecuţia acestui program este declanşată odată cu punerea sub tensiune a calculatorului*autoîncărcare+.

    H/. /estionarea activităţilor paralele. dministrarea 1u!eri*ată a intrărilor-ieşirilor

    4eluăm e&emplul imprimării cu gestionarea unor zone tampon pe disc, descris în capitolul D. Analizaacestui mod de funcţionare *fig.H.;+ pune în evidenţă patru activităţi, care pot avea loc simultan∗%

    ;+ primitiva scriere"linie SC *unitatea centrală+

    D+ scriere pe disc S *canal ;+

    H+ citire de pe disc *canal D+

    I+ imprimare fizică @ *canal H+

     W∗ 6n realitate, citirea şi scrierea pe disc sunt e&ecutate pe acelaşi canal, ceea ce poate impune unele restricţii privind simultaneitatea e&ecutării lor. #om ignora aiciaceste restricţii, (ustific)nd mai apoi acest mod de procedare.

     scriere "linie

    $memorie'

    $memorie'

    ig.H.;. Xestionarea buferizată a uneiimprimante

    tm(

    td 

    tm)

    S

    @

    $di sc'

    S

    C

  • 8/18/2019 SOMIPPRaspunsuri

    15/82

    Aceste patru activităţi sunt în mare măsură autonome, or ele sunt e&ecutate pe procesoare distincte, cu programe diferite. :le nu sunt totuşi independente, deoarece accesează obiecte comune% două tampoane înmemorie, tm( şi tm) şi un tampon pe disc, td . Pot fi evidenţiate două tipuri de condiţii, care trebuierespectate%

    ;+ ondiţii, care stabilesc posibilitatea e&istenţei unor activităţi

    $ înregistrare nu poate fi preluată dintr-un tampon înainte de a nu fi depozitată aici. Fampoanele aucapacităţi limitate1 dacă un tampon este ocupat cu înregistrări, care nu au fost încă preluate, este imposibilădepozitarea fără a pierde informaţii. Acţiunile de depozitare şi preluare sunt, deci, supuse unor condiţii de

     posibilitate de e&istenţă, enumerate mai (os.

    Activitate Acţiune ondiţie

    SC scriere în tm( tm( nu este plin

    S citire din tm( tm( nu este vid

    S scriere în td td   nu este plin

    citire din td td nu este vid

    scriere în tm) tm) nu este plin

    @ citire din tm) tm) nu este vid

    :&ecuţia activităţilor modifică veridicitatea acestor condiţii% astfel, imprimarea unei linii pune în F4U:condiţia =tm) nu este plin>.

    $ activitate, care nu poate e&ecuta o acţiune, deoarece condiţia asociată are valoare ACS:, trebuie săaştepte, adică e&ecuţia unei acţiuni este retardată p)nă c)nd valoarea logică a condiţiei devine F4U:. 6ncapitolul D a fost discutată realizarea acestui mecanism de aşteptare şi continuare cu a(utorul întreruperilor.

    D+ ondiţii de validitate a informaţiilor parta(ateacă vom e&amina procesul de accesare a tampoanelor, vom descoperi o altă formă de interacţiune,cauzată de posibilitatea de accesare simultană de către două activităţi a unui amplsament de memorie.Astfel, dacă S citeşte conţinutul unei înregistrări din tm( pe care SC este în curs de a o modifica,rezultatul acestei citiri riscă să fie incoerent, dacă nu au fost luate măsuri speciale de precauţie. Problema

     poate fi rezolvată impun)nd una din activităţi, aflate în conflict, să =aştepte> p)nă c)nd cealaltă va terminaaccesarea.

    oncluziile acestei prime analize%

    Cucrarea =imprimare tamponată> este realizată prin patru activităţi simultane, în mare măsură autonome,care cooperează pentru atingerea scopului final.

    :&ecutarea corectă a lucrării impune restricţii logice în vederea derulării acestor activităţi. Aceste restricţii pot conduce la înt)rzierea e&ecuţiei unei activităţi, care este obligată să aştepte producerea unui eveniment, provocat de o altă activitate.

    H3. Xestionarea activităţilor paralele. omanda unui proces industrial

     onsiderăm două reactoare identice, R( şi R), care funcţionează în paralel. #om e&amina două soluţii posibile%

    ;+ utilizarea a două calculatoare *c)te unul pentru fiecare reactor+,

    D+ folosirea unui singur calculator pentru comanda ambelor reactoare.

  • 8/18/2019 SOMIPPRaspunsuri

    16/82

    Prima variantă nu prezintă nimic nou în raport cu descrierea din capitolul ;. Soluţia a doua cere stabilireacondiţiilor suplimentare pentru realizarea sa. @mplementarea variantei doi impune verificarea posibilităţiiapariţiei unor condiţii suplimentare. ie * (, * ), %(, %) segmentele procedurilor şi datelor pentru comandacelor două reactoare R( şi R), memoria principală av)nd capacitatea necesară pentru păstrarea acestorsegmente. Programele * ( şi * ) sunt e&ecutate pe r)nd de procesor. 4aţion)nd ca şi în capitolul ;,

    concluzionăm că relaţia )t+,  trebuie să fie respectată. acă acesta va fi cazul, funcţionarea reactoarelor pentru un observator e&tern pare identică pentru ambele soluţii. Frebuie, totuşi să subliniem, că soluţia doiimpune restricţii mai severe în ceea ce priveşte performanţele calculatorului *capacitatea memoriei şi vitezade procesare+

    #om e&amina mai (os modalităţile de implementare a soluţiei doi .

    Parta(area procesorului

    6ntre două e&ecuţii succesive ale lui * (, procesorul este utilizat de * ), ca rezultat starea sa internă*conţinutul registrelor, cuv)ntul de stare, contorul ordinal+ va fi modificată. Pentru a permite reluarea lui * (,informaţiile sale trebuiesc salvate la terminarea fiecărei secvenţe de e&ecuţie şi restabilite la începereae&ecuţiei următoare. Aceleaşi afirmaţii sunt valabile şi în cazul e&ecutării lui * ).

    Parta(area programului

    Programele * ( şi * ), fiind identice, putem păstra doar o singură copie, să-i zicem * , pentru economisireamemoriei. Să e&aminăm condiţiile necesare pentru parta(area programului * %

    nu este permisă modificarea codului programului de e&ecuţia sa,

    atunci c)nd * este e&ecutat pentru reactorul Ri *i-( sau )+, el va accesa segmentul de date %i1 aceastăadresare selectivă a datelor va fi realizată de un mecanism care nu modifică te&tul programului.

    Un program, e&istent în e&emplar unic, dar care poate fi utilizat pentru e&ecutarea mai multor activităţiindependente, eventual simultane, se numeşte program reentrant +reentera1il. Acest mod de utilizare

    implică% invarianţa te&tului programului în cursul e&ecutării sale,

    desemnarea uniformă, de către program, a datelor proprii fiecărei activităţi.

    Printre altele, dacă activităţile parta(ează un procesor unic, informaţiile despre starea acestuia *în particular,cele care servesc la desemnarea datelor+ trebuiesc salvate la fiecare comutare.

    Să rezumăm rezultatele celui de-al doilea e&emplu.

    − Au fost evidenţiate două activităţi logic independente% comanda reactoarelor R( şi R). Aceste douăactivităţi pot fi puse pe două maşini distincte fără să e&iste vre-o legătură între ele.

    − onsiderente de economie pot impune ca aceste activităţi să parta(eze resurse fizice şi resurse program comune. Luna funcţionare a acestei parta(ări restricţionează e&ecuţia activităţilor*utilizarea alternativă a procesorului+ şi modul de utilizare a obiectelor parta(ate *salvareaconte&tului de e&ecutare, reentranţa programelor+.

    a şi concluzie pentru ambele e&emple putem evidenţia două momente%

    e&istenţa unor activităţi evolutive, care pot derula simultan,

    e&istenţa unor relaţii între aceste activităţi% cooperare pentru e&ecutarea unor sarcini comune,concurenţă în utilizarea resurselor parta(ate. Aceste relaţii sunt determinate de specificaţiile de =bunăfuncţionare>. :le se pot traduce în restricţii de e&ecuţie, care conduc la înt)rzieri temporare a

     progresării unei activităţi.

  • 8/18/2019 SOMIPPRaspunsuri

    17/82

    H7. 'oţiune de proces secvenţial. Proces unic. onte&t

     'oţiunea de proces este mai înt)i introdusă într-un mod concret pentru cazul unui calculator care conţineun procesor unic şi o memorie adresabilă. #om trece mai apoi la definiţia abstractă a unui proces

    independent de suportul său fizic, ceea ce ne va permite introducerea problemei sincronizării. 'oţiunea de proces pune la dispoziţie un model pentru reprezentarea unei activităţi, care rezultă dine&ecutarea unui program pe calculator. Starea calculatorului este definită de starea procesorului *conţinutulregistrelor+ şi starea memoriei *conţinutul amplasamentelor+. Această stare este modificată de către

     procesor prin e&ecutarea instrucţiunilor programului. iecare e&ecutare a unei instrucţiuni constituie oacţiune% o acţiune are ca efect trecerea în timp finit a calculatorului dintr-o stare iniţială într-o stare finală.Acest efect este descris în specificaţiile instrucţiunii.

    :&ecutarea unei instrucţiuni va fi considerată indivizibilă sau atomară, adică este interzisă observarea saudefinirea stării maşinii în timpul acestei e&ecuţii. Fimpul utilizat pentru descrierea evoluţiei stării este un

     parametru t care poate lua o serie de valori discrete crescătoare, corespunzătoare începutului şi sf)rşitului

    instrucţiunilor .∗

     Aceste instanţe sunt numite puncte de observare, iar stările corespunzătoare ale maşiniisunt numite puncte o1serva1ile. Prin abuz de limba(, acest ultim termen desemnează în egală măsură şi

     punctele de observare. Acestea permit să se asocieze o dată *valoarea curentă a lui t + unei stări a maşinii1 oatare stare datată defineşte un eveniment. :venimentele permit reperarea modificărilor stării maşinii.6nceputul şi sf)rşitul unei acţiuni a sunt evenimente datele cărora sunt notate început$a' şi sf/rşit$a'0 vomavea, evident, început$a'+sf/rşit$a'.

    :&ecutarea unui program se traduce, deci, într-o suită de acţiuni a(  a) ..., ai ... cu început$ai '+sf/rşit$ai '.∗ ∗  $ astfel de suită este numită proces secvenţial *sau simplu proces+.

    Un proces poate, deci, fi descris cu a(utorul succesiunii evenimentelor început$a( ' sf/rşit$a( ' început$a) ' sf/rşit$a) '... Această suită de stări datate ale maşinii se numeşte traiectorie temporală *sau istorie+ a procesului. Putem de asemenea defini un proces ca o suită de activităţi în sensul lui D.;.

    "ulţimea informaţiilor pe care acţiunile unui proces le pot consulta sau modifica se numeşte contextul procesului. 4elu)nd modelul de e&ecuţie secvenţială introdus în D.;, conte&tul unui proces rezultant dine&ecutarea unui program conţine%

    ;+ onte&tul procesorului *cuv)ntul de stare şi registrele+,

    D+ Un conte&t în memorie, sau spaţiul de lucru *segmente procedură, date, stivă de e&ecuţie+,

    H+ $ mulţime de atribute ataşate procesului şi care specifică diferite proprietăţi%

    a+  1ume. 'umele unui proces, care serveşte pentru identificarea lui, este de regulă, un număr intern

    atribuit la crearea procesului şi care permite să se a(ungă la reprezentarea conte&tului său *v.I.D+. b+  *rioritate. Prioritatea proceselor permite ordonarea lor pentru alocarea procesorului *v.I.D, I.H+. acă

    toate procesele au aceeaşi prioritate, alocarea se face conform ordinii =primul sosit, primul servit>.

    c+  %repturi. repturile unui proces specifică operaţiile care îi sunt permise, în scopul asigurării protecţieiinformaţiei *v. /.;.I+.

    H8. 4elaţii între procese. "ulţimi de procese. Paralelism

     W∗ 6ntr-un mod mai riguros ar trebui să adăugăm aici =punctele întreruptible> care pot fi prezente în unele instrucţiuni de lungă durată1 o e&ecutare a unei

    asemenea instrucţiuni poate fi considerată o suită de mai multe acţiuni. W∗∗ Pentru comoditatea e&punerii considerăm, că sf)rşitul unei acţiuni şi începutul acţiunii următoare sunt două evenimente distincte, datele cărora sunt diferite,deşi stările corespunzătoare sunt identice.

  • 8/18/2019 SOMIPPRaspunsuri

    18/82

    -traiectoria temporală a unei mulţimi de procese este şirul evenimentelor formate de începuturile şisf)rşiturile acţiunilor rezultante din e&ecutarea programelor acestor procese.

    -conte&tele unor procese diferite pot avea părţi comune. ouă procese, conte&tele cărora sunt dis(uncte, senumesc independente1 ele nu pot avea interacţiuni reciproce. Partea conte&tului, care aparţine unui singur

     proces, se numeşte context privat al procesului dat.

    Să considerăm două programe distincte *  şi 2, fiecare av)nd în memorie un segment cod şi un segment dedate. 'umim p şi 3 procesele rezultante din e&ecutarea respectivă a acestor două programe. :&ecutareasetului * p 3' poate să se producă în diferite moduri, caracterizate de forma particulară a traiectoriei saletemporale. Aceste traiectorii sunt reprezentate în figura H.D.

    Sc!emele de mai sus pot fi comentate astfel%

    sc!ema ;% este e&ecutat mai înt)i tot procesul p apoi procesul 3 la fel în întregime,

    sc!ema D% sunt e&ecutate şiruri de instrucţiuni ale procesului p în mod alternativ cu şiruri de instrucţiuniale procesului 3, şi tot aşa p)nă la terminarea ambelor procese,

    sc!ema H% e&ecutarea proceselor p şi 3 este simultană1 în acest caz sunt necesare două procesoare.Pentru compararea acestor sc!eme de e&ecuţie introducem noţiunea nivel de o1servare. Putem considera osuită de acţiuni ale unui proces ca o acţiune unică, adică să observăm derularea unui proces consider)nd ounitate de e&ecuţie

    mai puţin fină dec)t instrucţiunea. e e&emplu, dacă vom redefini noţiunea de acţiune elementară cae&ecuţie a unei proceduri, traiectoria procesului va conţine doar stările definite de fiecare apel şi retur de

     procedură. 'ivelul de observare cel mai fin *cel al instrucţiunilor+ este numit nivel de 1a*ă.

    Să ne situăm mai înt)i la nivelul de observare la care, prin convenţie, e&ecutarea completă a fiecărei dintre programele *  şi 2 reprezintă o acţiune unică. efiniţiile care urmează sunt pentru acest nivel.

    a+ sc!ema de tip ; este a unei e&ecuţii secvenţiale a lui p şi 3. :a este caracterizată de relaţiile%

     sf/rşit$3' + început$p' sau sf)rşit* p' + început$3' b+ sc!emele de tip D sau H sunt sc!eme de e&ecuţie paralelă. :le sunt caracterizate de

     sf/rşit$p' 4 început$3' sau sf)rşit*3' 4 început$p'.

    4evenim la nivelul de bază. Putem face o distincţie între sc!emele D şi H. 6ntr-adevăr, în sc!ema D, dinconsiderente de e&istenţă a unui singur procesor, la un moment de timp dat doar o singură acţiune poate fie&ecutată, contrar sc!emei H. Se va spune că în sc!ema H are loc un paralelism real, iar în sc!ema D ? unpseudo-paralelism. Paralelismul real necesită două procesoare distincte. ouă observaţii importante suntnecesare%

    ;+ iferenţa acestor sc!eme de e&ecuţie este legată de alegerea nivelului de observare. Astfel, la nivelul de

     bază, diferenţa dintre sc!emele ; şi D dispare% ambele sunt secvenţiale.

  • 8/18/2019 SOMIPPRaspunsuri

    19/82

    D+ Alegerea nivelului de bază depinde de fineţea fenomenelor, care dorim să le considerăm elementare.acă trebuie să studiem e&ecutarea instrucţiunilor în =pipe-line> pe un procesor microprogramat, încalitate de nivel de bază va fi ales

    H9. oncurenţa proceselor. 4esurse virtualeSituaţia descrisă de sc!emele ; şi D nu rezultă dintr-o legătură logică între p şi 3, ci doar din e&istenţa unuisingur procesor. :a poate fi caracterizată astfel% fie o mulţime de procese conte&tele cărora au un obiectcomun, care poate fi utilizat la un moment de timp dat de un singur proces. Se va spune în acest caz, căobiectul constituie o resursă critică pentru procesele date sau că procesele sunt în excludere mutuală*excludere reciprocă sau concurenţă+ pentru utilizarea unei resurse. 6n situaţia descrisă, procesorul este oresursă critică pentru procesele p şi 3.

    $bservăm că e&cluderea mutuală a unei resurse conduce la =serializarea> e&ecuţiei proceselor concurente,în cazul unor acţiuni, care cer această resursă *în e&emplul dat, toate acţiunile+. Sc!emele ; şi D diferă doar

     prin nivelul de fineţe la care este e&ecutată serializarea.

    uncţionarea corectă a unei mulţimi de procese, care participă la îndeplinirea unei lucrări comune, implicărelaţii logice de cooperare *v.H.;.;+. :ste comod să se separe această cooperare de concurenţa pentruresursele fizice cu scopul de a simplifica înţelegerea şi aplicarea celor două tipuri de relaţii. Pentru aceastaeste folosită noţiunea de resurse virtuale% fiecărei resurse fizice critice i se asociază tot at)tea copiiimaginare *sau virtuale+ ale acestei resurse c)te procese concurente solicită utilizarea ei. Suntem nevoiţi sătratăm două probleme distincte%

    ;+ respectarea relaţiilor de cooperare între procesele, care, fiecare posedă *conceptual+ resursele fizicesolicitate şi pentru care paralelismul în e&ecuţie nu este restricţionat de competiţia pentru resurse,

    D+ reglarea problemei de concurenţă pentru resursele fizice printr-o serializare convenabilă a e&ecuţiei proceselor în cauză. Se va spune în acest caz, că realizăm o alocare a resurselor fizice.

    @ntroducerea resurselor virtuale are o consecinţă foarte importantă pe care o vom ilustra-o prin e&emplul proceselor p şi 3, definite în H.D.D.;. Să ataşăm fiecărui proces un procesor virtual. onceptual, totul vaavea loc ca şi cum procesele s-ar derula paralel, conform unei sc!eme, numite logice sau virtuale, analogicesc!emei H din fig.H.D. u toate acestea, trebuie de menţionat, că această sc!emă logică reprezintă doar onotaţie compactă pentru mulţimea sc!emelor reale posibile şi că ele sunt obligatoriu de forma ; sau D dinconsiderentele unicităţii procesorului. Pentru o sc!emă reală şi una virtuală a unui proces dat este păstratădoar ordinea de succesiune a evenimentelor *începutul şi sf)rşitul acţiunii+ şi nu sunt păstrate valorileabsolute ale intervalelor de timp, care le separă. 6n absenţa altor informaţii, nu putem spune nimic aprioridespre ordinea evenimentelor, asociate unor procese distincte. Fimpul folosit la reperarea evenimentelor însc!ema logică este numit timp logic1 relaţiile sale cu timpul real sunt prezentate în fig.H.H.

    a( a)

    O------O-----------------O------O procesul p

    b( b) *timp logic+

    O--O-------O---------O procesul 3

    a( a)

    O------O---O O----------O O----O------O  p *timp real, e&ecuţia ;+

    O--O--O O-----O---------O 3

    b( b)a( a)

  • 8/18/2019 SOMIPPRaspunsuri

    20/82

    O---O O---O-----------------O------O  p *timp real, e&ecuţia D+

     O--O----O O---O---------O 3

    b( b)

    6n toate cazurile a( precede a), b( precede b).

    ig.H.H. Fimpul logic şi timpul real

    #om considera, că evoluţia proceselor are loc în timp logic, adică vor fi interzise orice ipoteze despre vitezarelativă a proceselor în cauză% aceasta este consecinţa simplificării considerabile, introduse de noţiunea deresurse virtuale, care permite ignorarea mecanismelor de alocare. $ singură e&cepţie, totuşi va fi făcută

     pentru studierea sincronizării temporale, în care timpul fizic intervine în mod precis ca măsură a duratei şinu numai ca mod de reperare relativă.

    I

  • 8/18/2019 SOMIPPRaspunsuri

    21/82

    Exemplul 2.3.Procesul p transmite informaţii procesului 3 scriind într-un segment a, consultat de 3 *se presupune că această transmitere are loc o singură dată+. :ste necesar să se verifice condiţia%

    sf)rşit*scriere*a++ R început*citire*a++

    Această relaţie e&primă restricţia, că citirea lui a de către 3 nu poate începe înainte de terminarea scrierii lui

    a de către p. ZExemplul 2.4. Rendez7vous. ie 1  procese p( ... p 1 . efinim în programul fiecărui proces un punct, numitrendez7vous, pe care procesul nu-l poate trece înainte ca alte procese să a(ungă la punctul lor propriu derendez-vous.

    acă programul procesului pi are forma

    ;

    Rrendez-vous

    Rcontinuarei1

    atunci restricţiile de sincronizare se vor e&prima după cum urmează%∀   i 8 ∈ 9(..1:5 sf/rşit$debut"i' + început$continuare"8' Z

    4estricţiile de sincronizare pot fi e&primate prin următoarele două forme ec!ivalente%

    ;. Se va impune o ordine de succesiune în timp logic pentru unele puncte ale traiectoriei temporaleale procesului,

    D. Se va impune unor procese o condiţie de autorizare a depăşirii acestor puncte ale traiectoriei lortemporale.

    Punctele privilegiate astfel se vor numi puncte de sincroni*are.

    :&presia *D+ arată, că restricţiile de sincronizare pot fi satisfăcute impun)nd un proces =să aştepte> săe&ecute o acţiune p)nă c)nd o oarecare condiţie va fi satisfăcută. Această noţiune de aşteptare nu poate fie&primată cu a(utorul instrumentarului introdus p)nă acum1 pentru aceasta vom introduce o nouă stare

     pentru un proces, stare în care procesul se zice în aşteptare sau 1locat, prin opoziţie stării activ"considerate p)nă acum în mod implicit. Un proces, care intră în starea de aşteptare, plec)nd de la un punctobservabil t , opreşte progresarea încep)nd cu acest punct şi stopează e&ecutarea acţiunilor. 6n momentul încare procesul revine în starea activ, el reia e&ecuţia sa şi conte&tul său privat restabileşte starea pe care

     procesul o avea în punctul t  *partea neprivată a conte&tului poate fi modificată de e&ecuţia altor procese+.Se numeşte 1locare tranziţia activ→ aşteptare şi de1locare tranziţia inversă. "odalităţile de realizare a

     blocării şi deblocării sunt obiectul subparagrafului H.H.H.

    #om utiliza noţiunea de aşteptare pentru specificarea sincronizării proceselor. Această specificare se va produce în două etape%

    ;+ definirea punctelor de sincronizare pentru fiecare proces,

    D+ asocierea unei condiţii de depăşire fiecărui punct de sincronizare, condiţie e&primată prin intermediulvariabilelor de stare a sistemului.

    #om ilustra acest mod de specificare pentru cele două e&emple precedente. 'otăm un punct de sincronizare prin ps, iar condiţia de depăşire asociată prin aut$ps'. acă această condiţie are valoare F4U:, procesul încauză este autorizat să e&ecute instrucţiunea etic!etată cu ps.

    Exemplul 2.5% var f  : boolean init false

     procesul p  procesul 3scriere*a+1 Rdebut1

  • 8/18/2019 SOMIPPRaspunsuri

    22/82

    f%Mtrue1

    ps : citire(a)

    aut*ps+ % f%Mtrue

    A fost introdusă variabila de stare f  pentru a e&prima condiţia =procesul p a terminat acţiunea scriere$a'>.;

    Exemplul 2.6% var n : integer init 0;

     procesul pi

    Rdebuti1

    n%MnO;

     ps% Rcontinuarei

    aut(psi  ): n=N (i=1,,N);

    #ariabila de stare n este în acest caz numărul procesului sosit în punctul de rendez-vous.Z

    IH. Probleme de realizare a sincronizării

    #om încerca să implementăm sincronizarea specificată de condiţiile de depăşire. Pentru aceasta trebuie sădefinim un mecanism de aşteptare şi să introducem noţiunea de evenimente memorizate. Un evenimentmemorizat *e+ este o variabilă, care poate lua două valori% sosit  şi non_sosit , valoarea iniţială este non!sosit . Asupra evenimentului memorizat sunt posibile două operaţii, care sunt acţiuni indivizibile%

    e:=

  • 8/18/2019 SOMIPPRaspunsuri

    23/82

    ;

    (A) n%MnO;1

    (B) if n

  • 8/18/2019 SOMIPPRaspunsuri

    24/82

    intermediul a trei operaţii sau primitive, efectul cărora este descris mai (os *prin p am notat procesul, care lee&ecută+

    c.aşteptare % bloc!ează procesul p şi îl plasează în =aşteptarea lui c>

    c.vid  % funcţie cu valori booleene *true, dacă nu e&istă nici un proces în aşteptarea lui c, altfel false+

    c.semnalizare% i! non c.vid  then +deblocarea proceselor care sunt în aşteptarea lui c4 endi! 

    Procesele, care sunt în aşteptarea unei condiţii c, sunt grupate într-un fir de aşteptare asociat lui c. Putemspune, că o condiţie furnizează proceselor un instrument de desemnare a unui astfel fir de aşteptare.

    Un proces deblocat de c.semnalizare îşi reia e&ecuţia de la instrucţiunea, care urmează imediat primitiveic.aşteptare care-l blocase. 'ecesitatea asigurării e&cluderii reciproce pentru variabilele de stare impune orestricţie suplimentară mecanismelor de deblocare% atunci c)nd un proces p debloc!ează un proces 3 printr-o operaţie de semnalizare, p şi 3 nu pot fi menţinute simultan active. Se va impune blocarea lui p p)nă înmomentul în care 3, la r)ndul său, se va bloca sau va părăsi monitorul. Pentru evitarea unei blocăriindefinite a lui p este necesar ca operaţia de transfer a comenzii de la p la 3 să fie atomară *indivizibilă+ şise va garanta, că un proces care a fost temporar blocat este deblocat de operaţia semnalizare înainte ca unnou proces să poată e&ecuta o procedură a monitorului.

    H.H.H.D. :&emple de utilizare

    Exemplul 2.9. sinc: monitor;

    var  fact : boolean;

    term% condiţie1

    procedura ter$inare_scriere;

    begin

    fact:=true;term.semnalizare

    end

    procedura debut_citire;

    if non fact  then

    term.aşteptare

    endif 

    begin -- iniţializare

    fact := false

    end

    end sinc 

    "onitorul este utilizat după cum urmează%

     procesul p  procesul 3

    scriere(a);

    sinc.terminarescriere1 sinc.debutcitire1

    Rcontinuarep citire*a+1Exemplul 2.99. rende%!"ous : monitor;

  • 8/18/2019 SOMIPPRaspunsuri

    25/82

    var n : integer;

    to&i_sosi&i  : condi&ie;

    procedura sosire;

    begin

    n := n'1;

    if n < N then

    to&i_sosi&ia#teptare --nu au sosit toate procesele

    endif 

    to&i_sosi&ise$nali%are -- a sosit şi ultimul

    end

    begin -- iniţializare

    n:=0 

    end

    end rende%_"ous

    Programul procesului pi va fi de forma%

     procesul pi

    rende%_"oussosire;

    :ste foarte important să înţelegem funcţionarea sincronizării% procesul, care soseşte ultimul la rendez"vous,e&ecută toţi"sosiţi.semnalizare şi debloc!ează unul dintre procesele, care sunt în starea aşteptare. Acesta, lar)ndul său, e&ecută toţi"sosiţi.semnalizare, debloc)nd următorul proces şi aşa mai departe.

    I/. @mplementarea sincronizării. Probleme-tip

    :&perienţa demonstrează, că problemele de sincronizare logică înt)lnite în practică pot fi reduse, în marealor ma(oritate, la combinaţia unui număr mic de situaţii elementare, sc!emele de soluţionare ale cărora sunt

    cunoscute. Secţiunile H.I.D ? H.I./ sunt consacrate studierii acestor probleme-tip, utiliz)nd instrumentarulde bază, pus la dispoziţie de monitoare. Problemele-tip sunt următoarele%

    accesarea de către o mulţime de procese a unei resurse parta(ate comune,

    comunicarea între procese,

    gestionarea perifericelor şi intrărilor-ieşirilor tamponate,

    sincronizare temporală.

    I3. Administrarea unei resurse parta(ate

  • 8/18/2019 SOMIPPRaspunsuri

    26/82

    onsiderăm o resursă *fizică sau logică+ parta(ată de o mulţime de procese. Utilizarea acestei resursetrebuie să respecte nişte reguli de utilizare, destinaţia cărora constă în garantarea unor proprietăţispecificate sau restricţii de integritate. Aceste restricţii sunt specificate pentru fiecare resursă. $modalitate de garantare a respectării regulilor de utilizare a unei resurse constă în adoptarea următoareisc!eme%

    modul de folosire a resursei presupune utilizarea obligatorie a procedurilor de acces asociate resursei1orice tentativă de utilizare, care nu respectă acest mod este detectată automat,

     procedurile de accesare sunt grupate într-un monitor, sau mai multe, programul căruia impunerespectarea restricţiilor de integritate.

    el mai simplu caz este acela al unei resurse pentru care singura restricţie de integritate este de a fi utilizatăîn e&cludere reciprocă. Simpla grupare a procedurilor sale de acces într-un monitor unic garanteazărespectarea acestor restricţii.

    I7. Alocarea resurselor banalizate

    onsiderăm o resursă pentru care e&istă un număr fi& de 1  e&emplare. Un proces poate accesa la cerere nunităţi din cele 1 , le poate utiliza şi apoi elibera. $ unitate, folosită de un proces, se numeşte alocată 

     procesului, care o utilizează, pentru toată perioada de la accesare p)nă la eliberare. Foate unităţile suntec!ivalente din punctul de vedere al proceselor utilizatoare, vom mai zice că resursa este 1anali*ată.[onele-tampon din memoria principală sau pe disc, unităţile de bandă magnetică, etc. sunt e&emple deresurse banalizate.

    #om admite următoarele reguli de utilizare%

    o unitate poate fi alocată la un moment de timp dat doar unui singur proces, o unitate poate fi alocată unui proces, care cere alocarea, doar dacă ea este liberă *nu este alocată nici

    unui proces+,

    o operaţie de eliberare este aplicată totdeauna ultimelor resurse, ac!iziţionate de procesul care e&ecutăeliberarea,

    o cerere de alocare este blocantă în caz de eşec *număr insuficient de unităţi libere+.

    efinim două proceduri cerere şi eliberare ale unui monitor. Utilizarea resursei are loc conform sc!emeide mai (os.

     ps5resurse.cerere$n'0 -- cerere pentru n unităţi

    -- aşteptare în caz de eşec

    +utilizarea unităţilor primite4

    resurse.eliberare$n' -- eliberarea resurselor 

    ondiţia de sincronizare se va scrie pentru orice proces%

    aut$ps' 5 n ≤   nlibere

    Prima formă a unui monitor resurse se va obţine utiliz)nd direct condiţia de sincronizare%

    resurse: monitor ;

    var nlibere : integer;

  • 8/18/2019 SOMIPPRaspunsuri

    27/82

    disp % condiţie1

    procedura cerere(n);

    begin

    while n>nlibere do

    dispa#teptare;

    endwhile;

    nlibere:=nlibere!n

    end;

    procedura eliberare(n);

    begin

    nlibere:=nlibere'n;

    dispse$nali%are -- deblocare în lanţ

    end;

    begin -- iniţializare

    nlibere:=N 

    end

    end resurse

     'u a fost făcută nici o ipoteză despre ordinea proceselor în firul de aşteptare al condiţiei disp. reptconsecinţă, la fiecare eliberare vor fi deblocate toate procesele. :ste o soluţie greoaie şi poate fi foarte

    costisitoare, dacă e&istă multe procese. :ste preferabil să se programeze în mod e&plicit administrareafirului de aşteptare a cererilor, ceea ce obligă să avem c)te o condiţie distinctă pentru fiecare proces.

    Pentru elaborarea programelor vom introduce un tip discret proces, variabilele căruia permit desemnarea proceselor.

    resurse : monitor 

    tpe ele$ent : struct

     lungi$e : integer 

     proc % proces

     end;var nlibere : integer;

    disp :arraproces of condi&ie;

    procedura cerere(n);

    begin

    var e: ele$ent;

    if n>nlibere thenelungi$e:=n;

  • 8/18/2019 SOMIPPRaspunsuri

    28/82

    eproc:=p; -- p este procesul apelant

    introducere(e,f); -- în ordinea de creştere a lungimii

    disp\p].aşteptare

    endif ;

    nlibere:=nlibere!n

    end;

    procedura eliberare(n);

    var e: ele$ent;

    begin

    nlibere:=nlibere'n;

    while pri$ul(f)lungi$e ≤   nlibere do

    e*tragere(e,f); -- elementul e&tras M primul * f'disp[e.proc].se$nali%are -- e.proc M procesul deblocat

    endwhile;

    end;

    begin -- iniţializare

    nlibere:=N;

    f%MRvid

    end

    end resurse

    Această soluţie este mult mai compactă şi mai generală, deoarece permite o mai bună separare a e&presieisincronizării *ceea ce rezultă din structura monitorului+ de politica de alocare *care este definită de

     procedurile de gestionare a firului de aşteptare introducere şi extragere+.

    I8. "odelul cititorului şi redactorului

    Să considerăm un fişier manipulat de procese din două clase diferite% cititori care consultă fişierul fără amodifica conţinutul lui şi scriitori, care pot modifica acest conţinut. ie pentru un moment arbitrar de timpncit  şi nscr  numărul de cititori şi de scriitori, respectiv, care folosesc o procedură de acces la fişier. erereade asigurare a coerenţei fişierului ne impune să respectăm următoarele restricţii%

    $nscr-=' şi $ncit ≥ =' -- fişier în citire

    sau $nscr -(' şi $ncit-=' -- fişier în scriere

    ie fic un monitor care asigură respectarea acestor restricţii. #om impune următoarea formă a acceselor lafişier%

     proces cititor  proces scriitor 

    fic+debut_citire; fic+debut_scriere;Racces citire Racces scriere

  • 8/18/2019 SOMIPPRaspunsuri

    29/82

    fic!.terminarecitire1 fic!.terminarescriere1

    Procedurile debut_citire, ter$inare_citire, debut_scriere, ter$inare_scriere trebuie să asigurerespectarea restricţiilor de mai sus. #om implementa aceste restricţii autoriz)nd depăşirile1 pentru aceastaeste necesar să fie precizate priorităţile între cititori şi scriitori.

    u titlu de e&emplu, presupunem că cititorii au prioritate în faţa redactorilor *o scriere nu va fi autorizată,dacă e&istă cititori în aşteptare+. efinim următoarele variabile de stare%

     scr - o scriere este în curs *valoare booleană+

    nc - numărul de cititori în aşteptare sau în curs de citire

    6n acest caz, condiţiile de depăşire se vor e&prima după cum urmează%

    aut$citire' 5 scr-false *nu e&istă scrieri curente+

    aut$scriere'5 scr-false şi nc-= $  nici scrieri nici citiri în curs, nici cititori în aşteptarea+

    "onitorul, care urmează traduce direct aceste condiţii.

    fic+ : monitor ;

    var  scr  : boolean;

    nc  : integer;

    c_scr, c_cit  : condi&ie;

    procedura debut_citire;

    begin

    nc:=nc'1;

    if scr  then

    c_cita#teptare;

    endif 

    end

    procedura ter$inare_citire;

    begin

    nc:=nc!1;

    if nc=0  then -- ultimul cititor a terminat

    c_scrse$nali%are

    endif 

    end

    procedura debut_scriere;

    begin

    if scr  or  nc>0 then -- scriere sau citire în curs

    c_scra#teptare

    endif ;

    scr:=true

  • 8/18/2019 SOMIPPRaspunsuri

    30/82

    end

    procedura ter$inare_scriere;

    begin

    scr:=false;

    if nc>0  then -- prioritate cititorilor care aşteaptă

    c_citse$nali%are

    else

    c_scrse$nali%are

    endif 

    end

    begin -- iniţializare

    scr:=false;

    nc%M<

    end

    end fic+

    Pot fi definite şi programate şi alte reguli de prioritate.

    I9. omunicarea între procese

    Procesele pot comunica prin accesarea unei mulţimi de variabile comune. Acest mod de comunicare esteslab structurat şi ineficace, deoarece el trebuie să asigure e&cluderea reciprocă a variabilelor. :ste utilizatdoar în cazuri speciale, cum ar fi un nucleu de sincronizare, unde e&cluderea mutuală globală este redusă lasecvenţe scurte şi bine prote(ate. Pentru cazuri generale sunt utilizate alte moduri de comunicare. #om

     prezenta mai înt)i o sc!emă de bază pentru comunicarea prin mesa(e - modelul producătorului şiconsumatorului, realizat cu a(utorul monitoarelor *H.I.H.;+. $ altă posibilitate, descrisă în H.I.H.D, constă îna considera operaţiile de comunicare ca un fel de mecanisme primitive de sincronizare. 6n H.I.H.H

     prezentăm o aplicaţie frecventă de comunicare ? modelul client-server.

    /

  • 8/18/2019 SOMIPPRaspunsuri

    31/82

    o operaţie =imposibilă> *depozitare într-un tampon plin sau preluare dintr-un tampon vid+ bloc!ează procesul, care încearcă să o e&ecute.

    ondiţiile de depăşire pot fi e&primate după cum urmează, not)nd prin n numărul de mesa(e din tampon,care nu au fost încă preluate%

    aut$depozitare' 5 n + 1  -- tamponul nu este plinaut$preluare' 5 n 4 = 77 tamponul nu este vid

    4espectarea acestor restricţii este asigurată de un monitor tampon, utilizat după cum urmează%

     proces producător proces consumator 

    ... ...

     produce$mesa8"emis'0 tampon.preluare$mesa8"recepţionat'0

    tampon.depozitare*mesa(emis+1 consumator*mesa(recepţionat+1

    "onitorul tampon poate fi elaborat, transcriind în mod direct autorizările de depăşire%

    ta$pon : monitor ;

    var  n : 0N;

    non_plin, non_"id  : condi&ie;

    procedura depo%itare($:$esa);

    begin

    if n=N then

    non_plina#teptareendif ;

    n:=n'1;

    introducere*m+1

    nonvid.semnalizare

    end

    procedura preluare( var  $:$esa);

    begin

    if n=0 then

    nonvid.aşteptare

    endif ;

     preluare($);

    n%Mn-;1

    nonplin.semnalizare

    end;

    begin -- iniţializaren:=0;

  • 8/18/2019 SOMIPPRaspunsuri

    32/82

    end

    end ta$pon

    Procedurile introducere$m' şi preluare$m' definesc politica de gestionare a tamponului şi reprezentareainternă a mesa(elor. Un caz frecvent este acela în care mesa(ele sunt reprezentate de elementele succesive

    ale unui tablou, administrat în mod circular. 6n acest caz mesa(ele sunt preluate în ordinea depozitării.Procedurile de gestionare a tamponului se vor scrie astfel%

    tpe $esa :

     ptr : 0N!1;

    var fa : arraptr of  $esa;

    top, coadă% ptr1

    procedura intrare($:$esa);

    begin

    facoad-:=$;

    coad-:=coad-'1 mod N 

    end;

    procedura ie#ire( var $:$esa);

    begin

    $:= fatop;

    top:=top'1 mod N 

    end;

    Această sc!emă poate fi e&tinsă pentru mai mulţi producători şi consumatori. rept efect, procedurilemonitorului asigură accesarea e&clusivă la mesa(e între producători şi consumători. Fotuşi, în cazul a maimulţi consumatori sc!ema nu permite direcţionarea unui mesa( către un consumator anumit% putem doargaranta, că un mesa( va fi preluat de un consumator *şi numai de unul singur+ fără a specifica concret decare.

    /;. Primitive de comunicare

    Sc!imbul de mesa(e între procese, în afară de funcţia de transmitere a informaţiei, poate fi utilizat şi pentruordonarea evenimentelor în cadrul unor procese distincte, deoarece emiterea unui mesa( precedeîntotdeauna recepţia sa. $peraţiile de sc!imb de mesa(e pot fi definite ca nişte mecanisme primitive şi să leutilizăm pentru sincronizarea proceselor.

    Primitivele de bază în comunicarea prin mesa(e sunt%

    emitere$mesa8destinaţie'

    recepţie*mesa(,origine+

    Specificările acestor primitive trebuie să precizeze%

    natura şi forma mesa(elor,

    modul de adresare a proceselor emiţătoare şi destinatare,

  • 8/18/2019 SOMIPPRaspunsuri

    33/82

    modul de sincronizare a acestor procese,

    tratarea erorilor.

    ;+ 'atura mesa(elor 

    6n conformitate cu nivelul de e&primare la care este definit mecanismul de comunicare, mesa(ele pot fispecificate de un tip, analogic obiectelor unui limba( sau prin lungimea fizică a lor. Cungimea poate ficonstantă sau variabilă. "ai frecvent sunt utilizate mesa(ele de lungime constantă, care pot fi create maisimplu, mesa(ele de lungime variabilă vor fi transmise prin referinţă, pas)nd adresa fizică sauidentificatorul informaţiei transmise.

    D+ "odul de adresare

    Procesele, care fac sc!imb de mesa(e, se pot desemna reciproc prin numele lor *desemnare directă+ sau potutiliza numele unui obiect intermediar ori cutie poştală *desemnare indirectă+. Aceste nume sunt folosite ca

     parametri origine şi destinaţie. Sc!ema a doua facilitează modificarea dinamică a intercone&iunilor proceselor sau c!iar componentele unei mulţimi de procese, care comunică.

    6n cazul desemnării directe parametrul origine a primitivei recepţie poate fi interpretat în două moduri% fie ca dată% receptorul specifică e&plicit că aşteaptă un mesa( de la un destinatar special *recepţie

    selectivă+,

    fie ca rezultat% receptorul primeşte un mesa( care i-a fost adresat împreună cu identitatea emiţătorului.

    6n cazul desemnării indirecte asocierea proceselor cutiilor poştale poate fi statică sau dinamică. 6n ultimulcaz, sunt utilizate două primitive conectare şi deconectare pentru ataşarea procesului la o cutie poştală *încalitate de receptor+ şi de abrogare a acestei ataşări, respectiv. 6n unele sisteme un receptor sau mai multe

     pot fi ataşate unei cutii poştale date1 cutiile poştale supuse unor asemenea restricţii sunt adesea numiteporţi. :ste posibilă şi situaţia inversă c)nd un proces poate fi asociat la mai multe porţi distincte. acă

    asocierea între procesul receptor şi poartă este statică, un nume de poartă specifică fără ambiguitate un proces receptor ca şi în metoda desemnării directe.

    H+ "oduri de sincronizare

    Pentru primitivele de comunicare pot fi specificate mai multe moduri de sincronizare. 6n caz general,operaţia de recepţie bloc!ează, în absenţa mesa(ului, receptorul. Unele sisteme pun la dispoziţie primitivecare dau posibilitatea să se determine dacă o cutie poştală este vidă, ceea ce permite evitarea blocării.Pentru emitere sunt utilizate două moduri de sincronizare%

    Sc!ema producător-consumator, în care cutia poştală este realizată printr-o zonă tampon. :miterea nueste blocantă, cu e&cepţia cazului în care tamponul este plin. olosirea tampoanelor de lungimevariabilă cu alocarea dinamică a locaţiunilor reduce probabilitatea blocării emiţătorului.

    Sc!ema rende*-vous, în care emiţătorul este blocat p)nă la preluarea mesa(ului de către receptor.Această sc!emă poate fi considerată caz limită a precedentei cu lungimea nulă a tamponului.

    6n fine, atunci c)nd un proces este asociat în recepţie la mai multe porţi, poate fi definit un mod desincronizare, zis aşteptare multiplă, în care sosirea unui mesa( la o oarecare din aceste porţi debloc!eazăreceptorul.

    I+ Fratarea erorilor 

    Scopul tratării erorilor este de a evita blocările infinite ale proceselor, care se pot produce în diversecircumstanţe%

    :miterea unui mesa( cu o destinaţie *proces sau poartă+ ine&istentă. 6n acest caz primitiva nu este blocantă1 eroarea este tratată prin emiterea unui cod de eroare sau printr-o deviere.

  • 8/18/2019 SOMIPPRaspunsuri

    34/82

    istrugerea unui proces de la care alte procese aşteaptă un mesa( sau un răspuns% procesele în aşteptaresunt blocate şi recepţionează un cod de eroare.

    Ultima situaţie nu este totdeauna detectabilă. $ te!nică uzuală constă în stabilirea unui interval de timpma&im de aşteptare a unui mesa( şi deblocarea procesului care aşteaptă la e&pirarea acestui interval *v.H.I./+.

    #om ilustra prin c)teva e&emple reprezentative utilizarea acestor mecanisme de comunicare.

    Exemplul 2.9;. Sistemul de operare F!ot! \8]. 6n acest sistem comunicarea foloseşte desemnareadirectă şi sincronizarea prin rendez-vous. "esa(ele sunt de lungime constantă. Sunt utilizate patru

     primitive%

    id:=send($essage, id_dest)

    emite procesului id_dest  un mesa(1 bloc!ează emiţătorul p)nă la primirea unui răspuns, transmis în$essage. Această primitivă indică identitatea procesului care a transmis răspunsul *sau nil , dacădestinatarul nu e&istă+.

    id:=recei"e($essage, id_orig)recepţionează un mesa(1 procesul origine poate să nu fie specificat. #aloarea transmisă este identitateaemiţătorului.

    repl.($essage, id_orig, id_dest)

    trimite un răspuns destinatarului specificat *care trebuie să-l aştepte+1 nu este blocantă1 fără consecinţe,dacă răspunsul nu era aşteptat.

     for/ard($essage, id_orig, id_dest)

    această operaţie non blocantă este utilizată de un proces după recepţionarea unui mesa( trimis de cătreid_orig , pentru ca să impună mesa(ul să a(ungă la id_dest , care are acum obligaţia de a răspunde luiid_orig . Z

    Exemplul 2.92. Sistemul de operare Uni& \9]. 6n sistemul Uni& comunicarea între procese utilizeazătampoane, numite pipes *tuburi+, administrate conform sc!emei producător-consumator. "esa(eletransmise sunt caractere. Un pipe *tub+ leagă un emiţător şi un receptor, cone&iunea fiind stabilită dinamic.Z

    Exemplul 2.93. 4endez-vous în limba(ul de programare Ada \;

  • 8/18/2019 SOMIPPRaspunsuri

    35/82

    +executare serviciu4  ...

    9poartă"client.emitere$rezultat':  ...

    endciclu 9poartă"client.recepţionarere$rezultat':

    Secvenţele din parantezele pătrate sunt facultative.

    Procesul server este asociat unei porţi, unde clienţii îşi depun cererile, trimiţ)nd cereri1 el este blocat at)tatimp c)t nu e&istă cereri de servicii în aşteptare.

    Serviciul cerut poate conţine trimiterea la client a rezultatului. 6n acest caz clientul trebuie să trimităserverului în cererea sa numărul unei porţi la care el se va bloca în aşteptarea rezultatului.

    ără a modifica sc!ema de mai sus putem introduce mai multe procese server ec!ivalente, oricare dintre elefiind în stare să satisfacă o cerere a unui serviciu. Aceste servere în recepţie vor fi asociate la una şi aceeaşicutie poştală.

    "odelul din H.I.D.; *alocarea resurselor banalizate+ şi modelul client-server de mai sus sunt reprezentative pentru două sc!eme de obţinere a unui serviciu cu a(utorul proceselor într-un sistem de operare% apelarea de

     procedură într-un monitor sau activarea uni proces server ciclic prin emiterea mesa(elor. Alegerea întreaceste două sc!eme este dictată de considerente de eficacitate *sc!ema serverului este preferată, atuncic)nd e&istă paralelism real între client şi server+ sau de uniformitate a structurii.

    /H. Administrarea intrărilor-ieşirilor 

    #om arăta cum poate fi integrată administrarea intrărilor-ieşirilor în mecanismul monitoarelor. Prezentămmai înt)i gestionarea unui periferic izolat, apoi, ca e&emplu de aplicaţie, principiul unei gestionăritamponate a intrărilor-ieşirilor.

    /I. Administrarea unui periferic

    iecărui periferic îi este asociat un monitor procedurile e&terne ale căruia permit e&ecutarea intrărilor-ieşirilor la acest periferic. Acest monitor are următoarea formă generală *pentru un sistem mono-utilizator+%

     perif: monitor ;

    var ... sfr_sc+i$b_i,: condi&ie;

    Rdeclaraţiile variabilelor de stare ale perifericului

    !!!

    procedura sc+i$b_i();

    begin

    ;

    if starea preg then

    endif ;

    lansare_transfer_i(para$etri);

  • 8/18/2019 SOMIPPRaspunsuri

    36/82

    sfr_sc+i$b_ia#teptare; 77 întrerupere demascată

    if starea o2 then -- în timpul aşteptării

    endif ;

    end;

    ...

     begin

    end

    end perif 

    Procedura lansare_transfer_i  pregăteşte programul pentru sc!imbul cerut *construirea programuluicanalului sau al A" - Acces irect la "emorie, ţin)nd cont de parametrii sc!imbului+ şi lanseazăe&ecuţia sa *instrucţiunea S@$ ? Start @nput $utput+. Procesele apelante aşteaptă sf)rşitul transferuluidatorită condiţiei sfr_sc+i$b_i . Sosirea unei întreruperi, care marc!ează sf)rşitul sc!imbului de tip i 

     provoacă în mod automat e&ecutarea următoarei secvenţe%

    if sfr_sc+i$b_i"id then

    else sfr_sc+i$b_ise$nali%are

    endif 

    Pentru un proces care e&ecută o intrare-ieşire apel)nd o procedură de sc!imb a acestui monitor, totul se

     petrece ca şi cum sc!imbul este sincron% la returul din procedură, informaţia a fost efectiv transferată *sau oeroare a fost detectată şi semnalizată+. "ecanismul de blocare evită aşteptarea activă şi procesorul poate fiutilizat în timpul transferului de un alt proces.

    //. Luferizarea imprimării

    Putem elabora acum programul administrării tamponate a imprimării, descrise în H.;. Avem nevoie de treitampoane tm( şi tm) de capacitate 1( şi 1) în memoria centrală şi unul pe disc, td , de lungime 1disc.Pentru simplitate presupunem, că transferurile se fac cu blocuri constante egale cu o linie. iecare tamponeste comandat de un monitor cu aceeaşi structură care are rolul de a asigura e&cluderea mutuală şisincronizarea condiţiilor tampon plin şi tampon vid.

    Aceste tampoane, numite tampon( tampon) şi tampon"disc au aceeaşi structură cu tamponul descris înH.I.H, înlocuind 1 cu 1( 1) şi 1disc, respectiv. efinind tm( tm) şi td ca tablouri de elemente delungimea unei linii şi pointerii top şi coadă locali fiecărui monitor, procedurile de depozitare şi preluare potfi%

    Rpentru tamponul ( Rpentru tamponul )

    procedura intrare$l5linie'0 procedura intrare$l5linie'0

    tm;\coadă] %M l1 tmD\coadă] %M l1

  • 8/18/2019 SOMIPPRaspunsuri

    37/82

    coadă 5- coadă6( mod 1( coadă 5- coadă6( mod 1)

    procedura ieşire$ var l5linie'0 procedura ieşire$ var l5linie'0

    l %M tm;\top]1 l %M tmD\top]1

    top 5- top6( mod 1( top 5- top6( mod 1)

    6n monitorul tampon"disc operaţiile de depozitare şi preluare sunt intrări-ieşiri, care utilizează monitorul degestionare a discului%

    procedura intrare$l5linie'0

    disc.scriere*l,td\coadă]+1

    coadă 5- coadă6( mod 1disc

    procedura ieşire$ var l5linie'0

    disc.scriere*l,td\top]+1

    top 5- top6( mod 1discProgramul de intrare-ieşire este realizat prin cooperarea a patru procese programul cărora este prezentatsc!ematic mai (os *trei procese ale sistemului de operare şi procesul utilizator+. Pentru a simplificae&punerea au fost omise secvenţele de tratare a erorilor şi am admis, că sistemul funcţionează în regim

     permanent fără limitarea numărului de linii la imprimare. Programele folosesc trei monitoare de gestionarea perifericelor *tampon( tampon) şi tampon"disc+ şi două monitoare de gestionare a perifericelor *impr şi disc+, construite în baza modelului perif , prezentat în H.I.I.;

     proces imprimare linie  proces scriere"disc  proces citire"disc

    ciclu ciclu ciclu

    tampon).preluare$l'0 tampon(.preluare$l'0 tampon"disc.citire$l'0impr.scriere*l+1 tampondisc.scriere*l+1 tamponD.depozitare*l+1

    endciclu endciclu endciclu

    @mprimarea unei linii este cerută de procedura%

    procedura scriere"linie$l5linie'0

    tampon;.depozitare*l+

    Putem constata, că programele de mai sus sunt mult mai simple dec)t cele care folosesc direct întreruperile.Structura modulară, introdusă de monitoare permite separarea totală a gestionării tampoanelor de cea a

     perifericelor. Sc!imbarea capacităţii unui tampon modifică doar monitorul care comandă acest tampon1înlocuirea unui periferic cu un altul implică rescrierea doar a monitorului, care comandă acest periferic.

    /3. Sincronizarea temporală

    Sincronizarea temporală face ca timpul să intervină nu numai ca mi(loc de ordonare a evenimentelor, dar şica măsură de durată absolută. Acest mod de sincronizare este utilizat în aplicaţiile de timp real, care conţininteracţiuni cu organe e&terne *comanda proceselor industriale, de e&emplu+. Sincronizarea temporalăsolicită folosirea unui ceas, realizat prin intermediul unui oscilator cu uartz, care emite impulsuri laintervale regulate. Aceste impulsuri pot fi utilizate pentru a declanşa o întrerupere la fiecare impuls sau

     pentru a decrementa în mod automat conţinutul unui registru contor, o întrerupere este declanşată atuncic)nd conţinutul acestui registru atinge valoare

  • 8/18/2019 SOMIPPRaspunsuri

    38/82

    #om utiliza a doua metodă de funcţionare. Unitatea de timp folosită este perioada ceasului.

    Pentru rezolvarea problemelor principale de sincronizare temporală poate fi folosită primitiva suspendare$t' care are ca efect blocarea procesului apelant pentru o durată *fizică+ egală cu t  unităţi detimp. Prezentăm principiul de realizare a acestei primitive cu a(utorul unui ceas.∗

    Pentru rezolvarea acestei probleme vom fi nevoiţi să întreţinem% valoarea a1solută a timpului *ora a1solută+, care măsoară la orice moment timpul trecut de la o

    instanţă iniţială,

    un registru, adică o listă a proceselor care aşteaptă deblocarea, ordonat conform timpului absolut dedeblocare.

    Foate procesele, care apelează primitiva suspendare$t' sunt inserate în registru în poziţia, care corespundeorei sale absolute de deblocare.

     'umim ora"de"bază ora absolută a ultimei înnoiri a ceasului, adică a ultimei iniţializări a contorului1 fiet"aşt  ultima valoare încărcată. $ra absolută e&actă este dată la fiecare moment de timp de relaţia

    ora_e*act- = ora_de_ba%- ' t_a#t ! contor 

    *t"aşt 7 contor este timpul care s-a scurs după ultima înnoire a contorului+. e la o întrerupere de ceas *latrecerea contorului prin

  • 8/18/2019 SOMIPPRaspunsuri

    39/82

    var contor, t_a#t;

    oradebază, orae&actă% integer 

    deblocare : arraproces of  condi&ie;

    Rdeclaraţiile firului de aşteptare şi procedurilor sale de acces

    procedura suspendare(durata:integer);

    var proc: descriptor;

    begin

    ora_e*act-:=ora_de_ba%-'t_a#t!contor;

     procora_debloc-rii:=ora_e*act-'durata -- ora absolută a deblocării

     proci := p; -- p este procesul apelant

    intrare(proc,fir) -- ordonare de ora"deblocării

    if proc=pri$ul(fir) then

    t_a#t:=contor:=durata;

    oradebază%Morae&actă1

    endif ;

    deblocarepa#teptare

    end;

    procedura tratare_ntrerupere; -- contor în zero

    var proc: descriptor;

    deltat%integer1

    begin

    ie#ire(proc,fir); !! primul din firul de aşteptare

    oradebază %M orae&actăOtaşt1

    if "id(fir) then

    delta_t := t$a* 

    else

    delta_t := pri$ul(fir)ora_debloc-rii 3 ora_de_ba%-;

    endif ;

    t_a#t := contor := delta_t; !! deblocarea viitoare

    deblocareprocise$nali%are

    end;

    begin

    ora_de_ba%- := ;

    contor %M taşt %M tma&1

    intrare*paznic,fir+

  • 8/18/2019 SOMIPPRaspunsuri

    40/82

    end

    end ceas

    "etoda de mai sus *întreţinerea unui registru şi a orei absolute+ este utilizată pentru realizarea programelorde simulare discretă. Un atare program realizează un model în care diferite procese, e&ecutate în regim

     pseudo-paralel, reprezintă activităţi care se derulează în paralelism real. Fimpul utilizat este un timpsimulat, adică o var