Neden Tek Numaralı Windows İşlem Kimliği yok?
Windows ile bağlantı kurmayı ve öğrenirken öğrenmeyi seviyorsanız, Windows işlem ve iş parçacığı kimlik numaralarının çift sayılı olduğunu ve dört sayının katları olduğunu fark etmiş olabilirsiniz. Neden? Bugünün Süper Kullanıcı Soru-Cevap yazısında meraklı bir okuyucunun sorularına cevap.
Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..
Soru
SuperUser okuyucu Peter Hahndorf neden tek numaralı Windows işlem kimlikleri olmadığını bilmek istiyor:
Windows'taki işlem kimliklerine bakmanın birçok yolu vardır. PowerShell'i kullanma:
Bu sonucu alıyorum:
Görebildiğiniz gibi, tüm işlem ID'leri çift sayılıdır, sadece bu değil, hepsi dörtün katlarıdır. İstediğiniz kadar sert görünebilir ve hiçbir zaman tek bir numaralı işlem kimliği bulamazsınız, en azından Windows NT tabanlı bir sürümde. Bunun nedeni ne?
Neden tek numaralı Windows işlem kimlikleri yok??
Cevap
SuperUser yazarı DavidPostill'in bize cevabı var:
Neden tek numaralı Windows işlem kimlikleri yok??
Çekirdek tutamaçlarını ayıran aynı kod, işlem ve iş parçacığı kimliklerini tahsis etmek için de kullanılır. Çekirdek tutamaçlarının dört katı olduğu için, işlem ve iş parçacığı kimlikleri de.
Neden işlem ve iş parçacığı kimlikleri dört katları?
Windows NT tabanlı işletim sistemlerinde, işlem ve iş parçacığı kimlikleri her zaman dörtün katı olur. Bu sadece bir tesadüf mü?
Evet, bu sadece bir tesadüf ve programlama sözleşmesinin bir parçası olmadığından ona güvenmemelisin. Örneğin, Windows 95 işlem ve iş parçacığı kimlikleri her zaman dörtün katları değildi. Karşılaştırma yapıldığında, çekirdek tutamaçlarının her zaman dörtte bir katı olması nedeni, belirtimin bir parçasıdır ve öngörülebilir gelecek için garanti edilecektir..
İşlem ve iş parçacığı kimlikleri, kod kullanımının bir yan etkisi olarak dördün katlarıdır. Çekirdek tutamaçlarını ayıran aynı kod, işlem ve iş parçacığı kimliklerini tahsis etmek için de kullanılır. Çekirdek tutamaçlarının dört katı olduğu için, işlem ve iş parçacığı kimlikleri de aynıdır. Bu bir uygulama detayıdır, bu yüzden ona güvenen bir kod yazmayın. Sadece merakını tatmin etmeni söylüyorum.
Kaynak: Neden işlem ve iş parçacığı kimlikleri dört katları?
Çekirdek tutamaçları neden sürekli dörtte birdir??
Çok iyi bilinmeyen bir şey, çekirdek saplarının altındaki iki bitin daima sıfır olması; Başka bir deyişle, sayısal değerleri her zaman dörtün katıdır. Bunun yalnızca çekirdek tutamaçlarına uygulandığına dikkat edin; sözde tutamaçlara veya diğer tutamaçlara (KULLANICI tutamaçları, GDI tutamaçları, multimedya tutamaçları vb.) uygulanmaz. Çekirdek tutamaçları, CloseHandle işlevine geçirebileceğiniz şeylerdir.
En azından çekirdek tutamaçlarının alt bitinin her zaman sıfır olması GetQueuedCompletionStatus işlevi tarafından belirtilir; bu, tamamlama bağlantı noktası bildirimini bastırmak için olay tanıtıcısının alt bitini ayarlayabileceğinizi gösterir. Bunun çalışması için alt bit normalde sıfır olmalıdır.
Bu bilgiler, tutamaçlara opak değerler olarak bakmaya devam etmesi gereken çoğu uygulama yazarı için yararlı değildir. Etiket bitlerine ilgi duyanlar, düşük seviyeli sınıf kütüphaneleri uygulayan veya çekirdek nesneleri daha geniş bir çerçeve içine alan kişilerdir..
Kaynak: Çekirdek tutamaçları neden sürekli dörtte birdir??
Daha fazla okuma
Eski Yeni Şey: Raymond Chen Tarafından Windows'un Gelişimi Boyunca Pratik Gelişim (Microsoft şirketinde Principal Software Design Engineer)
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.