capitolul 3 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Capitolul 3 PowerPoint Presentation
Download Presentation
Capitolul 3

Loading in 2 Seconds...

play fullscreen
1 / 87

Capitolul 3 - PowerPoint PPT Presentation


  • 205 Views
  • Uploaded on

Capitolul 3. Multiprogramare si Multitasking. Multiprogramare si Multitasking (1). Mijloace de sprijin pentru multiprogramare : a) salvarea si restaurarea starii programelor pentru a permite intreruperea si reluarea corecta a executiei, cerute de executiile intercalate;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Capitolul 3' - kareem-wright


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
capitolul 3

Capitolul 3

Multiprogramare si Multitasking

multiprogramare si multitasking 1
Multiprogramare si Multitasking (1)

Mijloace de sprijin pentru multiprogramare :

  • a)salvarea si restaurarea starii programelor pentru

a permite intreruperea si reluarea corecta a executiei, cerute de executiile intercalate;

  • b) excluderea mutuala, care permite utilizatorilor sa foloseasca in comun o resursa, evitand problemele generate de posesia multipla a resursei;
multiprogramare si multitasking 2
Multiprogramare si Multitasking (2)
  • c) sincronizarea, pentru a coordona activitatile

taskurilor care interactioneaza ;

  • d) activarea si dezactivarea taskurilor,

permitand pornirea si oprirea unui anumit task

mijloace de sprijin pentru multiprocessing
Mijloace de Sprijin pentru Multiprocessing
  • salvarea si restaurarea starii

programelor pentru a permite

intreruperea si reluarea corecta

a executiei, cerute de executiile

intercalate;

  • excluderea mutuala, care permite utilizatorilor sa foloseasca in comun o resursa, evitand problemele generate de posesia multipla a resursei;
  • sincronizarea, pentru a coordona activitatile taskurilor care interactioneaza ;
  • activarea si dezactivarea taskurilor, permitand pornirea si oprirea unui anumit task.
proces
Proces

Fiecare proces este compus din trei parti principale:

  • O baza de date, pastrata, de regula,

in memoria principala, care contine

toate datele si spatiul de memorie

necesare pentru reprezentarea

variabilelor programului, ca si

celelalte variabile cerute de

executarea calculelor aferente.

  • Codulcare implementeaza algoritmul executat de

catre proces.

  • Mediulin care se executa procesul. Termenul de

"mediu" indica o serie de atribute ale procesului, adesea gestionate de catre sistemul de operare, care sunt

necesare executiei corecte. Exemple de atribute pot fi descriptorii zonelor de memorie rezervate procesului, cu drepturile de acces pentru fiecare din ele

starile procesului
Starile Procesului
  • Valorile datelor ce se salveaza. De obicei acestea sunt continuturile registrelor, care se afla intr‑o zona

considerata nesigura intrucat noul proces, prin utilizarea registrelor, distruge continutul acestora. In clasa

registrelor intra, desigur,indicatorul stivei si indicatorii de conditie.

  • Contorul programului, indicand prima instructiune ce

trebuie executata la reluarea rularii procesului.

  • Toate registrelecare contin informatii ce descriu mediul

de executie al procesului, incluzand, eventual, registrele unor dispozitive externe, cum sunt unitatea de gestiune a memoriei si coprocesorul matematic (unitatea de calcul in virgula mobila).

excluderea mutuala
Excluderea Mutuala
  • Executia paralela sau pseudoparalela a mai

multor procese conduce, in mod inevitabil, la concurenta pentru resursele sistemului,

resurse ce pot fi solicitate de mai mult de un

proces pentru terminarea taskului ce i s‑a asignat.

  • Fenomenul este evident in

cazul sistemelor paralele,

dar apare ca paradoxal

pentru sistemele

pseudoparalele.

concurenta in sisteme pseudoparalele 1
Concurenta in Sisteme Pseudoparalele (1)
  • Se considera doua procese A si B, care au nevoie de o resursa a sistemului.
  • Starea acesteia, libera (free) sau ocupata (busy), este memorata in locatia de memorie X.
  • X = 0 indica resursa libera.
  • Se considera o masina ipotetica, folosind un limbaj de asamblare ipotetic, dar evident ca mnemonica, ruland, pentru fiecare proces, urmatorul cod:

test X; inscrie indicatorul de conditie conform valorii memorate in X

bnz after; salt la eticheta afterdaca resursa este ocupata

set X; inscrie 1 in X pentru a semnala ca resursa a devenit ocupata

concurenta in sisteme pseudoparalele 2
Concurenta in Sisteme Pseudoparalele (2)

Din exemplu rezulta ca este necesar un mecanism de control al accesului la resursele critice. Solutia problemei excluderii mutuale trebuie sa satisfaca urmatoarele criterii:

  • numai un singur proces poate utiliza, la un anumit moment de timp, resursa in discutie;
  • cand mai multe procese incearca, simultan, obtinerea resursei, mecanismul de control trebuie sa aloce resursa numai unuia din procese si intr‑un timpfinit;
  • cand un proces detine o resursa,timpul de posesie trebuie sa fie limitat; la expirarea lui, resursa trebuie sa fie eliberata;
  • procesele asteptand disponibilitatea resursei trebuie sa nu iroseasca timpul unitatii centrale, deci trebuie suspendate.
