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

редактировать

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

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

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

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

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

В Linux максимальный идентификатор процесса задается псевдо-файлом / proc / sys / kernel / pid_max.

Pidfile

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

Microsoft Windows

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

См. Также
Ссылки

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

Последняя правка сделана 2021-06-02 07:27:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте