Linux, Perl, pretizeni systemu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Červen 2 16:12:41 CEST 2002


On Fri, 31 May 2002 martin.kula na deltaes.cz wrote:

> ja jsem to zkusil a system to nezborilo. Inkriminovany proces skoncil na 
> Out of memory a linux jel vesele dal.
> Poustel jsem ho jako JAKYKOLIV uzivatel ;o))) (tedy ne root).

Vec se ma asi takto:

pokud ten nenazrany proces nenarazi na limit, tak jednoho dne dojde
systemu pamet. A v tu chvili se mohou stat dve veci:

1. dalsi operace, ktera chce alokovat pamet, je schopna rozumnym
   zpusobem ohlasit sve selhani (napr. brk(), mmap()), coz znamena,
   ze je procesu, co o ni pozada, oznameno, ze pamet dosla;

2. dalsi operace, ktera chce alokovat pamet, tak cini vice ci mene
   implicitne, tj. je to copy-on-write nebo zvetsovani zasobniku
   (ted mne jina moznost nenapada), coz znamena, ze jedinou moznosti,
   jak se zotavit, je zabit nejaky proces: bud ten, co chce dalsi pamet,
   nebo nejaky jiny a pouzit tak uvolnenou pamet na uspokojeni potreb
   dalsich procesu.

To, ze Perl napsal "Out of memory", indikuje, ze doslo k prvni moznosti.
Perl chtel dalsi pamet, nic nedostal, tak se poslusne poroucel do vecnych
lovist. Naopak autor puvodniho prispevku narazil na druhou moznost: nez
stacil Perl spachat sebevrazdu, tak narazil nejaky jiny proces, jadro se
hluboce zamyslilo a rozhodlo se situaci resit odstrelenim nejake procesu.
A bohuzel si, jak uz to zakon schvalnosti predepisuje, vybralo k utraceni
ten nejmene vhodny ze vsech bezicich procesu.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux