Stránkování paměti

Ferranti AtlasEdit

prvním počítačem podporujícím stránkování byl superpočítač Atlas, který společně vyvinuli Ferranti, University of Manchester a Plessey v roce 1963. Stroj měl asociativní (obsahově adresovatelnou) paměť s jednou položkou pro každou stránku 512 slov. Supervizor řešil přerušení bez ekvivalence a řídil přenos stránek mezi jádrem a bubnem, aby poskytl programům jednoúrovňový obchod.

Microsoft WindowsEdit

Windows 3.x a Windows 9xEdit

stránkování je funkcí Microsoft Windows od Windows 3.0 v roce 1990. Windows 3.x vytvoří skrytý soubor s názvem 386SPART.PAR nebo WIN386.SWP pro použití jako odkládací soubor. Obvykle se nachází v kořenovém adresáři, ale může se objevit jinde (obvykle v adresáři WINDOWS). Jeho velikost závisí na tom, kolik odkládacího prostoru má systém (nastavení vybrané uživatelem v Ovládacích panelech → rozšířené v části “virtuální paměť”). Pokud uživatel přesune nebo odstraní tento soubor, objeví se při příštím spuštění systému Windows modrá obrazovka s chybovou zprávou “trvalý odkládací soubor je poškozen”. Uživatel bude vyzván, aby si vybral, zda má soubor odstranit (zda existuje nebo ne).

Windows 95, Windows 98 a Windows Me používají podobný soubor a jeho nastavení jsou umístěna v Ovládacích panelech → Karta systém → výkon → virtuální paměť. Systém Windows automaticky nastaví velikost souboru stránky tak, aby začínal na 1,5× velikost fyzické paměti a v případě potřeby rozšířil až na 3× fyzickou paměť. Pokud uživatel spouští aplikace náročné na paměť v systému s nízkou fyzickou pamětí, je vhodnější ručně nastavit tyto velikosti na hodnotu vyšší než výchozí.

Windows NTEdit

