Bagaimana proses dalam nomor UNIX?

17

Saya tidak dapat menemukan pola apa pun ketika saya melihat penomoran PID di tabel proses ( ps -a), karena PID bukan angka berikutnya dan kadang-kadang ada "celah" besar di antara angka-angka itu. Apakah karena mungkin ada beberapa proses yang berjalan untuk waktu yang singkat dan mereka memesan beberapa PID? Apakah ada beberapa rentang, setelah itu proses penomoran ulang?

Saya menggunakan Mac OS X tapi saya kira jawabannya harus berlaku untuk UNIX secara umum.

syntagma
sumber

Jawaban:

18

Ya dalam kedua hal.

Banyak proses berumur pendek. Mereka mendapatkan PID, menjalankan, menyelesaikan, dan PID menghilang dari tabel proses.

Proses kadang-kadang hanya hidup selama sepersekian detik!

Seringkali ketika program mulai mereka menjalankan banyak perintah sebagai bagian dari memeriksa sistem dan menginisialisasi lingkungan mereka.

Jumlah PID maksimum tergantung pada sistem dan terkadang dapat dikonfigurasi. Pada dasarnya jika Anda tahu Anda akan memiliki sejumlah besar proses, maka Anda mungkin perlu menambah jumlahnya, tetapi pada sistem operasi baru saya percaya jumlah maksimum biasanya cukup besar untuk sebagian besar beban kerja.

PID adalah entri dalam tabel proses, dan semakin banyak Anda memiliki lebih banyak memori tabel proses mengambil.

Lihatlah pertanyaan terkait ini: /server/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

Juga perhatikan bahwa terkait dengan ini adalah "jumlah proses maksimum per pengguna" yang merupakan ukuran untuk melindungi terhadap pengguna jahat yang dengan sengaja menciptakan banyak proses untuk memakan seluruh tabel proses.

Johan
sumber
7

Dimungkinkan juga untuk mengkonfigurasi beberapa kernel modern untuk menetapkan PID acak ke proses baru untuk meningkatkan keamanan. Setidaknya Linux dan FreeBSD dapat melakukannya dengan pengaturan sysctl, dan OpenBSD selalu melakukannya. Dalam kasus-kasus itu Anda bisa mengatakan lebih sedikit tentang skema penomoran.

unperson325680
sumber
Tahukah Anda apa, jika ada, biaya kinerja yang ada untuk ini?
Bruce Ediger
@ Bruce: patch yang diusulkan pertama memiliki kinerja kasus terburuk O (infty) karena naif acak. Tapi saya pikir mereka punya sesuatu yang aman dan berguna. Saya tidak menemukan sesuatu saat ini pada topik ... tidak digunakan yang saya percaya. :)
unperson325680
5
PID acak terdengar seperti keamanan melalui ketidakjelasan bagi saya.
Johan
Itulah apa adanya, sebagian besar ...
unperson325680
Appart dari inisiatif individu, Linux biasa mengusulkannya hanya melalui patch grsecurity , tim kernel Linux selalu menolak untuk mengimplementasikannya ( contoh di sini ) dan bahkan tim grsecurity akhirnya menjatuhkannya pada akhir 2006 .
WhiteWinterWolf