У меня есть несколько глупый вопрос, если у меня есть ряд процессов, которые созданы ... это не обязательно какое-то наследование, pid процессов должен быть числом непрерывным или случайные pids?О pid процесса
ответ
Это определяется операционной системой.
В целом, они обычно последовательно назначаются ОС. Однако это поведение не является основанием для принятия решений, поскольку в большинстве спецификаций операционной системы указано, что распределение идентификатора процесса не является детерминированным (т. Е. Оно может быть случайным и может изменяться в будущей версии и т. Д.).
Зависит от вашей платформы, но вы не должны зависеть от какого-либо конкретного заказа на ваш pid.
В Windows pid обычно выделяются все чаще, но по мере выхода процессов pid's может быть переработана, и вы увидите случаи, когда более новый процесс имеет более низкий pid, чем более старый процесс. Кроме того, pid выходят из того же пространства имен, что и tid, поэтому вы не увидите увеличения pid на 4 при запуске новых процессов.
С вашей точки зрения они будут случайными. Система управляет этими числами и назначает их по мере создания процессов. Быстрый взгляд на PID в настоящее время на моей системе показывает, что все они делятся на 4 ...
Я делаю программу на C с использованием семафора, которая имитирует процесс создания и выпуска, тогда я не знаю, следует ли назначать случайный процесс PID или каждый присваивать последовательные цифры из значения, я хочу, чтобы симуляция была такой же насколько это возможно для процессов разминирования в linux – franvergara66
В Linux pids обычно распределяются последовательно по общесистемной основе, но они будут периодически обматываться, и могут быть «пробелы», вызванные другими несвязанными процессами. В крайнем случае у вас может быть «зазор», достаточно широкий, чтобы вызвать эту обертку. Поэтому не принимайте никаких конкретных заказов - вместо этого явным образом отслеживаю идентификаторы PID вашего родителя или дочернего процесса.
Я делаю программу на C с использованием семафора, которая имитирует процесс создания и выпуска, тогда я не знаю, следует ли назначать случайный процесс PID или каждый присваивать последовательные цифры из значения, Я хочу, чтобы симуляция была максимально похожа на процессы разминирования в linux. – franvergara66
Если вы делаете симуляцию, лучший подход с точки зрения фьюзинга - это иметь несколько методов (случайный, последовательный, почти последовательный) и попробовать все вы тестируете каждый. – bdonlan
Если вы создаете эти дочерние элементы, вы будете знать pid, pid зависит от планировщика ОС, вас это не волнует.
Вот как проверить, что ваша система:
for i in $(seq 20); do ps; done | grep ps
ИОКи команды «PS» являются последовательными процессами, или как можно ближе к последовательным, как и любой другой абонент мог разумно ожидать, чтобы быть в состоянии породить.
Мой терминал cygwin в Windows выделяет их случайным образом, мой веб-узел выделяет их последовательно (со случайными промежутками, которые предположительно для процессов, выполняемых другими пользователями или серверами).
Некоторые считают, что последовательное распределение ПИД-регулятора является небольшой проблемой безопасности, поскольку оно может утечки информации между пользователями многопользовательской системы.
Лучшим подходом будет для i в 'seq 20'; do sh -c 'echo $$'; done Grepping для «ps» в выводе «ps» может получить некоторый шум в результате (например, другие пользователи, выполняющие ps одновременно) ... – bdonlan
Конечно, я просто думал о быстром тестировании разработчика из командной строки , Если вы написали скрипт или что-то, что полагалось на результат, это другое дело. –
В AIX вы часто увидите более крупные (например, 7-значные) PID, и они не обязательно выделяются полупоследовательно (хотя я тестировал цикличность с шагом 2, а на машине был другой пользователь , поэтому это может не означать многого).
Fresh Войти на AIX 5.3 машины:
$ ps
PID TTY TIME CMD
1060910 pts/27 0:00 -ksh
1155224 pts/27 0:00 ps
$
- 1. PID Загрязнение запуском процесса
- 2. Получить PID нового процесса
- 3. Получить имя процесса pid
- 4. получения PID процесса детского
- 5. pid текущего процесса
- 6. Определить pid завершенного процесса
- 7. Как получить pid процесса?
- 8. Идентифицировать PID долгого процесса
- 9. прибудет PID процесса - Linux
- 10. Получить имя процесса по PID
- 11. Название процесса Unix от pid
- 12. PID процесса Java на Mac
- 13. Как получить PID фонового процесса?
- 14. Как найти pid сиротного процесса
- 15. Получение pid процесса в zsh
- 16. Посылая команды идентификатора процесса (PID)
- 17. Зачем использовать идентификатор процесса (PID)?
- 18. PHP: получить PID определенного процесса
- 19. PHP фонового процесса PID проблема
- 20. Как получить pid определенного процесса
- 21. Получить PID запуска процесса firefox
- 22. Получить pid запущенного процесса C++
- 23. PID процесса, который создал файл
- 24. fork() возвращает pid существующего процесса
- 25. Получить информацию о PID
- 26. Получение PID процесса, созданного в C#
- 27. Получить PID процесса при его открытии
- 28. Python - завершение дочернего процесса или PID?
- 29. Найти PID процесса, который заблокировал файл
- 30. linux как получить параметры процесса с pid?
в Linux, \t не имел ни малейшего представления о том, что они также зависит от операционной системы .. – franvergara66