最大理论数
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=新值