regiuni critice
Regiuni Critice
  • Dijkstra

Proprietatile regiunii critice sunt urmatoarele:

a) cel multun proces executa declaratiile asociate regiunii critice;

b) un proces care doreste sa execute declaratiile asociate regiunii critice va dobandi acest drept intr‑un timp finit;

c) un proces care doreste sa execute declaratiile unei regiuni critice o face intr‑un timp finit.

mecanismul test and set 1
Mecanismul test-and-set (1)

di; dezactivarea sistemului de intreruperi

move A,X ; copiaza X in A

set X; inscrie X cu 1

ei; reactivarea sistemului de intreruperi

test A; testarea vechii valori a lui X, acum cea a variabilei A.

mecanismul test and set 2
Mecanismul test-and-set (2)

tas A, X

testeaza si inscrie cu 1 pe X, copiaza vechea sa valoare in A, totul intr-un singur ciclu instructiune (normal – secventa “neintreruptibila”)

structuri multiprocesor si excludere mutuala
Structuri Multiprocesor si Excludere Mutuala
  • De regula, magistrala ramane in posesia unui utilizator pentru timpul necesar efectuarii unui singur ciclu de acces la memorie, dupa care este eliberata.
  • O astfel de tehnica de atribuire a magistralei poate conduce la erori chiar in conditiile existentei instructiunii tas, a carei executie necesita doua cicluri de acces la memorie pentru completare:
    • unul de citire, care copiaza X in A,
    • un al doilea de inscriere, care inscrie cu1 variabila X.
implementarea regiunilor critice vaste
Implementarea Regiunilor Critice Vaste
  • Criteriile de caracterizare a unei solutii rezonabile a problemei excluderii mutuale prescriu un timp finit de asteptare si un comsum minim din timpul unitatii centrale de prelucrare.
  • Prima solutie consta in a permite unui proces sa cicleze in jurul aceluiasi test pana la eliberarea regiunii. In tot timpul incercarilor nereusite procesorul este mentinut ocupat, desi ar fi putut fi utlizat pentru scopuri mai lucrative, ruland procese care nu sunt in asteptarea intrarii in regiunea critica (busy waiting).

SOLUTIA ESTE INACCEPTABILA!

semafoare
Semafoare
  • Servesc la sincronizarea proceselor.
  • Semnalele de sincronizare sunt cerute de faptul ca vitezele relative ale celor doua procese sunt, in general, necunoscute.
  • Intr‑un sistem cu procese concurente durata de executie a unei secvente de instructiuni depinde de:
    • numarul si caracteristicile celorlalte procese concurente;
    • evenimente externe, al caror numar si moment al aparitiei sunt necunoscute.
semafoare solutie
Semafoare - Solutie
  • Solutia clasica a problemei sincronizarii intre doua sau mai multe procese, fara schimb de date, se bazeaza pe utilizarea semafoarelor.
  • Notiunea a fost introdusa

de catre Dijkstra, o serie

de alti cercetatori

continuandu‑i lucrarile.

edsger wybe dijkstra 2
Edsger Wybe Dijkstra (2)
  • Edsger Wybe Dijkstra a fost unul dintre cei mai influenti membri

ai generatiei fondatoare a informaticii. Printre domeniile in care contributiile sale stiintifice sunt fundamentale se numara:

    • Proiectarea algotimilor
    • Limbaje de programare
    • Proiectarea programelor
    • Sisteme de operare
    • Procesare distribuita
    • Specificatie si verificare formala
    • Proiectarea argumentelor matematice
  • In plus, Dijkstra a fost adanc preocupat de predare si de relatiile dintre informatica academica si industria software.
  • In cei peste 40 de ani de informatician, in care a ocupat posturi

atat in educatie, cat si in industrie, Dijkstra a adus contributii care

au fost rasplatite cu multe premii si titluri, inclusiv cea mai inalta distinctie din computer science, Premiul ACM Turing.

semafoare solutie 1
Semafoare – Solutie (1)
  • In principiu, semaforul este caracterizat de o variabila x, careia i se asociaza doua proceduri: P(x) si V(x) (unii autori le denumesc "signal" si, respectiv, "wait") (Verhogen (V) = to raise, to increase; Prolagen (P) = a neologism coming from To try and lower) .
  • O alta caracteristica a semaforului este numarul c(x) maxim de semnale ce pot fi acceptate de catre semafor (“capacitate”).
  • Functionarea corecta a semaforului este dictata de regulile numite invariantii comunicatiei (communication invariants).
semafoare solutie 2
Semafoare – Solutie (2)
  • Fie s(x) si r(x) numarul de semnale trimise, respectiv primite de catre semaforul x.
  • O comportare corecta presupune respectarea relatiei (“invariantul de comunicatie”)
  • Uneori, este utila asignarea unei valori initiale i(x) unui semafor inaintea declansarii operatiilor de sincronizare intre procese. In acest caz invariantul de comunicatie se rescrie astfel:
