ZXNet эхоконференция «zxnet.pc»


тема: вот где потенциальное место для багов



от: Aleksandr Majorov
кому: Kirill Frolov
дата: 27 Nov 2001
Привет Kirill!

26 Ноя 01 22:43, Kirill Frolov -> All:

KF> Есть у меня например скрипт. Скрипт вычисляет путём хитрых
KF> манипуляций какой PID ему надо прибить, ну и прибивает. А если,
KF> например, прибиваемый процесс в процессе вычисления его PID сдохнет

После того как PID вычислил запомни его, затем проверь
на наличие и тока тогда убивай ;)

KF> и зародится совсем другой процесс с таким-же PID ?
KF> Всё сглючит, из системного блока дым пойдёт и винты
KF> отформатируются.
KF> Как это обойти?

Скольки битный у тебя PID?
Минимум 16 бит == 65536 процессов.
В системе заведен счетчик "какой следующий PID можно выдать"
И этот счетчик работает только на инкремент.
Так что для того, чтобы получить процесс с таким-же PID
нужно запустить еще 65536 процессов.
(Хотя на самом деле меньше - минус количество уже запущенных ;)
Какова вероятность что у тебя между подсчетом PID и проверкой
его наличия и убивания запустится еще 65536 процессов - считай сам ;))

ЗЫ: то что я выше написал - это примерный ответ, который был дан мне.
КОгда меня заинтересовал именно твой вопрос ;)

Aleksand




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Рецепт - Все смотрели фильм Матрица?.. Помните сцену, когда лысый нео с приятелями пытается хавать какую-то хрень, с виду похожую на овсянку?
Реклама - Реклама и объявления ...
От авторов - закуриваю последнюю сигарету, и думаю чего бы вам написать светлого и доброго...
Кодинг - Совет вождей (сказочка). Кошка в зоопарке.
EMS 1.00 - Эпопея продолжается... Мы никак не предполагали, что в EMS заинтересуются за пределами Беларуси.

В этот день...   29 апреля