源代碼中: max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8;
init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2; init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2; 在i386上是4096
到底是512,還是4096
>>> 此貼的回復 >> 現在的內核好像沒有這個限制了,《linux內核設計與實現》上說為了與老版本的unix和linux兼容,pid的最大值默認是32767(short int的最大值),如果你需要的話還可以不考慮和老版本兼容,修改/proc/sys/kernel/pid_max來提高上限。
>>> 此貼的回復 >> 在LINUX 0.11中支持64個
>>> 此貼的回復 >> 每個進程都要在全局段描述表GDT中占據兩個表項,段寄存器中用作GDT表下標的位段寬度是13位,所以GDT中可以有8192個描述項,除一些系統開銷以外,還有8180個表項可以使用,所以系統中理論上最大的進程數是4090
>>> 此貼的回復 >> 64個 見《Linux內核設計與實現》陳莉君等譯
>>> 此貼的回復 >> Linux允許的最大進程數可以通過 ulimit -u來查看
>>> 此貼的回復 >> 高版本的LINUX內核對進程的限制如樓上所說,從理論上說只會受到整形變量表示的域的限制,實際上會受到內存的限制
>>> 此貼的回復 >> 看你的RAM 和SWAP的大小