අමුතු වින්ඩෝස් ක්‍රියාවලි හැඳුනුම්පත් නොමැති ඇයි?


159

වින්ඩෝස් හි ක්‍රියාවලි හැඳුනුම්පත් පරීක්ෂා කිරීමට බොහෝ ක්‍රම තිබේ.

උදාහරණයක් ලෙස, පවර්ෂෙල් විධානය භාවිතා කිරීම:

ps | select Id, ProcessName  | Sort Id | ft -AutoSize

අපි පහත ප්‍රතිදානය දකිමු:

  Id ProcessName         
  -- -----------         
   0 Idle                
   4 System              
 264 svchost             
 388 smss                
 476 csrss               
 536 wininit             
 580 winlogon                      
 620 services            
 628 lsass                          
 728 svchost             
 828 dwm                                     
1060 chrome              
1080 rundll32            
1148 vmms                                        
1620 spoolsv                                                
2912 taskhostex          
3020 explorer       
...     

සියලුම ක්‍රියාදාම හැඳුනුම්පත් ඉරට්ටේ සංඛ්‍යා වන අතර, ඊට අමතරව, ඒවා සියල්ලම 4 ගුණක වේ .

වින්ඩෝස් එන්ටී මත පදනම් වූ වින්ඩෝස් හි ඕනෑම අනුවාදයක අමුතු ක්‍රියාදාම හැඳුනුම්පත් නොමැත.

මේ සඳහා හේතුව කුමක්ද?


6
සිත්ගන්නා සුළු විය හැකිය: ලිනක්ස් පිළිබඳ සමහර විස්තර - justskins.com/forums/why-are-process-ids-204416.html
ඩේව්

13
ඇත්ත වශයෙන්ම කිසිවක් නැත. ඒක අමුතුයි.
ඇන්ඩ්‍රේකේ

Answers:


167

"අමුතු වින්ඩෝස් ක්‍රියාවලියක් නොමැති ඇයි?"

කර්නල් හැන්ඩ්ල්ස් වෙන් කරන එකම කේතය ක්‍රියාවලිය සහ නූල් හැඳුනුම්පත් වෙන් කිරීම සඳහා ද යොදා ගනී. කර්නල් හැන්ඩ්ල්ස් හතරේ ගුණකයක් වන බැවින් ක්‍රියාවලි සහ නූල් හැඳුනුම්පත් ද වේ.


ක්‍රියාවලි සහ නූල් හැඳුනුම්පත් හතරකින් ගුණ කරන්නේ ඇයි?

වින්ඩෝස් එන්ටී මත පදනම් වූ මෙහෙයුම් පද්ධති වල, ක්‍රියාවලිය සහ නූල් හැඳුනුම්පත් සෑම විටම හතරකින් ගුණ කළ යුතුය. මෙය අහම්බයක්ද?

ඔව්, එය අහම්බයක් පමණක් වන අතර එය ක්‍රමලේඛන කොන්ත්‍රාත්තුවේ කොටසක් නොවන බැවින් ඔබ එය මත විශ්වාසය නොතැබිය යුතුය. උදාහරණයක් ලෙස, වින්ඩෝස් 95 ක්‍රියාවලිය සහ නූල් හැඳුනුම්පත් සෑම විටම හතරක ගුණකයක් නොවීය. (සංසන්දනය කිරීමේදී, කර්නල් හසුරුව සැමවිටම හතරෙන් ගුණනය වීමට හේතුව පිරිවිතරයේ කොටසක් වන අතර එය අපේක්ෂා කළ හැකි අනාගතයක් සඳහා සහතික වනු ඇත.)

ක්‍රියාවලි සහ නූල් හැඳුනුම්පත් යනු කේත නැවත භාවිතා කිරීමේ අතුරු as ලයක් ලෙස හතරක ගුණකයකි. කර්නල් හැන්ඩ්ල්ස් වෙන් කරන එකම කේතය ක්‍රියාවලිය සහ නූල් හැඳුනුම්පත් වෙන් කිරීම සඳහා ද යොදා ගනී. කර්නල් හැන්ඩ්ල්ස් හතරේ ගුණකයක් වන බැවින් ක්‍රියාවලි සහ නූල් හැඳුනුම්පත් ද වේ. මෙය ක්‍රියාත්මක කිරීමේ විස්තරයකි, එබැවින් එය මත රඳා පවතින කේතයක් ලියන්න එපා. මම ඔබට කියන්නේ ඔබේ කුතුහලය තෘප්තිමත් කරන ලෙසයි.

මූලාශ්‍රය ක්‍රියාවලි සහ නූල් හැඳුනුම්පත් හතරකින් ගුණ කරන්නේ ඇයි?


කර්නල් හැන්ඩ්ල්ස් සෑම විටම හතරකින් ගුණ කරන්නේ ඇයි?

කර්නල් හැන්ඩ්ල්ස් වල පහළ බිටු දෙක සැමවිටම ශුන්‍ය බව එතරම් ප්‍රසිද්ධ නැත. වෙනත් වචන වලින් කිවහොත්, ඒවායේ සංඛ්‍යාත්මක අගය සැමවිටම 4 න් ගුණ කිරීමකි. මෙය අදාළ වන්නේ කර්නල් හැන්ඩ්ල්ස් වලට පමණක් බව සලකන්න; එය ව්‍යාජ හසුරුවලට හෝ වෙනත් ආකාරයේ හැසිරවීමකට අදාළ නොවේ (USER හැන්ඩ්ල්ස්, ජීඩීඅයි හැන්ඩ්ල්ස්, බහුමාධ්‍ය හැන්ඩ්ල්ස් ...) කර්නල් හැන්ඩ්ල්ස් යනු ඔබට CloseHandle ශ්‍රිතයට යැවිය හැකි දේවල් වේ.