semafoare solutie 3
Semafoare – Solutie (3)
  • Operarea celor doua proceduri asociate P si V trebuie sa satisfaca anumite reguli, care definesc modul in care semaforul sincronizeaza executia procesului.
semafoare solutie operatia p
Semafoare – Solutie – Operatia P
  • Operatia P efectuata asupra semaforului cand

s(x) + i(x) = r(x) + c(x)

produce

      • suspendarea procesului;
      • inserarea lui in sirul de asteptare asociat semaforului, incrementarea lui s(x) nefiind posibila.
  • Daca

s(x) + i(x) < r(x) + c(x)

se incrementeaza s(x).

Suplimentar, daca exista procese asteptand la semafor, unuiadintre ele i se permite continuarea si are loc incrementarea lui r(x).

semafoare solutie operatia v
Semafoare – Solutie – Operatia V
  • Operatia V efectuata asupra semaforului pentru care

r(x) < s(x) + i(x)

are ca rezultat incrementarea lui r(x).

    • Suplimentar, daca

s(x) + i(x) = r(x) + c(x)

si exista procese asteptand la semafor, unuia dintre acestea i se permite continuarea si are loc incrementarea

lui s(x).

  • Daca procedura se executa cand

r(x) = s(x) + i(x),

procesul este suspendat si inserat in sirul de

asteptare asociat semaforului, incrementarea lui r(x)

nefiind posibila.

semafoare implementare 1
Semafoare – Implementare (1)
  • Pentru implementarea regulilor de sincronizare

este necesara o unica valoare intreaga

n(x) = s(x) + i(x) ‑ r(x)

  • Din invariantii de comunicatie se deduce ca :

0 <= n(x) <= c(x)

  • In plus, valoarea initiala a lui n(x) este i(x)

pentru a asigura corectitudinea operatiilor.

  • Aceasta regula rezulta din definirea lui n(x) si

impunand: s(x) = r(x) = 0

  • Intrucat sirurile de asteptare sunt incluse in

regulile de sincronizare, structurile de date

utilizand procedurile P si V trebuie sa posede

anumite caracteristici necesare implementarii acestor siruri.

semafoare implementare 2
Semafoare – Implementare (2)
  • Aparent, sunt necesare doua tipuri de siruri:
    • unul pentru procesele suspendate in timpul executarii operatiei P,
    • celalalt pentru procese suspendate in timpul executiei operatiei V.
  • Desi distincte din punctul de vedere logic, cele doua siruri pot fi implementate utilizand o singura structura; este usor de demonstrat ca, daca c(x) = 0, este imposibil a avea doua procese asteptand simultan in ambele siruri.
semafoare implementare 3
Semafoare – Implementare (3)
  • Pentru implementarea regulilor de sincronizare este necesara o unica valoare intreaga

n(x) = s(x) + i(x) ‑ r(x)

  • Din invariantii de comunicatie se deduce ca :

0 < n(x) < c(x)

  • In plus, valoarea initiala a lui n(x) este i(x) pentru a asigura corectitudinea operatiilor.
  • Aceasta regula rezulta din definirea lui n(x) si

impunand: s(x) = r(x) = 0

  • Intrucat sirurile de asteptare sunt incluse in regulile

de sincronizare, structurile de date utilizand

procedurile P si V trebuie sa posede anumite caracteristici necesare implementarii acestor siruri.

semafoare implementare 4
Semafoare – Implementare (4)

struct x

{

int c; //capacitatea semaforului

int n; //valoarea curenta a variabilei

int v; //variabila blocare (boolean)

int waitqueue; //stare sir la semafor (boolean) //(“Coada”!)

}

comunicatia intre procese
Comunicatia Intre Procese

Cutii Postale (Mailboxes)

  • In unele cazuri, interactiunea intre procese cere efectuarea unui schimb de date, suplimentar semnalelor de sincronizare, intre procesele care coopereaza.
  • Solutia clasica a acestor probleme foloseste un tampon pentru mesaje (message buffer), numit si cutie postala (mailbox).
  • Cutia postala reprezinta o extensie a semafoarelor, deoarece ea permite asocierea unui set de date, numit mesaj, fiecarei operatii de semnalizare.
cutii postale 1
Cutii Postale (1)
  • O cutie postala se comporta in acelasi mod cu un semafor, cu exceptia manipularii mesajelor.
  • In consecinta, se folosesc aceleasi reguli de sincronizare si aceiasi invarianti.
  • Operatiile trebuie modificate pentru a se putea manipula mesajele care se transmit sau se receptioneaza.
  • Noile operatii sunt

send(x,m)

si

receive(x,m),

corespunzand lui P si respectiv, V.

  • x este identificatorul cutiei postale iar m este cel al mesajului.
cutii postale 2
Cutii Postale (2)
  • Cand se efectueaza o operatie de tip send, mesajul se introduce in cutia postala, daca aceasta nu este plina.
  • Cand se efectueaza o operatie de tip receive se extrage primul mesaj din cutia postala, daca aceasta nu este vida.
  • In mod obisnuit, ordonarea mesajelor in cutia postala este similara cu cea a unei stive de tip FIFO: operatia receive extrage din stiva cel mai vechi mesaj pe care aceasta il contine.
  • Sunt posibile si organizari care asigneaza prioritati mesajelor continute de cutia postala.
sincronizarea proceselor 1
Sincronizarea Proceselor (1)
  • Se considera o unica linie tehnologica compusa din doua masini unelte, masina 1 si masina 2, si un unic tampon B de capacitate c, plasat intre cele doua masini.
  • Operatia este astfel organizata incat masina 1 primeste o piesa si o prelucreaza.
  • Cand operatia este completa, masina 1 plaseaza piesa in tampon, cu conditia ca acesta sa nu fie plin, dupa care obtine o noua piesa, daca este disponibila, si repeta aceeasi operatie.
  • Cand masina 1 incearca sa plaseze o piesa in tamponul plin functionarea sa este blocata, pentru ca trebuie sa astepte pana cand este spatiu in acesta, ceea ce ii permite sa depuna piesa prelucrata si sa se ocupe de o alta.
sincronizarea proceselor 2
Sincronizarea Proceselor (2)
  • In cealalta parte a tamponului, masina 2 se comporta intr‑un mod similar.
  • Intai, ea incearca sa obtina din tampon o piesa pentru prelucrare.
  • Daca acesta nu este gol, masina 2 extrage o piesa, pe care o prelucreaza.
  • In caz contrar asteapta pana cand tamponul contine cel putin o piesa.
  • Cele doua masini sunt comandate de doua procese diferite, A si B, executate de catre aceeasi unitate centrala de prelucrare.
  • Se pune problema sincronizarii functionarii lor, pe baza continutului tamponului.
schita procesului a
Schita Procesului A

while (true) do

{

obtine o noua piesa;

prelucreaza piesa;

P(x); /* P blocheaza A cand tamponul este plin*/

pune piesa in tampon;

}

schita procesului b
Schita Procesului B

while (true) do

{

V(x); /* V blocheaza B cand tamponul este gol*/

obtine o piesa din tampon;

prelucreaza piesa;

pune piesa la iesire;

}

sincronizarea proceselor 3
Sincronizarea Proceselor (3)
  • Operatia P blocheaza procesul A cand tamponul este plin, in timp ce operatia V blocheaza procesul B cand acesta este vid.
  • Pe de alta parte, P porneste procesul B cand tamponul este gol si B asteapta sa prelucreze, iar V va porni procesul A cand tamponul este plin si A asteapta sa stocheze o piesa in tampon.
comunicatia intre procese 1
Comunicatia Intre Procese (1)
  • Exemplul precedent

poate fi modificat

pentru a demonstra

ca doar semafoarele

nu sunt suficiente

pentru implementarea

simpla a sincronizari.

  • In exemplul modificat se considera ca piesele nu sunt identice. Ele fac parte din patru clase distincte, identificate prin numerele 1,2,3,4.
  • De asemenea, se impune cerinta suplimentara ca piesele sa fie prelucrate in aceeasi secventa de catre ambele masini.
comunicatia intre procese 2
Comunicatia Intre Procese (2)
  • Sincronizarea presupune si un schimb de date intre procesele care coopereaza, intrucat informatia vehiculata nu indica doar introducerea in tampon a unei piese sau extragerea unei piese din acesta.
  • Orice semnal de inserare trebuie sa contina date identificand tipul piesei, care trebuie citite cand piesa este extrasa.
comunicatia intre procese 3
Comunicatia Intre Procese (3)
  • Aceste considerente recomanda folosirea unei cutii postale, in care mesajele sunt intregi indicand tipul piesei asociate.
schita procesului a1
Schita Procesului A

while (true) do

{

obtine o piesa si transcrie in m tipul ei;

case m of

{

1: prelucrare de tip 1;

2: prelucrare de tip 2;

3: prelucrare de tip 3;

4: prelucrare de tip 4;

}

send(x,m);

pune piesa in tampon;

}

schita procesului b1
Schita Procesului B

while (true) do

{

obtine o piesa si transcrie in m tipul ei;

send(x,m);

case m of

{

1: prelucrare de tip 1;

2: prelucrare de tip 2;

3: prelucrare de tip 3;

4: prelucrare de tip 4;

}

pune piesa la iesire;

}

mailbox comentarii 1
Mailbox – Comentarii (1)
  • Sincronizarea se efectueaza la fel ca in cazul precedent, dar procesul A transfera catre B informatii privind tipul piesei.
  • Daca organizarea cutiei postale este de tipul FIFO, piesele sunt prelucrate in aceeasi secventa de catre ambele masini, deoarece procesul B primeste mesajele in ordinea in care ele au fost emise de catre A.
  • Nu s‑au facut ipoteze privind vitezele relative ale celor doua procese, sau asupra sosirii pieselor la masina 1, element esential in intregul proces de productie. Acest fapt garanteaza ca solutia bazata pe semafoare sau cutii postale este corecta indiferent de viteza de executie.
