进程ID





在计算机领域,进程标识符英语:process identifier,又略称为进程ID英语:process ID)、PID)是大多数操作系统的内核用于唯一标识进程的一个数值。这一数值可以作为许多函数调用的参数,以使调整进程优先级、杀死进程之类的进程控制行为成为可能。




目录






  • 1 类UNIX系统


  • 2 Microsoft Windows


  • 3 PID文件


  • 4 参见


  • 5 参考资料





类UNIX系统


在类UNIX操作系统中,新进程都衍自系统调用fork()fork()调用会将子进程的PID返回给父进程,使其可以之指代子进程,从而在需要时以之为函数参数。例如,若以子进程PID为参数调用waitpid(),可使父进程以休眠状态等待子进程结束;若以之为参数调用kill(),便可结束对应子进程。


在各PID中,较为特别的是0号PID和1号PID。PID为0者为交换进程(英语:swapper),属于内核进程,负责分页任务;PID为1者则常为init进程,主要负责启动与关闭系统。值得一提的是,1号PID本来并非是特意为init进程预留的,而init进程之所以拥有这一PID,则是因为init即是内核创建的第一个进程。不过,现今的许多UNIX/类UNIX系统内核也有以进程形式存在的其他组成部分,而在这种情况下,1号PID则仍为init进程保有,以与之前系统保持一致[1]


PID的分配机制则因系统而异,一般从0开始,然后顺序分配,直到达到一个最大值(亦因系统而异),而后又从300开始重新分配;在Mac OS X和HP-UX下,则是由100开始重分配。在分配PID时,若遇到已分配的PID,则直接跳过,继续递增查找下一个可分配PID。



Microsoft Windows


Microsoft Windows系列操作系统提供了一系列API,以使开发者可以获取相关PID,如用于获取当前进程PIDGetCurrentProcessId()[2]、返回其他进程PID的GetProcessId()[3]。在操作系统内部,进程ID与线程ID在同一个命名空间中,因此二者不会重合。



PID文件


有些长时间运行的进程(如MySQL的守护进程)会将自己的PID写入一个文件,以使其他进程可寻获之。



参见



  • pidof


  • 用户标识符(UID)


  • 组标识符英语Group identifier(GID)



参考资料





  1. ^ ISRD Group. Basics Of Os Unix And Shell Programming. Tata McGraw-Hill Education. 2006. 


  2. ^ GetCurrentProcessId Function, Windows Developer Center, [2009-05-20] 


  3. ^ ProcessId Function, Windows Developer Center, [2011-03-05] 



本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。







Popular posts from this blog

How to pass form data using jquery Ajax to insert data in database?

National Museum of Racing and Hall of Fame

Guess what letter conforming each word