Curente și procese

1. Curenți și procese

1.1. Determinarea debitului

Stream în Windows numit obiect nucleu la care sistemul de operare alocă timp de procesor pentru a rula aplicația. Fiecare fir este deținut de următoarele resurse:

  • funcții executabile de cod;
  • set de registre CPU;
  • stivă la cerere;
  • stivă pentru sistemul de operare;
  • jeton de acces, care include securitatea informațiilor.

Toate aceste resurse formează contextul firului în Windows. În plus, fiecare flux de descriptori din Windows are, de asemenea, un identificator care este unic pentru firul care rulează pe sistem. ID-uri de fluxuri utilizate de utilitate care permit utilizatorilor sistemului de a ține evidența fluxurilor de lucru.

Două tipuri de fluxuri sunt diferite sisteme de operare Windows:

  • fluxurile de sistem;
  • fluxuri personalizate.

fire de sistem efectuează servicii diferite ale sistemului de operare și rulați kernel-ul sistemului de operare.

fire de utilizator sunt folosite pentru a rezolva problemele de utilizator și rula aplicația.

În aplicația care rulează, diferite fluxuri de două tipuri:

  • fluxuri de lucru (fire de lucru);
  • Fluxurile de interfață de utilizator (fire de interfață de utilizator).

Workflows efectua diverse sarcini de fond în cerere. Debitele asociate cu ferestrele de interfață de utilizator și a mesajelor de prelucrare a primit aceste ferestre. Fiecare aplicație are cel puțin un fir, numit primar (primar) sau fluxul primar (principal). În aplicații consola este firul care execută funcția principală. În aplicații cu o interfață grafică este firul care execută funcția WinMain.

Se creează o CreateThread funcție de flux. care are următorul prototip:

După finalizarea cu succes a funcției CreateThread returnează un mâner la fluxul creat și un identificator care este unic pentru întregul sistem. Altfel, această funcție returnează zero.

atributele de protecție seturi de parametri lpThreadAttributes generate de debit. Atâta timp cât nu înțelegem sistemul de siguranță pe Windows, vom seta această valoare la zero atunci când apel aproape toate funcțiile Windows kernel. În acest caz, aceasta înseamnă că sistemul de operare va instala atributele flux de protecție, folosind setările implicite.

Parametrul DwStacksize specifică dimensiunea stivei, care este eliberat atunci când începe fluxul. Dacă acest parametru este zero, fluxul de standuri stivă, a cărui dimensiune implicită este de 1 MB. Aceasta este cea mai mică mărime a stivei, care poate fi recuperată în aval. Dacă parametrul dwStacksize mai mic decât cel implicit, este încă alocată mărimea stack-ului în amonte de 1 MB. Sistemul de operare Windows runde dimensiunea stivei la o pagină de memorie, care este de obicei de 4 Kbytes.