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:
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):
- Obcování s ďáblem
- Obcování s ďáblem 2 - základy
- Obcování s ďáblem 3 - Práce se soubory
- Obcování s ďáblem 4 - Další práce se soubory
- Obcování s ďáblem 5 - Stále soubory, hlavně linky
- Obcování s ďáblem 6: Pár zbývajících drobností
- Obcování s ďáblem 7: Samá voda, přihořívá, hoří!
- Obcování s ďáblem 8: Jak se do shellu volá, tak se program ozývá
- Obcování s ďáblem 9: Nové finty na programy
- Obcování s ďáblem 10: Do fronty, pánové, do fronty!
- Obcování s ďáblem 11: Standardní vstup a výstup
- Obcování s ďáblem 13: Další triky
- Obcování s ďáblem 14: Vyšší škola hledání souborů
- Obcování s ďáblem 15: Příkaz find stokrát jinak
- Obcování s ďáblem 16: Co se ještě dá uvařit z příkazu find
- Obcování s ďáblem 17: Regulární výrazy
- Obcování s ďáblem 18: Speciální regulární výrazy
- Obcování s ďáblem 19: Skládání regulárních výrazů
- Obcování s ďáblem 20: Regulární výrazy se zpětnými odkazy
- Obcování s ďáblem 21:K čemu je dobrý grep...
- Zázraky ihned, nemožné na počkání: sed
- Obcování s ďáblem - další finty s příkazem sed
- Rozsáhlejší příklad se sedem
- Obcování s ďáblem: Další kouzla, aneb awk
- Awk a proměnné
- Obcování s ďáblem 27: Awk a výrazy
- Obcování s ďáblem: Awk a funkce
- Awk a příkazy
- Co je to vlastně "uživatel"?
- Vlastnictví objektů
- Přístupová práva
- Vlastník, skupina, ostatní...
- Jak je to se skupinami?
- Skupiny a uživatelé
- Scripty
- Komentáře, a volba shellu
- Pro skript může být shell cokoli!
- Shellové skripty a argumenty
- Skripty a proměnné: aritmetika
- Proměnné shellu, "dědění" hodnot
- Práce s proměnnými
- Práce se jmény souborů
- Pole hodnot
- Další triky kolem polí...
- Standardní proměnné shellu
- Základní příkazy pro skripty
- Příkaz if
- Speciální podmínkové příkazy
- Podmínky pro práci se soubory
- Jednoduchý cyklus
- Příkaz for a pomocné příkazy break a continue
- Příkaz case
- Příkazy exit a select
- Rejstřík a přehled
- Procesy
- Informace o procesech
- Další klíčová slova pro příkaz ps
- Příkaz ps: několik praktických přepínačů
- A k čemu že je "ps" dobré?
- Copak procesor, s pamětí je to horší
- Virtuální paměť
- A ještě jednou virtuální paměť
- Zpět k příkazu ps
- Skutečný žrout paměti
- Ještě jednou top
- Doplněk k topu: vm_stat
- Co to tedy všechno znamená?
- Nevychází nám dal a má dáti?
- Kam se stránky ukládají?
- Změna odkládacího disku
- Změna odkládacího disku / fstab
- Poslední poznámka k fstab
- A jak to je se soubory?
- Co vlastně příkaz lsof vypisuje?
- Příkaz lsof a obsah sloupce NAME
- SIPS - Terminál není jen pro nadšence UNIXu
- Tak nám zabili NetInfo, paní Müllerová