Procesele independente și interactive

Una dintre caracteristicile multiprogramming sistem de operare este că, atunci când acestea funcționează în sistem se poate dezvolta în paralel și există mai multe procese de calcul.

Din punct de vedere al unui observator extern, fiecare dintre aceste procese este consecventă, în cazul în care structura hardware a calculatorului este un singur procesor. Deoarece toate procesele prezente în sistem, în special, în PO, în același timp, din punct de vedere al sistemului de operare, acestea pot fi interpretate ca paralele. Aceasta sugerează că în cadrul proceselor concurente pot fi înțelese nu numai procese simultan rulează pe procesoare diferite sau canale de intrare / ieșire, dar și acele procese secvențiale care împart (cota) procesorului același, OP, sau alte resurse de sistem, și să se suprapună cel puțin parțial în timp.

Multiprogramming sistem de operare la un nivel logic poate fi reprezentat ca un set de procese succesive care, pe de o parte, în competiție pentru resurse, iar trecerea de la un stat la altul și, pe de altă parte - funcționează aproape în mod independent unul de celălalt și se setează la conexiunea dorită interconectate între ele prin transmiterea de mesaje de date, sau semnalele de sincronizare. În acest sens, toate procesele paralele pot fi împărțite în două grupe:

1. Independent - caracterizat prin aceea că multitudinea de date pe care o folosesc, nu se intersectează unele cu altele. În conformitate cu datele necesare pentru a înțelege PO zona generală, precum și memoria externă fișiere. procese independente nu afectează reciproc munca, deoarece acestea nu pot modifica alte procese de date. Ele pot provoca doar întârzieri în executarea altor procese ca să le distribuiți, împreună cu resursele de sistem;

2. Procesul de interacțiune împărtășesc diferitelor resurse de sistem și, în special datele, generale. Efectuarea unui proces de acest tip poate afecta performanța celuilalt.

Diverse resurse de sistem poate fi partajat de mai multe procese. Aceste resurse sunt numite în comun. La fiecare punct de timp, resursa de acest tip poate avea acces numai la unul dintre procesele de comunicare. resurse de sistem, care nu permit utilizarea simultană a mai multor procese, numite critice. În cazul în care este necesar să se utilizeze o resursa critica mai multe procese care interactioneaza, ar trebui să fie sistemul de operare multiprogramming pentru a proteja împotriva accesului concurent la resurse astfel de procese. În caz contrar, în timpul funcționării sistemului poate cauza erori (impasuri / conflicte / strângere), atunci când mai multe procese, în același timp, încercarea de a obține acces la resurse critice. Cauza acestor erori este că în procesele de sistemele multiprogramming evoluează cu diferite rate absolute, și astfel, vitezele relative ale acestora nu sunt cunoscute și nu poate fi modificat în acest proces. Prin urmare, influența exercitată de fiecare alte procese care interacționează, în majoritatea cazurilor, și impredictibil nereproductibile.

Interacționează unul cu altul sunt două tipuri de procese:

2) cooperează cu privire la activitatea de ansamblu de calcul.

procesele concurente au periodic acces la resurse partajate, dar nu comunică unul cu celălalt. Procesele de al doilea tip face schimb de date continuu unul cu altul, astfel încât rezultatele calculului sunt transmise de la un proces la altul. Transmisia de date inversă.

Pentru funcționarea sistemului de operare este potențial periculoasă, în primul rând, executarea incorectă a proceselor concurente, din cauza accesului nereglementat la resurse critice. Pentru a reglementa accesul, adică, definirea regulilor de acces la sistemul de operare ar trebui să fie instituit mijloace de excludere reciprocă, care nu ar permite celor două procese concurente să acceseze simultan aceeași resursă partajată. Semnificația acestor produse este că, înainte de perioada de tratament de închidere a unui proces pentru că resursa trebuie să fie posibil să-l acceseze dintr-un alt proces de software.

O situație similară se produce între cele două procese, numit mutex.

Altele decât cele de excludere reciprocă, sistemul trebuie să fie furnizate la locul de muncă de sincronizare a proceselor care interacționează. Acestea sunt necesare pentru a permite comunicarea normală între astfel de procese.

Aceste zone din programele de procese concurente în care se face apel la resursele critice sunt numite sectiuni critice (intervale critice).

Procesele independente și interactive

Rezolvarea problemei accesului corect la punctele critice este de a organiza un astfel de acces, în cazul în care numai unul dintre procesele într-unul și același moment de timp permis să intre secțiunea lor critice.

Această problemă, în general, este destul de complicată, deoarece secțiunea critică - nu este doar o secvență de declarații într-un program, iar succesiunea de acțiuni sunt efectuate de către acești operatori. În cazul în care un proces este deja în secțiunea critică, apoi un alt proces poate continua să fie executat, dar fără a intra în secțiunea critică. excludere reciprocă este necesară în cazul în care procesele încep simultan acces la resursa partajată.

În cazul în care procesele de a efectua operațiuni care nu duc la conflicte, atunci este posibil de execuție paralelă permanentă. Când procesul iese din secțiunea critică, apoi una dintre celelalte procese de așteptare pentru intrarea în secțiunile lor critice ar trebui să li se permită să continue să lucreze în secțiunile lor.

În sistemele moderne, pentru a rezolva problema de excludere reciprocă, precum și problemele legate de sincronizare și de schimb de date, folosind instrumente speciale numite comunicații interprocese.

Aceste fonduri sunt împărțite în două grupe:

1) mijloace pentru sincronizarea proceselor și firelor, care include mijloace pentru a asigura o soluție problemei de excludere reciprocă;

2) mijloace pentru schimbul de date între procese și fire.

articole similare