Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE




loading...



AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Procese concurent

calculatoare

+ Font mai mare | - Font mai mic








DOCUMENTE SIMILARE

Trimite pe Messenger
Introducere in domeniul proiectarii asistate de calculator
DebOptim 2D
Pointeri la functii. Supraincarcarea functiilor. Functii cu numar variabil de parametrii
Lucrare de atestat - Baletul
PREZENTAREA SISTEMULUI INFORMATIC FINALIZAT
Configurarea sistemului informatic SOCRATE
Baze de date
COMENZI DE DESENARE
Modelul functional al unui Calculator Numeric
Poligoane de frecventa - Biostatistica

Procese concurent




Notiunea de proces. Definitii

In cadrul sistemelor de operare moderne, se considera ca unitate de lucru procesul secvential, definit ca entitate activa: un program aflat in executie ale carui instructiuni sunt parcurse una cate una, la momente de timp diferite. Pentru a-si indeplini sarcinile, procesele

au nevoie de anumite resurse ( timpul de lucru al UC, memorie, fisiere, dispozitive de I/O etc. ) care le sunt alocate in momentul crearii. Dar, deoarece in sistem numarul resurselor hardware si al celor logice este limitat, apare ca evidenta necesitatea ca resursele sa fie utilizate in comun, in context multi-utilizator. De asemenea, daca intr-un sistem de calcul dotat cu mai multe procesoare se doreste marirea vitezei de lucru al unui program, se poate fragmenta acest program in subtask-uri care sa se execute in paralel. In plus, sistemul de

operare poate fi construit modular, functiile sale realizandu-se prin intermediul unor procese distincte, a caror executie se desfasoara la concurenta cu cea a proceselor de tip utilizator. Exista deci argumente care justifica existenta proceselor concurente si, implicit, necesitatea includerii in cadrul sistemelor de operare a unor mecanisme destinate asigurarii sincronizarii

si comunicarii intre acestea.

In   timpul executiei, procesul isi schimba starea ( definita ca activitate curenta a procesului ) care poate fi: nou ( new ), activ ( active ), in asteptarea unui eveniment waiting ) sau oprit ( halted ). In sistemele cu multiprogramare procesele active pot astepta alocarea UC ( adica pot fi gata de executie ( ready ) ) sau pot sa fie deja in posesia acesteia (

in executie ( running ) ) ( Figura 5 ).

Figura 5

In cadrul sistemului de operare, procesul este reprezentat prin blocul de control al procesului ( BCP ), un bloc de date care contine informatii specifice procesului la care se refera: starea procesului, valoare contorului program si a registrilor UC ( utilizati in cazul aparitiei unei intreruperi), informatii despre gestionarea memoriei ( valorile registrilor baza

si a registrilor limita sau a tabelei de paginare ), informatii referitoare la sistemul de conturi utilizator, informatii de stare referitoare la operatiile de I/O ( cererile de I/O, dispozitivele de

I/O   alocate procesului, lista fisierelor deschise etc.), informatii de planificare a UC (

prioritatea procesului, indicatori catre 'cozile' de planificare etc.).

Sistemul de operare poate crea sau poate sterge ( desfiinta ) procese.

In timpul executiei, prin intermediul apelurilor de sistem specializate, un proces ( numit 'parinte' ) poate crea unul sau mai multe procese noi ( numite 'copii' ), fiecare dintre acestea putand crea, la randul lor, alte noi procese. Pentru a si indeplini rolul, subprocesul nou creat are nevoie, in general, de anumite resurse ( timp de lucru al UC, memorie, fisiere, dispozitive de I/O ) pe care le poate obtine fie direct de la sistemul de operare, fie ca subset



al resurselor procesului 'parinte'. 'Parintele' isi poate imparti in totalitate resursele

'copiilor' sai sau poate disponibiliza, pentru a fi folosita in comun de catre unii dintre acestia, numai o parte a resurselor, cum ar fi memoria sau fisierele. Ultima metoda are avantajul de a preveni supraincarcarea sistemului datorita crearii prea multor subprocese. Odata create, procesele 'copil' se executa la concurenta cu 'parintele' sau, ca alternativa,

'parintele' se suspenda pana in momentul incheierii executiei tuturor 'copiilor' sai si abia dupa aceea isi reia functionarea.

Terminarea normala a unui proces are loc dupa executarea ultimei sale instructiuni, moment in care se transmit si anumite date ( de informare, de exemplu ) catre procesul

'parinte'. Terminarea fortata a unui proces ( incheierea executiei sale inainte de parcurgerea tuturor instructiunilor componente ) poate fi impusa prin intermediul unui apel

de sistem ( abort ) generat de catre procesul 'parinte' care trebuie sa cunoasca identitatea

'copiilor' sai, pentru ai putea referi. Exista mai multe situatii in care procesul 'parinte'

poate cere incheierea fortata a executiei unuia dintre 'copiii' sai: 'copilul' a depasit limita

de folosire a resurselor ce i-au fost alocate ( caz in care este necesara existenta unui mecanism care sa permita 'parintelui' sa inspecteze starea 'copilului' ), 'copilul' nu mai

este util, din punctul de vedere al functiei pe care o realiza etc. Exista si sisteme in care se interzice continuarea existentei proceselor 'copil' dupa momentul incheierii normale sau fortate a executiei procesului 'parinte'. In acest caz, sistemul de operare initiaza terminarea fortata a tuturor proceselor 'copil' implicate ( terminare in cascada ).

Daca executia unui proces nu poate afecta sau nu poate fi afectata de catre executia altor procese din sistem, se spune ca procesul este independent. El poate fi oprit si repornit fara a genera efecte nedorite, este determinist ( rezultatele depind numai de starea de intrare), nu se afla niciodata in aceeasi stare ca si alte procese din sistem si, evident, nu foloseste in comun date ( temporare sau permanente ) cu acestea.

Daca insa executia procesului poate afecta sau poate fi afectata de catre executia altor procese din sistem, se spune ca procesul este cooperant. In acest caz, procesul nu este determinist ( rezultatele depind de secventa relativa de executie, nu pot fi prevazute cu anticipatie ), nu este reproductibil ( rezultatele nu sunt intotdeauna aceleasi pentru aceleasi conditii de intrare), se poate afla in aceeasi stare ca si alte procese din sistem si, de cele mai multe ori, foloseste in comun date cu acestea.



loading...






Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 512
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2020 . All rights reserved

Distribuie URL

Adauga cod HTML in site