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

В вычисление, то идентификатор процесса (a.k.a. идентификатор процесса или же PID) - это число, используемое большинством Операционная система ядра - такие как Unix, macOS и Windows - однозначно идентифицировать активный процесс. Этот номер может использоваться в качестве параметра в различных вызовах функций, позволяя управлять процессами, например настраивать приоритет процесса или убийство это вообще.

Unix-подобный

В Unix-подобный операционных систем, новые процессы создаются вилка() системный вызов. PID возвращается в родительский процесс, позволяя ему обращаться к дочернему элементу в дальнейших вызовах функций. Родитель может, например, дождаться завершения дочернего процесса с помощью waitpid () функции или завершить процесс с помощью убийство().

Есть две задачи со специально выделенными идентификаторами процессов: обменник или же расписание имеет идентификатор процесса 0 и отвечает за пейджинг, и на самом деле является частью ядра, а не обычным пользовательский режим процесс. ID процесса 1 обычно в этом процесс, в первую очередь отвечающий за запуск и завершение работы системы. Первоначально идентификатор процесса 1 не был специально зарезервирован для init какими-либо техническими мерами: он просто имел этот идентификатор как естественное следствие того, что он был первым процессом, запущенным ядром. Более поздние системы Unix обычно имеют дополнительные компоненты ядра, видимые как «процессы», и в этом случае PID 1 активно зарезервирован для процесса инициализации, чтобы поддерживать согласованность со старыми системами.

В первую очередь, идентификаторы процессов обычно назначаются последовательно, начиная с 0 и увеличиваясь до максимального значения, которое варьируется от системы к системе. Как только этот предел достигнут, выделение возобновляется с 300 и снова увеличивается. В macOS и HP-UX распределение начинается с 100. Однако для этого и последующих проходов все PID, все еще назначенные процессам, пропускаются. Некоторые считают, что это потенциальная уязвимость системы безопасности, поскольку она позволяет извлекать информацию о системе или незаметно передавать сообщения между процессами. Таким образом, реализации, которые особенно озабочены безопасностью, могут выбрать другой метод назначения PID.[1] В некоторых системах, например MPE / iX используется наименьший доступный PID, иногда с целью минимизировать количество страниц ядра с информацией о процессе в памяти.

Текущий идентификатор процесса предоставляется getpid () системный вызов или как переменная $$ в ракушке. Идентификатор родительского процесса можно получить getppid () системный вызов.

На Linux, максимальный идентификатор процесса задается псевдо-файлом / proc / sys / ядро ​​/ pid_max.[2]

Pidfile

Некоторые процессы, например, мок музыкальный плеер и MySQL daemon запишите свой PID в задокументированное расположение файла, чтобы другие процессы могли его найти.

Майкрософт Виндоус

На Windows семейства операционных систем, можно получить идентификатор текущего процесса, используя GetCurrentProcessId () функция Windows API,[3] и ID других процессов, использующих GetProcessId ().[4] Внутренне идентификатор процесса называется ID клиента, и выделяется из того же пространства имен, что и нить ID, чтобы эти два никогда не пересекались. В Процесс простоя системы дается идентификатор процесса 0. Системный процесс дается идентификатор процесса 8 на Windows 2000 и 4 на Windows XP и Windows Server 2003.[5] На Семейство Windows NT Для операционных систем идентификаторы процессов и потоков кратны 4, но это не является частью спецификации.[6]

Смотрите также

Рекомендации

  1. ^ comp.unix.aix Часто задаваемые вопросы, получено 2008-07-21
  2. ^ "proc - псевдофайловая система информации о процессе", Руководство программиста Linux, получено 2009-12-28
  3. ^ "Функция GetCurrentProcessId", Центр разработки для Windows, Microsoft, 5 декабря 2018
  4. ^ "Функция GetProcessId", Центр разработки для Windows, Microsoft, 5 декабря 2018
  5. ^ Руссинович Марк; Дэвид А. Соломон (2005), «Глава 2: Архитектура системы», Внутреннее устройство Microsoft Windows (4-е изд.), Microsoft Press, стр.76, ISBN  0-7356-1917-4
  6. ^ Чен, Раймонд (2008-02-28), «Почему идентификаторы процессов и потоков кратны четырем?», Старая новая вещь, Microsoft

Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.