Nilai maksimum PID di Linux dapat dikonfigurasi. Anda dapat mengaksesnya melalui /proc/sys/kernel/pid_max
mengajukan. File ini (baru di Linux 2.5) menentukan nilai di mana PID dibungkus (yaitu, nilai dalam file ini lebih besar dari PID maksimum). Nilai default untuk file ini, 32768, menghasilkan rentang PID yang sama seperti pada kernel sebelumnya. Nilai dalam file ini dapat disetel ke nilai berapa pun hingga 2^22 (PID_MAX_LIMIT, sekitar 4 juta).
Dari perspektif pemrograman, Anda harus menggunakan pid_t
ketik untuk bekerja dengan ID proses. Anda bahkan dapat mengakses nilai min/maksnya menggunakan karakter bilangan bulat. Berikut adalah contoh melakukannya menggunakan C++ dan Boost di Linux 2.6.X yang berjalan di platform x86_64:
$ cat test.cpp
#include <sys/types.h>
#include <iostream>
#include <boost/integer_traits.hpp>
using namespace std;
int main ()
{
cout << "pid_t max = " << boost::integer_traits<pid_t>::const_max << endl;
}
$ ./test
pid_t max = 2147483647
Dari proc(5)
halaman manual:
/proc/sys/kernel/pid_max
(sejak Linux 2.5.34)File ini menentukan nilai di mana PID membungkus (yaitu, nilai dalam file ini lebih besar dari PID maksimum). PID yang lebih besar dari nilai ini tidak dialokasikan; dengan demikian, nilai dalam file ini juga bertindak sebagai batas seluruh sistem pada jumlah total proses dan utas. Nilai default untuk file ini, 32768, menghasilkan rentang PID yang sama seperti pada kernel sebelumnya. Pada platform 32-bit, 32768 adalah nilai maksimum untuk pid_max. Pada sistem 64-bit,
pid_max
dapat disetel ke nilai apa pun hingga 2^22 (PID_MAX_LIMIT
, sekitar 4 juta).
Ini 32768 secara default, Anda dapat membaca nilai di sistem Anda di /proc/sys/kernel/pid_max
.
Dan Anda dapat menyetel nilai lebih tinggi pada sistem 64-bit (hingga 2 =4.194.304) dengan:
echo 4194304 > /proc/sys/kernel/pid_max
Baca selengkapnya di sini:
http://www.cs.wisc.edu/condor/condorg/linux_scalability.html (melalui archive.org)