Идентификатор процесса

Идентификатор процесса (англ. Process IDentifier, PID) — уникальный номер (идентификатор) процесса в многозадачной операционной системе (ОС). В ОС семейства Windows PID хранится в переменной целочисленного типа[1]. В ОС, соответствующих стандарту POSIX, тип переменной, хранящей PID, определяется каждой ОС индивидуально[2]. Например, в ОС Linux PID хранится в переменной целочисленного типа (int)[3].

В Unix-подобных ОС

Часто имеется два специальных значения PID: swapper или sched — процесс с номером 0 (часто не отображается в списке), отвечает за выгрузку страниц и является частью ядра операционной системы. Процесс 1 обычно является процессом init, ответственным за запуск и остановку системы. Также становится родительским процессом для процессов-сирот.

В Linux максимальный возможный идентификатор процесса по умолчанию ограничен 32 тысячами,[4] но может быть перенастроен на величину до 4 миллионов. При этом максимальный идентификатор потока в ОС ограничен 500 млн.[5]

Примечания

  1. MSDN:GetCurrentProcessId (англ.). Архивировано из оригинала 31 октября 2012 года.
  2. POSIX Function Reference : getpid (англ.). Архивировано 31 октября 2012 года.
  3. /usr/include/bits/types.h:69 (англ.). Архивировано 31 октября 2012 года.
  4. Linux Scalability
  5. http://lxr.free-electrons.com/source/include/linux/threads.h#L29 Архивная копия от 20 сентября 2015 на Wayback Machine " 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.]"