UNIX'teki süreçler nasıl numaralandırılıyor?


17

ps -aPID'ler sonraki sayılar olmadığından ve bazen bu sayılar arasında büyük "boşluklar" olduğundan, işlem tablosundaki ( ) PID'lerin numaralandırmasına baktığımda hiçbir desen bulamıyorum . Kısa bir süre için çalışan bazı süreçler olabileceği ve bazı PID'leri rezerve ettiği için mi? Süreçlerin numaralandırılmasının ardından bir aralık var mı?

Mac OS X kullanıyorum, ancak cevabın genel olarak UNIX için geçerli olması gerektiğini düşünüyorum.

Yanıtlar:


18

Her iki konuda da evet.

Birçok süreç kısa ömürlüdür. Bir PID alırlar, çalışırlar, bitirirler ve PID işlem tablosundan kaybolur.

Süreçler bazen sadece bir saniyeliğine yaşar!

Genellikle programlar başladığında, sistemi kontrol etmenin ve ortamlarını başlatmanın bir parçası olarak çok sayıda komut çalıştırırlar.

Maksimum PID numarası sisteme bağlıdır ve bazen yapılandırılabilir. Temel olarak çok sayıda işlem yapacağınızı biliyorsanız, o zaman sayıyı artırmanız gerekebilir, ancak yeni işletim sistemlerinde, maksimum sayının çoğu iş yükü için genellikle yeterince büyük olduğuna inanıyorum.

PID'ler işlem tablosundaki girdilerdir ve daha fazla belleğe sahip olduğunuzda işlem tablosunda yer kaplar.

Bu ilgili soruya bir göz atın: /server/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

Bununla ilgili olarak, kötü niyetli bir kullanıcıya karşı tüm süreç tablosunu tutmak için kasıtlı olarak birçok işlem oluşturan bir önlem olan "kullanıcı başına maksimum işlem sayısı" olduğunu da unutmayın.


7

Bazı modern çekirdekleri, gelişmiş güvenlik için yeni süreçlere rastgele PID'ler atayacak şekilde yapılandırmak da mümkündür. En azından Linux ve FreeBSD bunu bir sysctl ayarıyla yapabilir ve OpenBSD her zaman yapar. Bu durumlarda numaralandırma şemaları hakkında daha az şey söyleyebilirsiniz.


Bunun için performans maliyetinin ne olduğunu biliyor musunuz?
Bruce Ediger

@Bruce: Önerilen ilk yama, naif randomizasyon nedeniyle O'nun (infty) en kötü durum performansına sahipti. Ama güvenli ve kullanışlı bir şeyleri olduğunu düşünüyorum. Konuyla ilgili çok güncel bir şey bulamadım ... inandığım için değil. :)
unperson325680

5
Rastgele PID'ler bana anlaşılırlıktan dolayı güvenlik gibi geliyor.
Johan

Çoğunlukla bu, çoğunlukla ...
unperson325680

Bireysel girişimlerden Appart, Linux'u sadece grsecurity yamasıyla önermişti , Linux çekirdek ekibi her zaman onu uygulamayı reddetti ( burada örnek ) ve hatta grsecurity ekibi nihayet 2006'nın sonunda düştü .
WhiteWinterWolf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.