mailbox comentarii 2
Mailbox – Comentarii (2)
  • Mai exista si alte posibile extensii ale exemplului, printre care si considerarea situatiei in care mai multe masini identice executa munca masinii 1 si plaseaza rezultatele in acelasi tampon, din care mai multe masini, operand identic cu masina 2, extrag din tampon, in vederea prelucrarii, elementele existente.
  • In acest caz este suficient a dispune de un singur proces A pentru comanda unei masini de tipul 1, si de un singur proces B pentru comanda masinii de tipul 2.
  • Sincronizarea se poate face, de asemenea, cu ajutorul semafoarelor si al cutiilor postale.
  • Se deduce ca mecanismele descrise functioneaza corect si in cazul unor producatori si consumatori multipli.
planificarea proceselor scheduling 1
Planificarea Proceselor (Scheduling) (1)
  • Gestionarea unitatilor

centrale de prelucrare

ale unui sistem constituie

activitatea esentiala a

unui sistem de operare

multitasking.

  • Activitatea de planificare a procesorului poate fi divizata in doua clase diferite:
      • planificarea de nivel inalt sau pe termen lung
      • planficarea de nivel redus sau pe termen scurt.
  • Prima se ocupa cu introducerea in sistem a programului utilizatorului si cu secventierea diferitelor procese care il compun.
planificarea proceselor scheduling 2
Planificarea Proceselor (Scheduling) (2)
  • Intrucat planificarea de nivel inalt se poate realiza sub forma unui proces (un proces al sistemului, mai curand decat al utilizatorului), implementarea se face, practic, prin program, si ea nu va fi discutata in cele ce urmeaza.
  • Planificarea de nivel redus se ocupa de secventierea executiei proceselor prezente in sistem la un anumit moment de timp si este cu mult mai apropiata de hardware.
  • Planificarea de nivel redus constituie subiectul celor ce urmeaza. Termenul "planificarea proceselor" se refera la un astfel de tip de planificare.
starile unui proces 1
Starile Unui Proces (1)
  • Modul tipic de abordare a problemei planificarii proceselor se bazeaza pe asocierea unei anumite starifiecarui proces din sistem.
  • In functie de tipul de calculator si sistem de operare, se pot identifica un numar de stari ale procesoarelor, ca si un numar de definitii ale acestor stari.
starile unui proces 2
Starile Unui Proces (2)
  • In rulare(running): Un proces in aceasta stare este executat de catre CPU sau de catre o CPU a sistemului. De aceea, se considera ca are o prioritate superioara altor procese gata de rulare;
  • Gata de rulare (ready): Un proces in aceasta stare este gata de a fi rulat, dar nu este executat, deoarece prioritatea sa este mai mica decat a proceselor aflate in rulare. In aceasta stare, toti parametrii asociati procesului si care influenteaza decizia de planificare sunt cunoscuti planificatorului;
starile unui proces 3
Starile Unui Proces (3)
  • In asteptare (waiting): Un proces aflat in aceasta stare nu poate fi executat, intrucat el asteapta producerea unui eveniment special in sistem, a carui aparitie va pune procesul in starea gata de rulare;
  • Activ(active): Un proces in aceasta stare nu poate fi considerat pentru executie, intrucat el are nevoie de o comanda speciala pentru a trece, in functie de prioritate, fie in starea in rulare, fie in starea gata de rulare;
starile unui proces 4
Starile Unui Proces (4)
  • Inactiv (inactive): Un proces aflat in aceasta stare nu poate fi planificat, pentru ca, desi este prezent in sistem, are nevoie de o comanda explicita din partea unuia dintre procesele care se executa, sau din partea planificatorului, pentru a intra in starea activa si pentru a i se asigura parametrii de planificare.
diagrama starilor proceselor 2
Diagrama Starilor Proceselor (2)

A. Starea inactiva

  • Aceasta stare constituie o interfata intre planificatorul pe termen lung si planificatorul pe termen scurt: un proces este creat de catre planificatorul pe termen lung si este introdus in starea inactiva. Un proces poate fi inlaturat din sistem, prin distrugere, daca planificatorul pe termen lung considera ca nu este necesara prelucrarea de catre sistem a procesului inactiv. Un procesinactiv poate fi activatsi i se pot asigura parametrii ceruti de algoritmul de planificare pe termen scurt. Realizarea acestei tranzitii se face la cererea explicita a procesului aflat in rulare sau a planificatorului
diagrama starilor proceselor 3
Diagrama Starilor Proceselor (3)
  • Tranzitia in sens opus se poate face numai cand procesul este in stareaactiva. In acest caz, se emite o cerere explicita de catre procesul aflat in rulare (eventual ‑ o rutina de planificare), folosita pentru dealocarea intregii structuri de comanda (cum este descriptorul procesului) folosit de catre planificatorul pe termen scurt.
  • In general, procesele ce revin in stareainactiva sunt evacuate din sistem, intrucat ele s‑au executat cu succes sau au esuat, asa ca rularea lor nu mai este necesara.
