If-Koubou

Kāpēc nav neviena numura Windows procesa ID?

Kāpēc nav neviena numura Windows procesa ID? (Kā)

Ja jums patīk aplūkot ar Windows un mācīties, kā jums iet, jūs, iespējams, pamanījāt, ka Windows procesa un diegu ID ir noilgināti un ir četri. Kāpēc ir tā, ka? Šodienas SuperUser Q & A ziņai ir atbildes uz ziņkārīgo lasītāja jautājumiem.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta 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 daudzi veidi, kā apskatīt Windows procesa ID. PowerShell izmantošana:

Es iegūstu š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 numuru Windows procesa ID?

Atbilde

SuperUser atbalstītājs DavidPostill mums ir atbilde:

Kāpēc nav nepāra numuru Windows procesa ID?

To pašu kodu, kas piešķir kodola rokturus, izmanto arī procesa un diegu ID piešķiršanai. Tā kā kodola rokturiem ir vairāki četri, tie ir arī procesa 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 pavedienu 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ē.

Procesa 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ārtēji?

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.

Tas, ka vismaz kodola rokturu pamatne vienmēr ir nulle, tiek apzīmēts ar GetQueuedCompletionStatus funkciju, 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ā necaurspīdīgas vērtības. 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 četrkārtēji?

Lasīt tālāk

Vecā jauna lieta: praktiska attīstība visā Windows evolūcijā, ko veicis Raymond Chen (Galvenais programmatūras izstrādes inženieris pie Microsoft)

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.