为什么32位系统的PID最大是32768
1个回答
展开全部
每个进程都有一个独一无二的结构体即struct
task_struct,一个进程相关的所有信息都可以在该结构体里标识,每一个进程的task_struct又组成了一个任务队列,用双向链表表示:另外每一个进程还对应一个独一无二的数字,即PID,PID最大值为32767(32768=8*4096,32位系统一个页是4096字节,每个字节为8bit),后一个进程创建的PID是前一个进程PID加1,当PID到达最大值后又从最小值开始,linux用pidmap_array位图来知道哪些pid被使用,一个进程中所有线程使用的PID是相同的,但是有各自不同的线程ID,线程ID只在该进程环境中有效,进程的PID在整个系统是唯一的,
task_struct,一个进程相关的所有信息都可以在该结构体里标识,每一个进程的task_struct又组成了一个任务队列,用双向链表表示:另外每一个进程还对应一个独一无二的数字,即PID,PID最大值为32767(32768=8*4096,32位系统一个页是4096字节,每个字节为8bit),后一个进程创建的PID是前一个进程PID加1,当PID到达最大值后又从最小值开始,linux用pidmap_array位图来知道哪些pid被使用,一个进程中所有线程使用的PID是相同的,但是有各自不同的线程ID,线程ID只在该进程环境中有效,进程的PID在整个系统是唯一的,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询