diagrama starilor proceselor 4
Diagrama Starilor Proceselor (4)

B. Starea activa

  • Un proces in starea activa are alocata toata structura de comanda ceruta de catre planificator, deci procesul este gata sa concureze pentru obtinerea CPU. Totusi, numai ca urmare a unei comenzi explicite procesul este transpus in starea gata de rulare sau in rulare, dupa cum prioritatea procesului este inferioara sau superioara celei a procesului aflat in rulare .
diagrama starilor proceselor 5
Diagrama Starilor Proceselor (5)
  • Cand un proces comuta din starea activa in cea gata de executie si, apoi, in starea de executie, el este executat de la inceput; contorul programului va fi initializat cu adresa punctului de intrare a programului principal executat de catre proces.
  • Daca un proces concureaza de doua ori pentru obtinerea CPU, el este reinitializat de fiecare data cand paraseste starea activa. Acest tip de comutare in starea gata de rularesau in cea de rulare este diferit de cel de parasire a starii de asteptare, caz in care procesul nu este reinitializat, ci executia sa reluata prin restaurarea starii la momentul la care procesului i s‑a luat accesul la CPU.
diagrama starilor proceselor 6
Diagrama Starilor Proceselor (6)
  • Suplimentar utilizarii ca stare intermediara intre lumea exterioara si concurenta pentru CPU, starea activa poate fi folosita pentru relansarea unui proces care a fost afectat de o eroare reparabila, sau pentru executarea proceselor care necesita mai multe executii.
diagrama starilor proceselor 7
Diagrama Starilor Proceselor (7)

C. Starea de asteptare

  • Singurul mod de intrare in

starea de asteptare consta

in executia unei actiuni de

suspendare cand procesul

se afla in starea in rulare.

Operatiile tipice producand

suspendarea procesului sunt:

  • tentativa de a intra intr‑o regiune critica ocupata;
  • semnalizarea la un semafor plin;
  • transmiterea unui mesaj catre o cutie postala plina;
  • primirea unui semnal de la un semafor gol;
  • primirea unui mesaj de la o cutie postala vida
diagrama starilor proceselor 8
Diagrama Starilor Proceselor (8)
  • Orice proces care incearca sa efectueze una dintre operatiile enumerate nu mai poate continua sa fie executat pana in momentul in care entitatea (regiune critica, semafor sau cutie postala) si‑a schimbat starea, ceea ce permite reluarea procesului
diagrama starilor proceselor 9
Diagrama Starilor Proceselor (9)
  • Operatiile efectuate de catre procesul in rulare, care ar putea comuta un proces din starea de asteptare in cea gata de rulare sau chiar in starea inrulare, sunt:
    • iesirea din regiunea critica;
    • semnalizarea la un semafor vid;
    • transmiterea unui mesaj catre o cutie postala vida;
    • primirea unui semnal de la un semafor plin;
    • primirea unui mesaj de la o cutie postala plina.
  • Cand una dintre aceste operatii conduce la extragerea unui proces din starea deasteptare, controlul asupra CPU trece in sarcina planificatorului, astfel incat acesta poate decide daca procesul activat detine prioritatea cea mai inalta. In caz afirmativ, procesul ce iese din starea de asteptare este trecut direct in starea in rulare; in caz contrar el intra in starea gata de rulare.
diagrama starilor proceselor 10
Diagrama Starilor Proceselor (10)

D. Starea gata de rulare

  • Tranzitiile in starea gata de rulare reprezinta alternativa la tranzitiile in starea de rulare (cu exceptia acelora spre starea de asteptare), deoarece diferenta intre procesele aflate in cele doua stari este doar o chestiune de prioritate. In consecinta, tranzitiile intre starile gata de rulare si in rularesunt cauzate de modificari de prioritati relative ale proceselor executabile.
  • Diferenta majora consta in faptul ca procesele in starea gata de rulare nu isi pot modifica ele insele starea, in timp ce procesele inrulare pot efectua tranzitii de stare prin executarea de actiuni corespunzatoare.
diagrama starilor proceselor 11
Diagrama Starilor Proceselor (11)

E. Starea in rulare

  • Procesele in starea de rulare sunt singurele care pot provoca tranzitii de stare ale altor procese, ca si pentru ele insele. Deci, este posibila parasirea acestei stari drept consecinta a unei actiuni explicite, programata de catre utilizator, cum este terminarea normala a unui proces sau dezactivarea temporara.
  • De asemenea, este posibil ca un proces sa fie fortat sa elibereze CPU drept consecinta a unei actiuni din program care nu a avut destinatia explicita de a produce o tranzitie de stare a procesului.
