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
Kam se stránky ukládají?
6. února 2003, 00.00 | Základy virtuální paměti i práce s ní už máme za sebou; na rozloučenou s tímto tématem si ještě ukážeme, kam a jak se stránky, odebrané procesům, ukládají. Nejde jen o teoretické cvičení pro ty, koho zajímá, "co se uvnitř děje"; příště si také řekneme, jak místo ukládání odložených stránek změnit.
Kam se stránky ukládají?Základy virtuální paměti i práce s ní už máme za sebou; na rozloučenou s tímto tématem si ještě ukážeme, kam a jak se stránky, odebrané procesům, ukládají. Nejde jen o teoretické cvičení pro ty, koho zajímá, "co se uvnitř děje"; příště si také řekneme, jak místo ukládání odložených stránek změnit. To může být někdy šikovné: řada uživatelů přísahá na to, že umístění odkládacího prostoru na jiný oddíl (či ještě lépe rovnou na jiný disk), než na kterém běžně pracujeme, může podstatě zvýšit výkon počítače.
Kdo je to "pager"
Samotný správce virtuální paměti je samozřejmě rozdělen do řady modulů, z nichž každý se stará o jiný úkol. Odkládání odebraných stránek na disk a načítání zpět je úkolem tzv. pagerů. Množné číslo je na místě — v systému je jich samozřejmě více: jeden se stará o přístup k paměťově mapovaným souborům, druhý o odkládání "obyčejných paměťových" stránek, a Mac OS X má ještě třetí pager, který se stará o stránkování paměti, přidělené vnějším zařízením (např. frame buffer videokarty).
Nás zde samozřejmě zajímá druhý z nich. V Mac OS X se nazývá default nebo také anonymní pager. Ten podle potřeby odkládá stránky do odkládacích souborů a opět je z nich načítá. Pro vytváření a rušení těchto souborů využívá služby samostatného modulu, jemuž se říká dynamický pager (je to trochu matoucí, protože nejde o "pager" v tom smyslu, jak jsme si jej před chvílí popsali; Mac OS X však toto jméno používá).
Dynamický pager
Z uživatelského hlediska je ovšem nejzajímavější právě tento "dynamický pager", protože tvorba a rušení odkládacích souborů je asi jediná věc, již jako uživatelé na celém systému virtuální paměti můžeme chtít ovlivnit.
Dynamický pager je samostatný proces; jelikož již dávno důvěrně známe příkaz ps, můžeme se na něj podívat:
1 /Users/ocs# ps -auxww
USER PID ... COMMAND
...
root 74 ... dynamic_pager -H 40000000 -L 160000000 -S 80000000 -F /private/var/vm/swapfile
...
2 /Users/ocs#
Je zřejmé, že přepínač -F určuje místo, kde dynamický pager bude vytvářet odkládací soubory; můžeme se hned podívat, jak to vypadá:
2 /Users/ocs# ls -l /private/var/vm
total 625024
drwx--x--x 12 root wheel 408 Jan 11 04:30 app_profile/
-rw------T 1 root wheel 80000000 Feb 3 18:44 swapfile0
-rw------T 1 root wheel 80000000 Feb 4 16:52 swapfile1
-rw------T 1 root wheel 80000000 Feb 4 21:35 swapfile2
-rw------T 1 root wheel 80000000 Feb 5 00:31 swapfile3
3 /Users/ocs#
Jak je vidět, všechny soubory mají stejnou velikost; ta je určena argumentem -S ("size of file"). Nové vytvořený odkládací soubor pager začne plnit stránkami, odebranými procesům.
Vytváření nových souborů a rušení existujících je řízeno značkami ("watermarks"): pokud se odkládací prostor zaplní tak, že dosáhne horní značky ("high watermark", parametr -H), ihned se vytvoří nový odkládací soubor. Vyprázdní-li se prostor naopak natolik, že dosáhne dolní značky ("low watermark", parametr -L), pager vybere některý ze souborů, jeho obsah rozdělí do ostatních a soubor zruší.
Příště...
... si o práci dynamického pageru řekneme trochu víc, a ukážeme si, jak v případě potřeby argument -F změnit.
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á