C++进程数量的限制
C++進程數量的限制
- 最大理論數
- 可創建的實際數
最大理論數
1.每個進程都要在全局段描述表GDT中占據兩個表項
1.每個進程的局部段描述表LDT都作為一個獨立的段而存在,在全局段描述表GDT中要有一個表項指向這個段的起始地址,并說明該段的長度以及其他一些參數
2.每個進程還有一個TSS結構(任務狀態段)也是一樣 所以,每個進程都要在全局段描述表GDT中占據兩個表項
2.GDT容量?
1.段寄存器中用作GDT表下標的位段寬度是13位,所以GDT中可以有2^13=8192個描述項
2.除一些系統的開銷(例如GDT中的第2項和第3項分別用于內核 的代碼段和數據段,第4項和第5項永遠用于當前進程的代碼段和數據段,第1項永遠是0,等等)以外,尚有8180個表項可供使用。所以理論上系統中最大的進程數量是8180/2=4090
可創建的實際數
1.linux內核通過進程標識符PID來標識進程,為了與老版本的Unix或者Linux兼容,PID的最大值默認設置為32768。可以通過cat /proc/sys/kernel/pid_max查看PID的最大值: bash chenximing@chenximing-MS-7823:~$ cat /proc/sys/kernel/pid_max 32768
2.可以通過下面方式修改最大PID
1.首先,ulimit -u 新值
2.然后,還需設置內核參數kernel.pid_max:sysctl -w kernel.pid_max=新值
總結
以上是生活随笔為你收集整理的C++进程数量的限制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国航天员大队有多厉害?
- 下一篇: 民国飞行员服值钱吗