विंडोज पर शेड्यूलिंग थ्रेड्स। 4 का भाग 1

नीचे CLRium कार्यशाला से रिपोर्ट का एक सरल प्रतिलेख नहीं है , लेकिन पुस्तक .NET प्लेटफॉर्म आर्किटेक्चर के लिए एक संशोधित संस्करण है इसका वह हिस्सा जो प्रवाह से संबंधित है।



धागे और धागा योजना


एक धारा क्या है? आइए एक संक्षिप्त परिभाषा देते हैं। इसके मूल में, एक धारा है:


  • ;
  • .

, .NET — - . .NET - Windows. .NET Windows ( Windows thread id , ). , -.NET .NET, : , , . volatile, Interlocked SpinWait. lock . .


. — . ? , — , . . .


— . : . - .. .



" ?", — , — " "Intel Xeon 8 16 ". - — — . 8 . Hyper-Threading, ( ). , . , , , , . +=2 Hyper-Threading. .. .


— : - ( , Hyper-Threading), - , , , , .. , .


: , - . , .


, ? , — . . , : , . — , . : . . , , , : , , . — Console.ReadKey().


Windows 10, , 1,5 . , 20 , , , 4, , 20 1 7,5 … , . - . , … , - .


, — - .



CreateThread. . CreateThread new Thread(), .NET .


:


1) :


  • (SECURITY_ATTRIBUTES) + .
    .NET , ;

2) :


  • , ( )
    .. .NET, . .

3) —
4) .


, .NET — . , , .. . . , .


: .NET , , ManageThreadId Thread.


: CREATE_SUSPENDED — . .NET .


CreateRemoteThread, . ( Snoop). . .NET , . — .NET runtime. , : WinAPI , . , .NET , ( ). — runtime. : , ( -.NET runtime, C/C++ , ). .NET - .


: .NET - (, )



, , . , . . : , . : , , . Windows. — , .


, . Windows : . , , . — , , (UMS ). , .. , . ? . , , , . , . , , , .




Windows 32 (0-31)


  • 1 (00 — 00) — Zero Page Thread;
  • 15 (01 — 15) — ;
  • 16 (16 — 31) — .

Zero Page Thread. — , , , , , .. . : , - . , , - . runtime ( — .NET CLR) . , : - , , : . - , : . . , ?


, , , - - , . , Real Time . . .. - ( — , , , , ) 15, : 16, — . "" .


Windows API.


— . , : - ( ) : . , , , . , , — . . , , , . , - , . .. .


, : , : - — . , . ?


6 . — , . " ", - .


1. Real Time424
2. High313
3. Above Normal610
4. Normal28
5. Below Normal56
6. Idle14

— , . , . — , Normal:


  • Normal Normal, Normal 8 ( №4 );
  • Above Normal, 10. , : Normal 10.

? , .
, ,
, : ( ). , . .


, , . , , - Below Normal. , 6 . . ?


1. Time Critical(+15)
2. Higest(+2)
3. Above normal(+1)
4. Normal(+0)
5. Below normal(-1)
6. Lowest(-2)
7. Idle(-15)

3


Normal +0 . Below normal — (-1) . .. Below Normal 'Below Normal' 8 - 1 = 7 ( Normal), 6 - 1 = 5. Lowest (-2) 4.


Idle Time Critical — (-15 +15). Normal — 0 : -2, -1, +1 +2? . , (5,4,3,2,1) , : 5 — , 4 — , 3 — , 2 — , 1 — , 4. 10- ( — 100-), : 9 7? , 3 4?


. Normal. , Normal
Normal (Normal above), Normal (Normal below).
(Higest Lowest). , , . , , , : . Time Critical. : , . Idle. — .


?



Normal ( 3) Normal — 8. Above Normal Normal 9. Higest, Normal 10.


Windows , :


  • Normal Above-Normal
  • Higest Normal
    10.

: Normal, — Higest,
Higest Normal, .


, Real-Time , Real-Time — . .., , , . : , , real-time. , , Windows .


, ,
Real-Time , , .


/Real-TimeHighAbove-NormalNormalBelow-NormalIdle
Time Critical (+)311515151515
Highest (+2)2615121086
Above Normal (+1)251411975
Normal (0)241310864
Below Normal (-1)23129753
Lowest (-2)22118642
Idle (-)1611111

, , . , Above-Normal Normal Below-Normal ( ):



, , . , (. 3).


, , – Normal.


/Real-TimeHighAbove-NormalNormalBelow-NormalIdle
Time Critical (+)311515151515
Highest (+2)2615121086
Above Normal (+1)251411975
Normal (0)241310864
Below Normal (-1)23129753
Lowest (-2)22118642
Idle (-)1611111

, CLRium #7, . .

: , .

All Articles