当前位置: 技术问答>linux和unix
threads.h中的关于pid最大值的一段程序
来源: 互联网 发布时间:2017-04-22
本文导语: 程序如下: /* * This controls the default maximum pid allocated to a process */ #define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000) /* * A maximum of 4 million PIDs should be enough for a while. * [NOTE: PID/TIDs are limited to...
程序如下:
请问CONFIG_BASE_SMALL ? 0x1000 : 0x8000是什么意思?CONFIG_BASE_SMALL是什么?
/*
* This controls the default maximum pid allocated to a process
*/
#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
/*
* A maximum of 4 million PIDs should be enough for a while.
* [NOTE: PID/TIDs are limited to 2^29 ~= 500+ million, see futex.h.]
*/
#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 :
(sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))
请问CONFIG_BASE_SMALL ? 0x1000 : 0x8000是什么意思?CONFIG_BASE_SMALL是什么?
|
CONFIG_BASE_SMALL -- 这个应该是为小内存/嵌入式设备使用的,打开这个选项部分内核的核心数据结构会使用较小的值,因此会占用更小的内存。
参考:http://www.spinics.net/lists/newbies/msg39782.html
对于#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
这个具体的例子来说,也就是表明在打开了CONFIG_BASE_SMALL后,最大的pid只允许到0x1000即4K,而默认情况下为0x8000即32K。
貌似在能看到的系统里都没打开CONFIG_BASE_SMALL这个选项(可以看看自己所用内核的config文件以便确认)。
参考:http://www.spinics.net/lists/newbies/msg39782.html
对于#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
这个具体的例子来说,也就是表明在打开了CONFIG_BASE_SMALL后,最大的pid只允许到0x1000即4K,而默认情况下为0x8000即32K。
貌似在能看到的系统里都没打开CONFIG_BASE_SMALL这个选项(可以看看自己所用内核的config文件以便确认)。