Cunoaște Intuit, curs, punerea în aplicare a proceselor și firelor

crearea de fluxuri

Ca urmare a acestei creează o unitate de control al debitului în legătură cu structurile formate însoțitoare stivă fluxul de bază și crearea fluxului notificat subsistemului Win32. În cele din urmă, acesta returnează fluxul de asteptare fir descriptor generat și transmis de management, și un nou flux poate fi alocat timp CPU.

funcţia CreateThread

Astfel, în cazul în care fluxul de proces primar este creat de către o funcție de apel CreateProcess. Pentru a genera fluxuri suplimentare nevoie pentru a apela un CreateThread funcție:

program pentru a crea flux de a rula

O listă de program care este prezentată mai jos, creează un nou fir și trece valoarea numerică a parametrului care afișează acest flux.

Ca un exercițiu, se recomandă să se scrie un program, care ilustrează simplitatea organizării de partajare inter-fir într-un singur proces, de exemplu, prin schimbul unui set de date comune globale. Comparați această metodă cu exemple mai greoaie din prelegerea „comunicare interprocess“.

Un proces similar la încheierea obiectului mapate pentru al fluxului de „flux“ de bază nu este eliberat până când până când ați închis toate link-urile externe de pe acest obiect.

Un context flux, de comutare context

Un rol special în structurile de date care descriu fluxul de joc contextului firului. Informațiile care fac parte din context, trebuie să salvați periodic și restaurare în caz de diferite evenimente, de exemplu, atunci când fluxurile de comutare. În general, conservarea și recuperarea ulterioară a subiectului:

Aceste informații sunt stocate în curent kernel fir stivă.

Contextul reflectă starea registrelor CPU la momentul ultimei fir de execuție și stocate în cadrul structurii, WinNT.h definită în fișierul antet. Elementele acestei structuri corespund registrelor procesor, de exemplu, pentru un procesor x86 include EAX, EBX, ECX, funcția EDX etc Win32-GetThreadContext permite pentru a obține curent de stat context și SetThreadContext funcția -. Setați un nou conținut de context specific. Înainte de această operație, se recomandă să se oprească curgerea.

În plus față de acestea, există deja o mulțime de funcții utile care implementează API-ul pentru gestionarea fluxurilor. Lista completă este disponibilă pe MSDN.

concluzie

Flow este un set de comenzi executabile pentru runtime curent. Cu unul sau mai multe fluxuri set de resurse care sunt integrate în procesul de asociat. Pentru a descrie procesul în sistem se menține structuri agregate legate, a cărei principală este structura EPROCESS. La rândul său. Structura ETHREAD și a structurilor conexe necesare pentru punerea în aplicare a fluxurilor. Prelegerea a analizat CreateProcess funcția și CreateThread și etapele de dezvoltare a proceselor și firelor. Caracteristicile importante sunt starea de curgere și de contextul acesteia. Monitorizarea stării de flux se propune să pună în aplicare un sistem folosind instrumentele.