|
PROCESE SI THREADURI IN WINDOWS
In sistemele WINDOWS, entitatea de alocare a timpului procesoarelor este threadul. Fiecare proces contine cel putin un thread de executie, numit si threadul principal, si poate crea threaduri noi. Un proces WINDOWS are o dualitate de identificare si anume are doua entitati de identificare:
-handle, care este o intrare in tabelul de resurse al sistemului;
-identificator (id), un numar unic atribuit unui proces (asemanator PID-ului din UNIX).
Aceasta dualitate de identificare ingreuneaza lucrul cu procesele WINDOWS, in sensul ca unele functii cer ca parametru handle-ul procesului , altele identificatorul acestuia.
1. Procese in WINDOWS
Accesul programatorului la functiile SO este posibil prin intermediul unei interfete, numita API (Aplication Programming Interface) care contine definitia tipurilor de date si functiile de apel ale sistemului.
Un proces tata creeaza un proces fiu prin intermediul apelului functiei bool create process(lista parametri). Se poate considera ca, in mare, aceasta functie are functionalitatea combinatiei de apeluri fork - exec din UNIX. Se creeaza un proces nou, impreuna cu threadul primar, care executa un segment de cod specificat prin numele fisierului ce contine acest segment. Valoarea returnata de functia createprocess este de tip booleean si insemna TRUE (succes) si FALSE (eroare).
Crearea threadurilor WINDOWS. Crearea unui thread nou intr-un proces necesita definirea unei functii pe care threadul sa o execute, urmata de apelul unei functii createthread cu sintaxa handle create thread (lista de parametri). Aceasta functie returneaza handle-ul threadului nou creat.