පහළ බිටු දෙකෙහි ඇති හැකියාව ntdef.h ශීර්ෂ ගොනුවේ තැන්පත් කර ඇත:

//
// Low order two bits of a handle are ignored by the system and available
// for use by application code as tag bits.  The remaining bits are opaque
// and used to store a serial number and table index.
//

#define OBJ_HANDLE_TAGBITS  0x00000003L

අවම වශයෙන් කර්නල් හැන්ඩ්ල්ස් හි බිට් සෑම විටම ශුන්‍ය වන බව GetQueuedCompletionStatus ශ්‍රිතය මඟින් ගම්‍ය වේ, එයින් ඇඟවෙන්නේ සම්පුර්ණ වරාය දැනුම්දීම මැඩපැවැත්වීම සඳහා ඔබට සිදුවීම් හසුරුවෙහි පහළ කොටස සැකසිය හැකි බවයි. මෙය ක්‍රියාත්මක වීමට නම්, පහළ බිට් සාමාන්‍යයෙන් ශුන්‍ය විය යුතුය.

බොහෝ යෙදුම් ලේඛකයින් සඳහා මෙම තොරතුරු ප්‍රයෝජනවත් නොවන අතර, එය දිගටම හැන්ඩ්ල්ස් පාරාන්ධ අගයන් ලෙස සැලකිය යුතුය. ටැග් බිටු ගැන උනන්දුවක් දක්වන පුද්ගලයින් වන්නේ පහත් මට්ටමේ පන්ති පුස්තකාල ක්‍රියාත්මක කරන හෝ විශාල රාමුවක් තුළ කර්නල් වස්තු ඔතා ඇති අයයි.

මූලාශ්‍රය කර්නල් හැන්ඩ්ල්ස් සෑම විටම හතරකින් ගුණ කරන්නේ ඇයි?


වැඩිදුර කීයවීම



3
එක් උපුටා දැක්වීමක් පවසන්නේ “එය ක්‍රමලේඛන කොන්ත්‍රාත්තුවේ කොටසක් නොවන බැවින් ඔබ එය මත විශ්වාසය තැබිය යුතු නැත”, නමුත් ඊළඟ හිමිකම් පෑම ntdef.h පවසන්නේ බිටු “යෙදුම් කේතය ටැග් බිට් ලෙස භාවිතා කළ හැකි” බවයි. පොදු ශීර්ෂ ගොනුවක ප්‍රලේඛනය ඔබට ලබා ගත හැකි තරම් “ක්‍රමලේඛන කොන්ත්‍රාත්තුවකට” ආසන්න බැවින් පළමු හිමිකම් පෑම වැරදිය.
බ්ලූරාජා - ඩැනී ප්ලග්ගොෆ්ට්

2
L බ්ලූරාජා, " කර්නල් හැන්ඩ්ල්ස් වල පහළ බිටු දෙක සැමවිටම ශුන්‍ය බව එතරම් ප්‍රසිද්ධ නැත ; වෙනත් වචන වලින් කිවහොත්, ඒවායේ සංඛ්‍යාත්මක අගය සෑම විටම 4 න් ගුණ කිරීමකි . " Ntdef.h හි කේතය වෙනත් ආකාරයේ හැසිරවීම් සඳහා ද අදාළ වේ. (USER හසුරුවයි, GDI හසුරුවයි, බහුමාධ්‍ය හසුරුවයි ...)
ඩේවිඩ් පොස්ටිල්

37
L බ්ලූරාජා: කර්නල් හැන්ඩ්ල්ස් හතරෙන් ගුණයක් වන අතර එය ගිවිසුම්ගත බැවින් ඔබට එය මත විශ්වාසය තැබිය හැකිය; ක්‍රියාවලි අයිඩී ( ක්‍රියාවලි හසුරුවලට සමාන නොවන ), ඒ වෙනුවට, හතරෙන් ගුණ කළ හැකි නමුත් එය ක්‍රියාත්මක කිරීමේ විස්තරයක් පමණි, එබැවින් ඔබ එය මත විශ්වාසය නොතැබිය යුතුය.
මැටියෝ ඉතාලියා

6
L බ්ලූරාජා මම හිතන්නේ රේමන්ඩ් ඔබට ලියකියවිලි ලියන ඕනෑම අයෙකු කර්නල් පාට වීදුරු හරහා ලෝකය දෙස බැලූ බවත් ඒ අනුව යොමු කර ඇත්තේ කර්නල් හැන්ඩ්ල්ස් ගැන මිස වෙනත් ආකාරයේ හැන්ඩ්ල්ස් නොවන බවත් ය.
CodesInChaos

1
E මෙහර්දාඩ්: හොඳයි, USER සහ GDI හැන්ඩ්ල්ස් සාමාන්‍යයෙන් "කර්නල්" හැන්ඩ්ල්ස් ලෙස හැඳින්වෙන්නේ නැත (ඒවා උත්පාදනය වන්නේ ඊනියා කර්නල් ප්‍රකාරයේදී ක්‍රියාත්මක වන සංරචක මගිනි).
මැටියෝ ඉතාලියා
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.