Diit.cz - Novinky a informace o hardware, software a internetu

Diskuse k DragonFly BSD 5.0: HAMMER2 a 900 000 procesů

> Jelikož může PID (process ID) mít v DragonFly BSD maximálně šest míst ...

WTF?

+1
0
-1
Je komentář přínosný?

Šestimístné číslo v desítkové soustavě, tj. 0-999999.

+1
+1
-1
Je komentář přínosný?

Právě to mě překvapilo, desítková soustava. Asi z nějakých důvodů nemohou použít 32-bit číslo. Jeden milión je binárně 11110100001000111111, takže bych očekával limit na 20 nebo 24 bitů. Nechce se mi věřit, že to omezení do jednoho miliónu je tam kvůli tomu, aby se to lépe zarovnávalo do sloupečku při tisku na obrazovku v desítkové soustavě.

+1
0
-1
Je komentář přínosný?

> Nechce se mi věřit, že to omezení do jednoho miliónu je tam kvůli tomu, aby se to lépe zarovnávalo do sloupečku

*Shrug* jsou to jen konvence. Resit bity ma smysl kdyby slo o nejaky hardwarovy register, nebo bys potreboval ulozit neco jineho do nekterych bitu. PID vidis prakticky jenom ve vypisu ps, a kernelu i CPU je prakticky ukradeno jaky je limit, takze proc to nenastavit na nejake hezke cislo...

BTW limit 20bitu nebo 24bitu je 1) zbytecne mnoho pro 99.9999% uzivatelu 2) by se masina stala podstatne vic zranitelna vuci forkbombe. 1M procesu muze mit smysl na 8-CPU 500-jadrove masine, na obycejnem PC by ty procesy meli pridelen CPU tak jednou za den :) rozumny limit by byl tak 1000-4000 * pocet procesoru.

Na Linuxu je jeste jedna finta, prvnich 300 PID je rezervovano pro procesy kernelu (maji v nazvu hranate zavorky), takze dostupne pro uzivatele jsou 301 - 32K. Cislo 300 taky neni moc hezke v binarni soustave, ale v kernelu je spousta takovych cisel - nektere vhodne limity zjistis jen v praxi a nemusi to byt mocniny 2ky.

EDIT: tak koukam a to posledni (min PID 300) asi uz neplati, na realnem systemu to vypada vselijak podivne :)

+1
0
-1
Je komentář přínosný?

Taky mě to napadlo, ale důvod jsem nikde nedohledal. Limit mám přímo z prohlášení autora:

Of course, our PIDs are currently limited to 6 digits, so a million is
kinda the upper limit in terms of discrete user processes (verses pthreads
which are less restricted). I'd rather not go to 7 digits (yet).

+1
+1
-1
Je komentář přínosný?

Pro psaní komentářů se, prosím, přihlaste nebo registrujte.