diagrama starilor proceselor 12
Diagrama Starilor Proceselor (12)
  • Aceste actiuni se pot imparti in doua clase:
    • acelea care produc tranzitia in starea de asteptare
    • acelea care produc tranzitia procesului curent in starea gata de rulare
  • Prima clasa a fost discutata anterior.
  • In cea de a doua intra actiunile care produc activarea sau reluarea altor procese. Cum procesul activat ar putea avea o prioritate superioara celui care l‑a activat, pot aparea schimbari in prioritatile relative pentru toate procesele ce indeplinesc conditiile de rulare, caz in care procesul inrulare este trecut in starea gata de rulare.
diagrama starilor proceselor 13
Diagrama Starilor Proceselor (13)
  • Un al treilea tip de eveniment care produce parasirea de

catre un proces a stariiinrulare este constituit de

actiunea declansata de aparitia unor situatii externe sau

interne neobisnuite, care nu pot fi prevazute de catre programator.

  • Astfel de evenimente includ intreruperi sau exceptiii

fatale ce apar pe durata executiei procesului. Ambele

pot fi considerate ca evenimente care activeaza procese speciale, constituite din rutinele de tratare

corespunzatoare. Intre cele doua tipuri de evenimente

exista, totusi, diferente.

  • Rutinele de tratare a conditiilor fatale de exceptie

(overflow, violarea protectiei) se executa ori de cate ori

ele sunt activate de catre conditiile corespunzatoare, deci

au intotdeauna prioritate superioara procesului care le‑a generat.

planificarea in conditiile prezentei intreruperilor 1
Planificarea in conditiile prezentei intreruperilor (1)
  • Intreruperile sunt folosite

pentru a informa CPU

asupra unor evenimente

importante prin efectele lor

asupra activitatii sistemului.

  • De exemplu, o intrerupere anuntand terminarea unui proces I/O efectuat de un periferic lent este mai putin importanta decat una asociata unui dispozitiv mai rapid, deci este important ca prima sa nu intrerupa executia rutinei de tratare a celei de a doua intreruperi.
planificarea in conditiile prezentei intreruperilor 2
Planificarea in conditiile prezentei intreruperilor (2)
  • Este necesara existenta unui mecanism care sa recunoasca doar intreruperile de prioritate ridicata. Cu alte cuvinte, o cerere de intrerupere este confirmata doar daca ea are o prioritate superioara procesului aflat in rulare.
  • Intreruperile sunt generate de evenimente externe si sunt gestionate prin mijloace hardware. Deci, cand un proces este trecut in starea de rulare, prioritatea sa trebuie facuta cunoscuta dispozitivului de tratare a cererilor de intrerupere, fapt ce permite dezactivarea intreruperilor cu prioritati egale sau inferioare celei a procesului in rulare.
planificarea in conditiile prezentei intreruperilor 3
Planificarea in conditiile prezentei intreruperilor (3)
  • Daca instalarea unui nou proces face ca prioritatea CPU sa scada sub nivelul unei cereri de intrerupere asteptand tratarea, rutina de tratare a cererii mentionate se trece in starea in rulare, procesul intrerupt trecand in starea gata de rulare.
  • Cand rularea rutinei de tratare a intreruperii se termina, ea apeleaza planificatorul pentru a determina urmatorul proces ce trebuie executat. Decizia planificatorului poate fi infirmata de catre mecanismul de intreruperi in cazul in care intreruperi prioritare asteapta tratarea.
planificarea in conditiile prezentei intreruperilor 4
Planificarea in conditiile prezentei intreruperilor (4)
  • Dispozitivul de tratare a cererilor de intreruperi poate fi considerat drept componenta a planificatorului, implementat sub forma hardware.
  • In acelasi mod, rutinele de tratare a intreruperilor ce asteapta atentia unitatii centrale pot fi considerate ca fiind in stareagata de rulare, intrucat executia lor va incepe imediat ce prioritatea procesului aflat in rulare scade sub cea a cererilor de intreruperi.
planificarea in sisteme multiprocesor 2
Planificarea in sisteme multiprocesor (2)
  • Mecanismul de planificare descris mai sus poate fi comod implementat, prin mijloace software, la care se adauga un dispozitiv de tratare a intreruperilor in sistemele cu procesor unic.
  • Lucrurile se complica in conditiile unui sistem cu mai multe procesoare. Intr‑un sistem multi‑procesor fiecare proces inrulare este asignat unei CPU si exista doua posibilitati ca un proces sa fie executat de catre sistem:
    • orice proces poate fi rulat de catre orice CPU
    • procesele pot fi grupate in submultimi, fiecare din ele alocata unei CPU.
  • Prima situatie se intalneste in sistemele de uz general, pentru care sistemul este considerat ca un tot unitar. Deci, exista un singur grup de procese pentru fiecare din starile posibile.
planificarea in sisteme multiprocesor 3
Planificarea in sisteme multiprocesor (3)

Cand un proces este trecut in starea in rulare, oricare dintre CPU poate fi utilizata pentru a‑l rula. Totusi, de regula, se selecteaza CPU care ruleaza procesul cu cea mai mica prioritate. Acesta este trecut

in starea de asteptare.