soubor používaný pro stránkování v rodině Windows NT je pagefile.sys. Výchozí umístění souboru stránky je v kořenovém adresáři oddílu, kde je nainstalován systém Windows. Systém Windows lze nakonfigurovat tak, aby využíval volné místo na všech dostupných jednotkách pro soubory stránek. Je však vyžadován pro spouštěcí oddíl (tj. pokud je systém nakonfigurován tak, aby zapisoval buď skládky jádra nebo plné paměti po modré obrazovce smrti. Windows používá stránkovací soubor jako dočasné úložiště pro výpis paměti. Po restartování systému Windows zkopíruje výpis paměti ze souboru stránky do samostatného souboru a uvolní místo, které bylo použito v souboru stránky.

FragmentationEdit

tato část musí být aktualizována. Pomozte aktualizovat tento článek tak, aby odrážel nedávné události nebo nově dostupné informace. (Červenec 2014)

ve výchozí konfiguraci systému Windows se soubor stránky může v případě potřeby rozšířit nad původní přidělení. Pokud k tomu dojde postupně, může se silně roztříštit, což může potenciálně způsobit problémy s výkonem. Běžnou radou, jak se tomu vyhnout, je nastavit jednu “uzamčenou” Velikost souboru stránky tak, aby jej systém Windows nerozšířil. Soubor stránky se však rozbalí, pouze pokud byl vyplněn, což je ve výchozí konfiguraci 150% z celkového množství fyzické paměti. Celková poptávka po virtuální paměti podporované stránkovým souborem tedy musí překročit 250% fyzické paměti počítače, než se soubor stránky rozšíří.

fragmentace souboru stránky, ke které dochází při jeho rozbalení, je dočasná. Jakmile se rozšířené oblasti již nepoužívají (při příštím restartu, ne-li dříve), uvolní se další přidělení místa na disku a soubor stránky se vrátí do původního stavu.

uzamčení velikosti souboru stránky může být problematické, pokud aplikace systému Windows vyžaduje více paměti, než je celková velikost fyzické paměti a souboru stránky, což vede k neúspěšným požadavkům na přidělení paměti, které mohou způsobit selhání aplikací a systémových procesů. Soubor stránky je také zřídka čten nebo psán v sekvenčním pořadí, takže výkonová výhoda mít zcela sekvenční soubor stránky je minimální. Velký soubor stránky však obecně umožňuje použití aplikací náročných na paměť, bez sankcí kromě použití více místa na disku. Zatímco fragmentovaný soubor stránky nemusí být problém sám o sobě, fragmentace souboru stránky s proměnnou velikostí v průběhu času vytvoří několik fragmentovaných bloků na jednotce, což způsobí fragmentaci dalších souborů. Z tohoto důvodu je lepší souvislý soubor stránky s pevnou velikostí za předpokladu, že přidělená velikost je dostatečně velká, aby vyhovovala potřebám všech aplikací.

požadované místo na disku může být snadno přiděleno na systémech s novějšími specifikacemi (tj. systém s pamětí 3 GB, který má soubor stránky s pevnou velikostí 6 GB na diskové jednotce 750 GB nebo systém s pamětí 6 GB a stránkovým souborem s pevnou velikostí 16 GB a místem na disku 2 TB). V obou příkladech systém využívá asi 0,8% místa na disku s předem rozšířeným souborem stránky na maximum.

Defragmentace souboru stránky se také občas doporučuje zlepšit výkon, když systém Windows chronicky používá mnohem více paměti než jeho celková fyzická paměť. Tento pohled ignoruje skutečnost, že kromě dočasných výsledků rozšíření se soubor stránky v průběhu času nestává fragmentovaným. Obecně platí, že problémy s výkonem související s přístupem k souborům stránek jsou mnohem efektivněji řešeny přidáním více fyzické paměti.

unixové a unixové systémyEditovat

unixové systémy a další unixové operační systémy používají termín “swap” k popisu aktu nahrazení místa na disku RAM, když je fyzická RAM Plná. V některých z těchto systémů je běžné věnovat výměnu celého oddílu pevného disku. Tyto oddíly se nazývají odkládací oddíly. Mnoho systémů má celý pevný disk určený k výměně, oddělený od datové jednotky(jednotek), obsahující pouze odkládací oddíl. Pevný disk určený k výměně se nazývá “swap drive” nebo “scratch drive” nebo “scratch disk”. Některé z těchto systémů podporují pouze výměnu na odkládací oddíl; jiní také podporují výměnu souborů.

LinuxEdit

Viz také: Odkládací oddíly na SSD, zswap a zram

linuxové jádro podporuje prakticky neomezený počet odkládacích backendů (zařízení nebo souborů) a také podporuje přiřazení priorit backendu. Když jádro vymění stránky z fyzické paměti, použije backend s nejvyšší prioritou s dostupným volným prostorem. Pokud je více backendů swap přiřazeno stejné prioritě, používají se každý s každým (což je poněkud podobné rozložení úložiště RAID 0), což poskytuje lepší výkon, pokud lze k základním zařízením efektivně přistupovat paralelně.

Swap files and partitionsEdit

z pohledu koncového uživatele swap files ve verzi 2.6.x a novější Linuxové jádro jsou prakticky stejně rychlé jako odkládací oddíly; omezení je, že odkládací soubory by měly být souvisle přiděleny na jejich základních souborových systémech. Aby se zvýšil výkon odkládacích souborů, jádro uchovává mapu, kde jsou umístěny na podkladových zařízeních, a přistupuje k nim přímo, čímž obchází mezipaměť a vyhýbá se režii souborového systému. Bez ohledu na to Red Hat doporučuje použít odkládací oddíly. Při pobytu na pevných discích, které jsou rotačními magnetickými mediálními zařízeními, je jednou z výhod použití odkládacích oddílů schopnost umístit je na sousedící oblasti HDD, které poskytují vyšší propustnost dat nebo rychlejší dobu vyhledávání. Administrativní flexibilita odkládacích souborů však může převážit nad určitými výhodami odkládacích oddílů. Například odkládací soubor může být umístěn na jakémkoli připojeném souborovém systému, může být nastaven na libovolnou velikost a může být podle potřeby přidán nebo změněn. Odkládací oddíly Nejsou tak flexibilní; nelze je zvětšit bez použití nástrojů pro správu oddílů nebo svazků, které zavádějí různé složitosti a potenciální prostoje.

SwappinessEdit

Swappiness je parametr jádra Linuxu, který řídí relativní váhu danou při výměně z běhové paměti, na rozdíl od stažení stránek z mezipaměti systémové stránky, kdykoli nelze splnit požadavek na přidělení paměti z volné paměti. Swappiness lze nastavit na hodnoty mezi 0 a 200 (včetně). Nízká hodnota způsobuje, že jádro dává přednost vystěhování stránek z mezipaměti stránky, zatímco vyšší hodnota způsobuje, že jádro preferuje výměnu “studených” paměťových stránek. Výchozí hodnota je 60; nastavení vyšší může způsobit vysokou latenci, pokud je třeba vyměnit studené stránky zpět (například při interakci s programem, který byl nečinný), zatímco nastavení nižší (dokonce 0) může způsobit vysokou latenci, když soubory, které byly vystěhovány z mezipaměti, je třeba znovu přečíst, ale interaktivní programy budou citlivější, protože bude méně pravděpodobné, že budou muset vyměnit studené stránky. Výměna může také zpomalit pevné disky dále, protože zahrnuje spoustu náhodných zápisů, zatímco SSD tento problém nemají. Určitě výchozí hodnoty fungují dobře ve většině pracovních zátěží, ale stolní počítače a interaktivní systémy pro jakýkoli očekávaný úkol mohou chtít snížit nastavení, zatímco dávkové zpracování a méně interaktivní systémy mohou chtít zvýšit.

Swap deathEdit

když je systémová paměť vysoce nedostatečná pro aktuální úkoly a velká část paměťové aktivity prochází pomalým swapem, systém může být prakticky neschopný provést jakýkoli úkol, i když je CPU nečinný. Když každý proces čeká na swap, systém je považován za smrt swap.

Swap smrt může dojít v důsledku nesprávně nakonfigurované paměti overcommitment.

původní popis problému “swapping to death” se týká serveru X. Pokud kód nebo data použitá serverem X k reakci na stisk klávesy nejsou v hlavní paměti, pak pokud uživatel zadá stisk klávesy, server bude mít jednu nebo více chyb stránky, což vyžaduje, aby tyto stránky byly přečteny ze swap před zpracováním stisknutí klávesy, což zpomalí odpověď na něj. Pokud tyto stránky nezůstanou v paměti, budou muset být znovu chybovány, aby zvládly další stisknutí klávesy, takže systém prakticky nereaguje, i když normálně provádí jiné úkoly.

macOSEdit

macOS používá více odkládacích souborů. Výchozí instalace (a doporučená společností Apple) je umístí do kořenového oddílu, i když je možné je místo toho umístit na samostatný oddíl nebo zařízení.

AmigaOS 4Edit

AmigaOS 4.0 představil nový systém pro přidělování paměti RAM a defragmentaci fyzické paměti. Stále používá plochý sdílený adresní prostor, který nelze defragmentovat. Je založen na metodě přidělování desek a stránkovací paměti, která umožňuje výměnu. Stránkování bylo implementováno v AmigaOS 4.1, ale může uzamknout systém, pokud je vyčerpána veškerá fyzická paměť. Odkládací paměť může být aktivována a deaktivována kdykoli, což uživateli umožňuje zvolit pouze fyzickou paměť RAM.

Leave a Reply