[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