ALT Linux Community general discussions
 help / color / mirror / Atom feed
* 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