* Re: [mdk-re] Процессы
@ 2001-01-29 11:34 denf
2001-01-29 12:22 ` cornet
0 siblings, 1 reply; 2+ messages in thread
From: denf @ 2001-01-29 11:34 UTC (permalink / raw)
To: mandrake-russian
01/29/2001 02:18:10 PM mandrake-russian-admin wrote:
>Hello, всем :-))
>
>Вопрос из общей теории OS.
>На сколько я заметил при создании нового процесса, его pid обязательно
>будет больше (и как правило на 1), чем самый большой ранее использованый
>номер. Это значит, что при большом uptime, может возникнуть ситуация
>когда счетчик процессов зашкалит и для вновь создаваемого процесса не
>будет номера или регистр завернется и pid будет равет 1 как у init. Я
>понимаю, что такого на самом деле не_происходит, так как иначе бы
>сервера падали как листья по осени...
>
>Может кто на пальцах обьяснит мне каков механизм разрешения подобных
>ситуаций или подскажет что
>почитать?
Все просто: постоянное увеличение на 1 - это самый быстрый способ
выделения свободных pid (если не поддерживать список свободных: конечно),
когда дойдет до самого большого, начнет с начала, причем, большинство из
начальных процессов уже умерли и выделение опять будет быстрым.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [mdk-re] Процессы
2001-01-29 11:34 [mdk-re] Процессы denf
@ 2001-01-29 12:22 ` cornet
0 siblings, 0 replies; 2+ messages in thread
From: cornet @ 2001-01-29 12:22 UTC (permalink / raw)
To: mandrake-russian
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
В сильно упрощенном варианте верно?
> 1╘щ╜╘\x1e╝К,┴╘Фj)b· b╡с\x1a²зз▒ЙН╡х ·X╖╩^[^jh╘∙╕Л╝Хm╤÷Ъ√)Нфв *ei╩+╩Ы ┼Y ÷Ыb╡ь╖~▐ФjwkjG╚╨к"an==
--
******** FIRE & STEEL ********
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-01-29 12:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-01-29 11:34 [mdk-re] Процессы denf
2001-01-29 12:22 ` cornet
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git