18Aug
Ja jūs mīlestība rīkoties ar Windows un mācīties, kā jums iet, jūs, iespējams, pamanījāt, ka Windows process un vītņu ID ir vienādi numurēti un ir četri. Kāpēc ir tā, ka?Šodienas SuperUser Q & amai ir atbildes uz ziņkārīgo lasītāja jautājumiem.
Šodienas jautājums &Atbildes sesija mums priecājas par SuperUser - Stack Exchange, kas ir kopienas un Q & A tīmekļa vietņu grupa.
Jautājums
SuperUser lasītājs Peter Hahndorf vēlas uzzināt, kāpēc nav nepāra numurus Windows procesa ID:
Ir daudz veidu, kā apskatīt Windows procesa ID.Izmantojot PowerShell:
, es saņemu šo rezultātu:
Kā redzat, visi procesa ID ir vienādi skaitļi, un ne tikai visi, tie ir četri. Jūs varat izskatīties tikpat grūti, kā vēlaties, un jūs nekad neatradīsiet nepāra skaitļa procesa ID, vismaz ne uz jebkuru versiju, kas balstīta uz Windows NT.Kāds ir iemesls tam?
Kāpēc nav nepāra numurus Windows procesa ID?
Atbilde
SuperUser atbalstītājam DavidPostill mums ir atbilde:
Kāpēc nav nepāra numurus Windows procesa ID?
Tajā pašā kodā, kas piešķir kodola rokturus, tiek izmantoti arī procesu un diegu ID piešķiršanai. Tā kā kodola rokturiem ir vairāki četri, tie ir arī procesu un diegu ID.
Kāpēc procesa un vītņu ID ir četri simboli?
Operētājsistēmās, kurās darbojas operētājsistēma Windows NT, procesa un diegu ID vienmēr ir četri. Vai tas ir tikai nejaušība?
Jā, tas ir tikai sakritība, un jums nevajadzētu paļauties uz to, jo tas nav daļa no plānošanas līguma. Piemēram, Windows 95 procesa un vītņu ID ne vienmēr bija četri. Salīdzinājumam iemesls, ka kodola rokturi vienmēr ir četri, ir daļa no specifikācijas, un to nodrošinās tuvākajā nākotnē.
Procesu un vītņu ID ir četri, kas ir koda atkārtotas izmantošanas blakusparādība. To pašu kodu, kas piešķir kodola rokturus, izmanto arī procesa un diegu ID piešķiršanai. Tā kā kodola rokturi ir četri, tie ir arī procesu un diegu ID.Šī ir detalizēta informācija par īstenošanu, tādēļ nelieciet kodu, uz kuru paļauties. Es tikai saku, lai jūs apmierinātu savas interesi.
Avots: Kāpēc procesa un vītņu ID ir četri simboli?
Kāpēc kodola rokturi vienmēr ir četrkārši?
Kaut kas nav ļoti labi zināms, ir tas, ka kodola rokturu divi biti ir vienmēr nulles;citiem vārdiem sakot, to skaitliskā vērtība vienmēr ir četrkārtīga.Ņemiet vērā, ka tas attiecas tikai uz kodola rokturiem;tas neattiecas uz pseido-rokturiem vai jebkura cita veida rokturi( USER rokturi, GDI rokturi, multivides rokturi utt.).Kernel rokturi ir lietas, kuras varat pāriet uz funkciju CloseHandle.
Lai vismaz kodola rokturu pamatne būtu vienmēr nulle, to nosaka funkcija GetQueuedCompletionStatus, kas norāda, ka jūs varat iestatīt notikuma roka apakšējo bitu, lai apturētu pabeigšanas porta paziņojumu. Lai tas darbotos, pamatbaltam parasti jābūt nullei.
Šī informācija nav noderīga vairumam lietojumprogrammu rakstītāju, kuriem jāturpina rīkoties ar rokturiem kā necaurlaidīgām vērtībām. Cilvēki, kuriem būtu interese par tagu bitiem, ir tie, kas ievieš zemas klases bibliotēkas vai iesaiņo kodola objektus plašākā sistēmā.
Avots: Kāpēc kodola rokturi vienmēr ir četri?
Lasīt tālāk
Vecā jauna lieta: Praktiska attīstība visā Windows evolūcijā, ko veicis Raymond Chen( Microsoft galvenais programmatūras izstrādes inženieris )
Vai jums jāpievieno skaidrojums? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem?Šeit skatiet pilnu diskusiju pavedienu.