Co to tedy všechno znamená? - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Co to tedy všechno znamená?

23. ledna 2003, 00.00 | V minulém dílu našeho seriálu jsme dokončili popis příkazu vm_stat, který - jako příjemný doplněk obecnějšího topu - nabízí velmi slušný vhled do toho, co se vlastně v systému, konkrétně ve správci virtuální paměti, zrovna děje. Na dnešek jsme si slíbili vysvětlení některých malých záhad z výpisu vm_statu.

Co to tedy všechno znamená?

V minulém dílu našeho seriálu jsme dokončili popis příkazu vm_stat, který — jako příjemný doplněk obecnějšího topu — nabízí velmi slušný vhled do toho, co se vlastně v systému, konkrétně ve správci virtuální paměti, zrovna děje.

Na dnešek jsme si slíbili vysvětlení některých malých záhad z výpisu vm_statu (nebo, samozřejmě, topu, který zobrazuje v zásadě tytéž údaje).

Více stránek se čte než ukládá?

Připomeňme si krátký příklad volání příkazu vm_stat z minulého dílu:

 2 ~> vm_stat 1
 Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 78%)
  free active inac wire   faults     copy zerofill reactive  pageins  pageout
  3365  88210 42867 13014  9354203   179958  7655883   161062    13068     8768
  ...

V jeho závěru jsme se zarazili nad tím, že stránek, načtených z disku (pageins) je více, než stránek na disk uložených (pageout). Jak je to možné? Abychom mohli stránku z disku načíst, musíme ji tam přece nejprve uložit?

Inu, to je samozřejmě pravda, jenže ji tam nemusí vždy uložit systém virtuální paměti: v některých případech se prostřednictvím systému virtuální paměti načítají z disku stránky, jež tam byly uloženy naprosto standardním "zápisem souboru" — a ten se samozřejmě ve statistikách správce virtuální paměti nijak neprojeví.

Jde o velmi jednoduchou, ale svým způsobem geniální "fintu", již virtuální paměť umožňuje: její tvůrci si už před lety uvědomili, že standardní mechanismus "tato stránka ve skutečnosti neexistuje, ale její obraz je uložen na disk" lze skvěle využít pro mimořádně efektivní přístup k souborům. Namísto otevření souboru a načtení jeho obsahu do operační paměti stačí jen sestavit stránkové tabulky virtuální paměti následujícím způsobem:

  • namísto vyrovnávací paměti pro obsah souboru se procesu přidělí "prázdný" úsek adresového prostoru (tj. takový, jemuž nejsou zatím přiděleny žádné stránky reálné paměti);
  • do stránkových tabulek se pro tento úsek zapíše příznak "stránky jsou na disku", a doplní se odkazem na daný soubor.

To je celé; od té chvíle — ačkoli se z disku vůbec nic nečetlo! — může proces s obsahem souboru pracovat stejně, jako kdyby byl skutečně načten do paměti. Kdykoli se proces pokusí pracovat s některou adresou v odpovídající části adresového prostoru, správce paměti zjistí, že zde "nic není": proto přidělí novou stránku fyzické paměti, a na základě údajů ve stránkových tabulkách samozřejmě její obsah naplní obsahem příslušné části daného souboru. Je zřejmé, že zvláště při práci s velmi rozsáhlými soubory to nesmírně zvyšuje efektivitu celého systému.

Tuto fintu může využít kterýkoli program pro práci s jakýmkoli souborem; standardně ji využívá operační systém pro načítání programů a knihoven z disků. Proto je za normálních okolností obvykle více pageins než pageout.

Příště...

...budeme samozřejmě ve vysvětlování malých záhad virtuální paměti pokračovat.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: