Pamat vyhradena pre proces

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Duben 24 15:26:07 CEST 2000


On 13 Apr 2000, Stanislav Meduna wrote:

Hele, nasel jsem jednu starou otazku, na ktery AFAIK dosud
nikdo neodpovedel...

> da sa v Linuxe nejako urobit, aby mal konkretny proces
> vzdy zarucene, ze dostane pamat az do nejakeho limitu?
> Pochopitelne bez toho, aby si ju proste na zaciatku
> naalokoval, nieco do nej zapisal a potom minutu hrkal
> s diskom kym to bude kvoli nepouzivaniu svapovat von :-)

Napadaji mne tri zakladni zpusoby, jak alokovat pamet:
1. anonymni stranky (ty, co vznikaji pomoci copy-on-write),
2. mmapovane soubory (s MAP_SHARED) a 3. shmget().

Ad 1. Jestlize nejake jadro skutecne podporuje vypnuti overcommitu, tak
  by teoreticky melo byt zaruceno, ze bude odkud anonymni stranky brat,
  ale osobne bych na to moc nespolehal, pokud to neznamena, ze jadro
  automaticky rezervuje misto ve swapu (coz AFAIK v Linuxu nefunguje,
  protoze pro nej je volna pamet = volna RAM + volny swapspace).
  Navic muze byt (pokud si clovek ty stranky "neosaha") problem se
  strankovymi tabulkami.
Ad 2. Aby bylo misto skutecne rezervovane, pak je nezbytne do vsech
  bloku opravdu zapsat (nebo pouzit fs, kde nejde vytvaret derave
  soubory...se stejnym vysledkem). Ale pokud je ten proces, co to
  ma pouzivat, vzdy jen jeden, pak to lze udelat jednou do zasoby.
  Ovsem potencialni problem s tabulkami je asi i tady.
Ad 3. Urcite na tom neni lepe nez 1.

Obavam se, ze pokud nekdo hleda OS, kde vsechno funguje dokonale i pri
stresovych situacich, tak je mezi unixy a wokny a podobnymi ve spatne
spolecnosti. :)

--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