進程ID

進程ID

進程ID(英語:processID)、PID)是大多數作業系統的核心用於唯一標識進程的一個數值。(簡言之,就是進程的綽號。)這一數值可以作為許多函式調用的參數,以使調整進程優先權、kill(命令)進程之類的進程控制行為成為可能。

基本介紹

  • 中文名:進程標識符(進程ID)
  • 外文名:process identifier
系統描述,微軟系統,PID檔案,

系統描述

類UNIX作業系統中,新進程都衍自系統調用fork函式(英語:Fork (operating system))。fork()調用會將子進程的PID返回給父進程,使其可以之指代子進程,從而在需要時以之為函式參數。例如,若以子進程PID為參數調用waitpid(),可使父進程以休眠狀態等待子進程結束;若以之為參數調用kill()(英語:kill (command)),便可結束對應子進程。
在各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 XHP-UX下,則是由100開始重分配。在分配PID時,若遇到已分配的PID,則直接跳過,繼續遞增查找下一個可分配PID。

微軟系統

Microsoft Windows系列作業系統提供了一系列API,以使開發者可以獲取相關PID,如用於獲取當前進程PIDGetProcessId()[2]、返回其他進程PID的GetProcessId()

PID檔案

有些長時間運行的進程(如MySQL的守護進程)會將自己的PID寫入一個檔案,以使其他進程可尋獲之。

相關詞條

熱門詞條

聯絡我們