В1: Я хочу знать, как Windows/Linux назначает PID процессу, когда этот процесс начался? Это случайное число с разделителями? или это исправлено для файла на компьютере? у него есть специальный алгоритм? а также ...

В2: Можно ли изменить PID процесса после его запуска?

В3: Можно ли предотвратить запуск файла (я имею в виду, можно ли ограничить ОС, чтобы не назначать PID файла)?

1 ответ1

0

Этот ответ зависит от Windows.

PID не случайны. PID (и идентификаторы потоков; они находятся в одном и том же "числовом пространстве") управляются через многоуровневую структуру таблиц точно так же, как дескрипторы объектов ядра - хотя PID не являются дескрипторами. Как и значения дескрипторов, идентификаторы PID активно используются повторно, но для всех практических целей они непредсказуемы.

Q2: Нет.

Q3: Нет, потому что PID, который будет назначен новому процессу, неизвестен. Попытайся. Запустите экземпляр блокнота, затем закройте его. Некоторое время спустя запустите другой экземпляр блокнота. Почти наверняка ваши два блокнота будут иметь разные PID.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .