GNU/Linux >> Znalost Linux >  >> Linux

Maximální paměť využitelná 32bitovým systémem RHEL 6

No, neočekávám stručnou odpověď než tu, která je k dispozici zde.

U 32bitového OS chápu, že adresa je vyjádřena ve 32 bitech, takže nanejvýš OS může využít 2^32 =4 GB paměti

Nejvíce, že proces může adresovat je 4 GB. Potenciálně zaměňujete paměť s adresním prostorem . Proces může mít více paměti než adresního prostoru. To je naprosto legální a zcela běžné ve zpracování videa a dalších aplikacích náročných na paměť. Procesu lze přidělit desítky GB paměti a libovolně ji zasouvat do a z adresového prostoru. uživatel může mít pouze 2 GB adresní prostor najednou.

Pokud máte u domu garáž pro čtyři auta, stále můžete vlastnit padesát aut. Nemůžete je mít všechny ve své garáži. Abyste jich mohli uložit alespoň 46, musíte mít pomocné úložiště někde jinde; která auta si necháte ve své garáži a která na parkovišti dole, je jen na vás.

Znamená to jakýkoli 32bitový operační systém, ať už je to Windows nebo unix, pokud má stroj RAM + stránkovací soubor na pevném disku více než 4 GB, například 8 GB RAM a 20 GB stránkovací soubor, nikdy nebude "využita paměť"?

To rozhodně neznamená. Jediný proces by mohl spotřebovat více paměti než to! Opět množství paměti, kterou proces používá, téměř vůbec nesouvisí s množstvím virtuálního adresového prostoru, který proces používá. Stejně jako počet aut, která máte ve své garáži, zcela nesouvisí s počtem aut, která vlastníte.

Navíc dva procesy mohou sdílet nesoukromé paměťové stránky . Pokud všech dvacet procesů načte stejnou knihovnu DLL, všechny procesy sdílejí stránky paměti pro tento kód. Nesdílejí adresový prostor virtuální paměti , sdílejí paměť .

V případě, že to není jasné, chci říct, že měli byste přestat myslet na paměť a adresní prostor jako na totéž, protože to vůbec není totéž.

pokud má tento stroj s 32bitovým operačním systémem 2 GB RAM a 2 GB stránkovacího souboru, zvýšení velikosti souboru stránky výkonu nepomůže. Je to pravda?

Máte padesát aut a garáž pro čtyři auta a dole v ulici parkoviště pro 100 aut. Zvětšíte velikost parkoviště na 200 míst. Zrychluje se některé z vašich aut díky tomu, že nyní máte 150 parkovacích míst navíc místo 50 parkovacích míst navíc?


Odpověď Rameshe je zcela špatná. Proces nemůže mít více paměti, než je adresní prostor, a to jednoduše proto, že jej nemůže adresovat. Chcete-li použít více než 4 GB, musí k němu proces přistupovat pomocí adresy, jako je použití potterů v C/C++. Pokud údajně můžete mít například 10 GB RAM, jak můžete říci procesu, aby přistupoval k datům umístěným na 5 GB, pokud vaše ukazatele v 32bitovém režimu mohou dosáhnout maximálně 4 GB? To je nemožné. Celé jeho vysvětlení souvisí s operačním systémem. Může aktivovat určité bloky maximálně 4 GB, z fondu řekněme 64 GB. Vždy jsou tedy současně maximálně 4 GB a každý proces může přistupovat nanejvýš 4 GB. Poté může SO pro jiný proces aktivovat jiný blok 4 GB z fondu, ale proces bude opět omezen na 4 GB. Ve skutečnosti, i když 32bitový ukazatel může adresovat až 4 GB, limit pro 32 -bitový proces je 3 GB.


Linux
  1. Jak změnit úroveň běhu v systému RHEL 7 Linux

  2. Linux – systém zamrzne, když mu dojde paměť?

  3. CentOS / RHEL:Jak zmenšit kořenový souborový systém LVM

  1. Konfigurace síťového rozhraní se statickou IP adresou na RHEL 7

  2. dmidecode:Získejte informace o systémovém hardwaru v systému Linux

  3. malloc vrací paměť nebo virtuální adresový prostor

  1. Jak zkontrolovat, zda je systém Linux 32bitový nebo 64bitový

  2. Zkontrolujte zatížení systému v systému Linux

  3. Jak zjistit počet soketů CPU v systému CentOS/RHEL