planificarea in sisteme multiprocesor 4
Planificarea in sisteme multiprocesor (4)
  • A doua varianta de sistem multiprocesor contine un numar de copii ale situatiei sistemului cu procesor unic. Deci, fiecare CPU are propriile sale grupuri de procese in starea gata de rulare, activa sauinactiva, si un singur proces in starea in rulare.
planificarea in sisteme multiprocesor 5
Planificarea in sisteme multiprocesor (5)
  • Aceste sisteme sunt folosite, de regula, in aplicatiile de timp real, pentru care perifericele I/O conectate la fiecare CPU dicteaza locul de executie a fiecarui proces. Diferenta intre acest tip de sistem multiprocesor si un set de sisteme multiutilizator, dar cu un procesor unic, consta in faptul ca procesele ruland pe diferitele CPU
    • se pot sincroniza,
    • pot comunica intre ele, sau
    • pot concura pentru resurse comune.
planificarea in sisteme multiprocesor 6
Planificarea in sisteme multiprocesor (6)
  • In ambele tipuri de sistem, o operatie efectuata de catre un proces ruland pe CPUi poate face ca CPUj sa comute de la executia procesului A la cea a procesului B.
  • Replanificarea unei CPU necesita un anumit suport hardware pentru transmiterea informatiei de la CPUi la CPUj pentru a indica noile conditii.
planificarea in sisteme multiprocesor 7
Planificarea in sisteme multiprocesor (7)
  • Intrucat operatia care produce replanificarea apare pe o alta CPU decat cea care comuta procesul pe care il executa, ea constituie un eveniment extern pentru a doua CPU, fapt ce justifica implementarea cu ajutorul intreruperilor a acestui tip de comunicatie interprocesor.
planificarea in sisteme multiprocesor 8
Planificarea in sisteme multiprocesor (8)
  • Revenind la sistemul multiprocesor, se pot concepe mai multe metode de implementare a intreruperilor interprocesor.
  • O solutie consta in utilizarea unor celule speciale de memorie in zona comuna de memorie, fiecare generind, cand se scrie in ea, o cerere de intrerupere spre o anumita CPU. In modul acesta, o CPU se poate intrerupe prin efectuarea unei operatii de inscriere la o adresa speciala. Datele inscrise in locatiile speciale pot indica sursa intreruperii.
planificarea in sisteme multiprocesor 9
Planificarea in sisteme multiprocesor (9)

O alta solutie consta in utilizarea unui set de linii speciale in cadrul magistralei comune, rezervate generarii cererilor de intreruperi interprocesor.

Un caz particular este cel utilizand o unica linie de difuzare (broadcasting) care transmite serial mesaje de intrerupere. Mesajele includ identificatori privind sursa si destinatia intreruperii, precum si date indicand motivul intreruperii. Tehnica este recomandata de o serie de standarde: Future Bus (IEEE P896), VME, Multibus II [16].

concluzii 1
Concluzii (1)
  • Din cele de mai sus se poate vedea ca functionarea in regim de multiprogramare sau multitasking nu este doar o problema de software, ea necesitand un minimum de suport hardware. Aceste cerinte sunt, pe scurt, urmatoarele:
concluzii 2
Concluzii (2)

1.In sisteme cu procesor unic:

  • posibilitatea de activare/dezactivare a intreruperilor (daca nu se ia in considerare mecanismul DMA);
  • instructiuni test‑and‑set indivizibile (daca se considera mecanismul DMA);
  • CPU si dispozitivul de tratare a intreruperilor au posibilitatea de mascare dinamica a intreruperilor cu nivel de prioritate inferior celui al programului in rulare, pentru a permite planificarea corecta.
concluzii 3
Concluzii (3)

2.In sistem multiprocesor:

  • aceleasi cerinte ca in cazul sistemelor cu procesor unic;
  • semnale externe indicand efectuarea de catre CPU a unei secvente indivizibile citire‑modificare‑insciere, pentru a bloca magistrala comuna, evitandu‑se accesul intercalat al aceleiasi variabile de catre CPU distincte;
  • facilitati de intreruperi interprocesor, cerute de activitatea corecta de planificare pe diferitele microprocesoare.
concluzii 4
Concluzii (4)
  • Suplimentar fata de aceste cerinte,
  • se pot folosi si alte mecanisme pentru
  • scurtarea timpului de executie cerut
  • de anumite operatii.
  • De ajutor sunt instructiunile speciale de salvare si restaurare a starii unui procesor. Operatia este ceruta de comutarea executiei intre mai multe procese. Informatiile de stare pot consta din continuturile registrelor si tabelele de conversie, continand si drepturile de acces gestionate de catre MMU (unitatea de gestiune a memoriei, ce se va discuta in capitolul urmator).

Deci, cresterea vitezei de comutare implica nu numai CPU, ci si circuitele conexe.

concluzii 5
Concluzii (5)

Toate procesoarele moderne dispun de astfel de suport hardware, implementat in forme variate.

Mai mult, unele din ele implementeaza prin hardware functii de complexitate superioara