[mdk-re] Процессы
=?iso-8859-1?q?denf_=CE=C1_novosoft=2Eru?=
=?iso-8859-1?q?denf_=CE=C1_novosoft=2Eru?=
Пн Янв 29 13:54:01 MSK 2001
01/29/2001 03:21:40 PM mandrake-russian-admin wrote:
>denf на novosoft.ru wrote:
>> Все просто: постоянное увеличение на 1 - это самый быстрый способ
>> выделения свободных pid (если не поддерживать список свободных:
конечно),
>> когда дойдет до самого большого, начнет с начала, причем, большинство из
>> начальных процессов уже умерли и выделение опять будет быстрым.
>
>Hello!!
>
>Я правильно понял, что когда зашкалило число процессов, то работает
>алгоритм типа:
>
>last_enabled_pid=1; # вызывается только при зашкаливании
>
>for (n=last_enabled_pid+1; n<=max_pid; n++)
> {
> if (n != занято_активным_процессом) exit; # если большинство
>древних
>процессов уже ушли то скорее всего сразу же будет exit.
> }
>new_pid = n;
>last_enabled_pid=n; # используется при следующих вызовах for
>
>
>В сильно упрощенном варианте верно?
Не знаю, как на самом деле ;), но думаю, что близко к истине с некоторыми
поправками:
при переходе через максимум нужно начать с низу
последние несколько процессов могут быть созданы только рутом
ну и при исчерпании всех процессов алгоритм не должен зацикливаться
Подробная информация о списке рассылки community