Stránkování paměti

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Stránkování paměti je v informatice metoda správy paměti, kdy strojové instrukce procesu pracují s logickými adresami, které jednotka MMU (typicky součást procesoru) převádí na fyzické adresy (skutečné umístění v paměti RAM). Vzniká tak virtuální adresní prostor, který pro každý proces začíná od nuly, takže odpadá potřeba relokace použitého strojového kódu. Při převodu je adresní prostor rozdělen na stránky (rámce) stejné velikosti (typicky 4 KiB). Stránkování paměti je používáno všemi současnými běžnými operačními systémy (Linux, Windows NT, FreeBSD atd.) a je základem pro stránkování na disk.

Terminologie[editovat | editovat zdroj]

Historicky, stránkování někdy odkazuje na systém přidělování paměti, který používá stránky o fixní velikosti na rozdíl od proměnné délky segmentů bez implicitního návrhu, že byly použity techniky virtuální paměti nebo, že byly tyto stránky přesunuty na disk.[1][2] Takové použití je dnes vzácností.

Některé moderní systémy používají termín swapování (swapping) zároveň s termínem stránkování (paging). Historicky, swapování odkazuje na přesun programu z/do sekundárního úložiště. Toto je známé jako návrh roll-in/roll-out.[3][4] V 60. letech 20. století po představení konceptu virtuální paměti (dvě varianty; obě využívají segmentů nebo stránek) byl pojem swapping aplikován na přesun segmentů nebo stránek mezi diskem a pamětí. Dnes je virtuální paměť založena převážně na stránkách, ne segmentech, swapování se stalo synonymem stránkování.

Na systémech založených na bázi Windows NT je vyhrazený swapovací (odkládací) prostor znám jako stránkovací soubor a swapování/stránkování je často zaměňováno.

Popis stránkování[editovat | editovat zdroj]

Ve víceúlohovém systému, který využívá multitasking, je nutné umístit do paměti více procesů najednou. Pokud jsou k dispozici nástroje na virtualizaci paměti, lze vytvořit každému z procesů jeho vlastní lineární adresní prostor, který bude začínat od adresy nula. Každý proces (resp. jeho strojové instrukce) pak bude pracovat s logickými (virtuálními) adresami, které jsou při přístupu do paměti RAM automaticky převáděny jednotkou MMU na fyzické adresy (MMU je dnes typicky umístěna v procesoru, ale může být i nezávislým obvodem).

Aby nebylo nutné pro převod logických adres na fyzické udržovat velké množství informací, je adresní prostor rozdělen na stránky stejné velikosti (typicky 4 KiB, ale i 8 KiB nebo větších). Virtuální adresní prostor je tedy složen ze stránek, které odpovídají stejně velkým stránkám ve fyzické paměti RAM. Zatímco logické stránky vytvářejí souvislý lineární adresní prostor, umístění fyzických stránek je díky převodu zcela nahodilé. Pro běžící proces se tak vytváří iluze, že jeho adresní prostor v operační paměti je souvislý, zatímco ve skutečnosti jsou fyzické stránky fragmentovány. Fragmentace je však procesu (resp. jeho strojovým instrukcím) skryta a není ji nutné nijak řešit (na rozdíl od segmentace paměti, kde je nutné fragmentaci odstraňovat setřásáním segmentů).

Algoritmy stránkování[editovat | editovat zdroj]

Kradení stránek[editovat | editovat zdroj]

Některé operační systémy periodicky hledají stránky, které nebyly nedávno použity, a přidávají je do fronty volných stránek po uložení jejich změn.

Stránkování na žádost[editovat | editovat zdroj]

Při použití pouhého stránkování na žádost je stránka paměti nahrána až v případě požadavku, nikoliv předtím. Program obvykle začíná svoji činnost bez přednačtených stránek v paměti RAM. Stránky paměti jsou kopírovány ze spustitelného souboru do paměti RAM při prvním přístupu k nim, obvykle v reakci na výpadek stránky. V důsledku toho se stránky spustitelného souboru obsahující kód, který nebyl nikdy spuštěn, nikdy nenahrají do paměti.

Předčištění paměti[editovat | editovat zdroj]

UNIXové operační systémy periodicky využívají sync k předčištění všech použitých stránek, tzn. systém uloží všechny modifikované stránky na pevný disk. Operační systém Windows používá stejnou operaci běžící ve vláknech procesu zvaného zapisovač modifikovaných stránek.

Předčišťování urychluje start nového programu nebo otevření nového datového souboru. Pevný disk může okamžitě vyhledat příslušný soubor a postupně ho celý přečíst do předem vyčištěných stránek snímků. Bez předčištění je pevný disk nucen vyhledávat tam a zpět mezi zapisováním použitých stránek na disk a poté čtením následující stránky souboru do daného rámce.

Překlad adresy[editovat | editovat zdroj]

Překlad adres vychází z představy rozdělení logického adresového prostoru na stránky o stejné velikosti. Velikost stránek se liší na základě použitě architektury. Typicky je ovšem v řádu kilobytů. U 32bitových procesorů Intel x86 je adresa stránky 32bitová a její velikost je 4kB. Fyzický prostor paměti je rozdělen na stejně velké stránky, které jsou označované jako stránkové rámce. Mezi logickými stránkami a rámci je vytvořeno zobrazení. Toto zobrazení není úplné jelikož velikost adresového prostoru fyzické paměti je menší než velikost logického. Proto existují logické stránky bez přiřazeného rámce, tzv. neplatné stránky. Mohou také existovat i rámce, které nejsou mapovány na žádnou log. stránku, nebo rámce, na které je mapováno více log. stránek. Tabulka stránek zajišťuje mapování logické adresy na fyzickou. Logická adresa zaručuje lineární mapování adresového prostoru. Logická adresa se dělí na dvě části. Vyšší bity označují logickou stránku (díky lineárnímu adresování pořadí stránky v adres. prostoru) a nižší bity obsahují adresu paměťového místa v dané stránce. Překladem pomocí tabulky stránek prochází jen vyšší bity. Tabulka obsahuje čísla rámců a jejich příznaků. Tyto rámce jsou indexovány číslem log. stránky. Získané číslo rámce fyzické stránky je převedeno na bázovou adresu adresu rámce ve fyzické paměti bitovým posunutím vlevo. Nakonec je k bázové adrese přičten stránkový offset (nižší bity log. adresy).

Výpadek stránky[editovat | editovat zdroj]

Výpadek nastává, když se proces snaží přistoupit k neplatné stránce (stránce bez namapovaného fyzického rámce). Výpadek stránky je implementován jako interní přerušení od MMU (Memory management unit). Procesor předá řízení jádru OS, který tuto situaci řeší. Pokud nalezne odpovídající rámec na disku, najde volný/uvolní(jiný) fyzický rámec v paměti RAM a nahradí ho potřebným rámcem, propojí ho s log. stránkou. Stránce nastaví bit platnosti a zavolá znovu instrukci, která přerušení vyvolala. Pokud odpovídající stránku nenalezne, pošle signál nebo výjimku, na kterou proces provede nejčastěji své ukončení.

TLB[editovat | editovat zdroj]

Protože k převodu dochází velmi často a tabulka stránek je uložena v paměti RAM, která je v porovnání s rychlostí procesoru relativně pomalá, je v procesoru zřízena speciální hardwarová TLB cache (anglicky Translation Lookaside Buffer), která čtení hodnot z tabulky stránek urychluje.

Související informace naleznete také v článku Translation Lookaside Buffer.

Správa tabulky stránek[editovat | editovat zdroj]

Stránkování paměti se využívá pro usnadnění multitaskingu, při kterém je spuštěno zároveň více procesů (ať již se v běhu střídají nebo běží skutečně paralelně). Multitasking je řízen jádrem operačního systému. Každý proces má přidělen vlastní oddělený virtuální adresní prostor, a proto musí mít každý proces i vlastní tabulku stránek. Údaje o umístění tabulky stránek jsou součástí vlastností každého procesu a jsou uloženy v části paměti spravované jádrem systému, obvykle v PCB (anglicky Process control block).

Víceúrovňové tabulky stránek[editovat | editovat zdroj]

Protože obvykle není lineární adresní prostor procesu celý využit, je mnoho pozic v tabulce stránek neobsazených. Na již zmíněné architektuře IA-32 by vytvoření nového procesu znamenalo vytvoření tabulky až o velikosti 32 MiB (4 GiB : 4 KiB × 32 bitů = 32 MiB). Z tohoto důvodu jsou tabulky stránek uspořádány do víceúrovňové stromové struktury (obvykle 2 nebo 3 úrovně) a tím není nutné souvislá neobsazená místa adresního prostoru vůbec tabulkami stránek popisovat.

Rámce[editovat | editovat zdroj]

Rámce jsou reprezentace stránek ve fyzické paměti (mají stejnou délku jako stránky).[5]

Výhody a nevýhody[editovat | editovat zdroj]

Největší výhodou stránkování je odstranění fragmentace volné paměti. Mezi nevýhody stránkování patří nutnost hardwarové podpory procesorem a problémy s alokací většího souvislého úseku fyzické paměti kvůli zařízením, která neumí pracovat s virtuálními adresami (např. řadič DMA).

Ochrana paměti[editovat | editovat zdroj]

Ochrana paměti je u stránkování zajišťována metodou zámků a klíčů. Každá stránka paměti má přiřazen zámek (číslo). V procesoru je speciální registr (klíč). Přístup do paměti procesor dovolí pouze v případě, že se klíč (registr procesoru) shoduje se zámkem (číslem přiřazeným dané stránce paměti). Obvykle existuje univerzální klíč (např. s hodnotou nula), který umožňuje přístup k libovolné stránce v paměti a který používá jádro operačního systému. Změna klíče v registru procesoru je privilegovaná instrukce, takže ji může provést pouze jádro operačního systému. Pokusí-li se proces běžící v neprivilegovaném režimu provést privilegovanou instrukci (tj. změnu klíče v registru), vyvolá procesor vnitřní přerušení, přičemž obsluha přerušení se nachází uvnitř jádra operačního systému, které tak okamžitě může „neposlušný“ proces ukončit.

Stránkování na disk[editovat | editovat zdroj]

Stránkování na disk umožňuje rozšířit operační paměť o místo ve vnější paměti (obvykle na pevném disku), kam jsou odkládány právě nepoužívané stránky paměti (tzv. stránkování paměti). Tím je možné uvolnit operační paměť RAM a umožnit tak její laciné zdánlivé zvětšení. Stránkování na disk je někdy nesprávně označováno jako swapování, avšak tento pojem je vyhrazen pro obdobnou činnost u segmentace paměti.

Při použití stránkování paměti na disk je tabulka stránek rozšířena o příznak, který umožňuje rozlišit, zda je stránka v RAM nebo je odložena na pevném disku. Procesor (resp. jeho strojové instrukce) nemůže pracovat s daty na pevném disku, a proto je procesorem v případě přístupu na adresu obsaženou ve stránce, která je odložena na pevném disku, vyvoláno vnitřní přerušení nazývající se výpadek stránky. Obsluha přerušení zavede požadovanou stránku do paměti a poté je zopakována instrukce, která výpadek stránky způsobila, takže přerušený proces nic nepozná (až na větší prodlevu při zpracování této strojové instrukce) a normálně pokračuje dále.

Související informace naleznete také v článku Virtuální paměť.

Existující implementace[editovat | editovat zdroj]

Windows 3.x a Windows 9x[editovat | editovat zdroj]

Virtuální paměť byla rysem Microsoft Windows od dob Windows 3.0 v roce 1990. Společnost Microsoft představila virtuální paměť v reakci na selhávání systémů Windows 1.0 a Windows 2.0. Požadavkem bylo redukovat potřebné požadavky na systém pro nový operační systém. Tento krok, odkazovat na odkládací soubor jako "virtuální paměť", způsobil zmatky. Nováčci neznalí tohoto konceptu jej přijali bez otázek a mluvili o přizpůsobení virtuální paměti systémem Windows. Ve skutečnosti má každý proces fixní, nezměnitelnou velikost virtuální paměti, obvykle 2 GB. Uživatel má pouze možnost měnit velikost diskového prostoru vyhrazeného pro stránkování.

Windows 3.x vytváří skrytý soubor pojmenován jako 386SPART.PAR nebo WIN386.SWP využívaný jako odkládací soubor. Nalézá se v kořenu disku, ale může se vyskytnout kdekoliv (typicky ve složce WINDOWS). Jeho velikost závisí na nastavení v systému (Ovládací panely → rozšířené a položka Virtuální paměť). Pokud uživatel tento soubor přesune nebo smaže, objeví se Modrá obrazovka smrti při příštím startu systému společně s chybovou hláškou "Trvalý odkládací soubor je poškozen". Uživatel bude vyzván k výběru, zda chce či nechce soubor vymazat (nehledě na to, zda existuje či ne).

Windows NT[editovat | editovat zdroj]

Ve verzích Windows založených na NT (jako jsou Windows XP, Windows Vista, a Windows 7), soubor který se používá pro stránkování se nazývá pagefile.sys. Základní umístění souboru pro stránkování je v kořenovém adresáři oddílu kde je nainstalován systém Windows. Systém Windows muže být nastaven pro použití volného místa na disku pro stránkovací soubory. Každý spouštěcí oddíl (např. jednotka obsahující adresář Windows) musí mít svůj stránkovací soubor, pokud je systém nastaven k výpisu jádra nebo plného výpisu paměti až po BSD. Windows používají stránkovací soubor jako dočasné úložiště pro výpis paměti. Po restartu, systém Windows zkopíruje výpis paměti ze stránkovacího souboru do odděleného souboru a tím uvolní místo použité ve stránkovacím souboru.[6]

Fragmentace[editovat | editovat zdroj]

V základním nastavení Windows je stránkovacímu souboru umožněna expanze za jeho počáteční velikost, pokud je potřeba. Pokud se toto děje opakovaně, stává se silně fragmentovaný, což může způsobit degradaci výkonu.[7] Doporučuje se uzamknout velikost stránkovacího souboru, aby ji systém Windows nemohl zvětšovat. Nicméně stránkovací soubor expanduje pokud je zaplněn, tzn. v jeho základní konfiguraci velikost 150 % celkové fyzické paměti.[8] Tudíž celkový požadavek pro virtuální paměť využívající zpětné čtení ze stránkovacího souboru musí překročit 250 % velikosti fyzické paměti počítače před expanzí stránkovacího souboru.

Fragmentace stránkovacího souboru po expanzi je dočasná. Jakmile dříve expandované regiony přestanou být používány (po restartovaní, nikoli dříve) je opět diskový prostor uvolněn a stránkovací soubor je vrácen zpět do své původní velikosti.

Uzamknutí velikosti stránkovacího souboru může býti problematické, pokud aplikace spuštěná pod Windows požaduje více paměti než je celková velikost fyzické paměti a stránkovacího souboru. V tomto případě požadavek na alokování paměti skončí chybou, která může způsobit pád aplikace nebo systému. Zastánci tohoto názoru mohou namítnout, že stránkovací soubor je ojediněle čten nebo je do něj zapisováno v sekvenčním pořadí, takže výhoda mít kompletně sekvenční stránkovací soubor je minimální. Ačkoli je obecně známo, že velké stránkovací soubory umožní použití aplikací s velkými nároky na použitou paměť, jediná nevýhoda je poté velikost zabraného místa na disku.

Využití více místa na disku k tomuto účelu může být zanedbatelné. Například systém s 3 GB operační paměti a 6 GB místa pro swap oddíl na disku o velikosti 750GB nebo systém se 6GB operační paměti a 2TB diskem, v obou případech využití paměti je 8/10 z 1% celkového místa na disku rozšířeným swap oddílem.

Defragmentace stránkovacího souboru je doporučena pro zvýšení výkonu pokud systém Windows používá často mnohem více paměti než je jeho fyzická paměť. Toto ovšem ignoruje fakt, že stránkovací soubor se časem nestává fragmentovaný. Obecně platí, že obavu ze snížení výkonu je možno efektivně řešit přidáním fyzické paměti.

Stránkování na IA-32[editovat | editovat zdroj]

Na procesoru architektury IA-32 (procesory i386 a novější) je stránkování volitelná část hardwarového překladu adresy. Pokud je zapnuta, provádí se po segmentaci, tedy virtuální adresa (používaná v programu) se segmentací překládá na lineární adresu, která se stránkováním překládá na fyzickou adresu. Základní velikost stránky je 4 KiB, stránkování se zapíná nastavením příslušného bitu v registru CR0. Stránkování spočívá v rozdělení 32bitové lineární adresy na tři části:

  1. offset ve stránce (12 bitů)
  2. index do tabulky stránek (10 bitů, 9 při zapnutém PAE)
  3. index do stránkovacího adresáře – záznam ukazuje na stránkovou tabulku (10 bitů, 9 při PAE)

Každá stránka obsahuje příznak valid (určuje zda je daná stránka skutečně ve fyzické paměti – viz virtuální paměť). Pokud strojová instrukce přistupuje na neplatnou stránku, dojde k vyvolání výjimky (resp. vnitřního přerušení procesoru), které se nazývá „výpadek stránky“ (anglicky page fault). V případě, že je daná stránka na disku, obsluha přerušení ji z disku zavede do paměti a je zopakována instrukce, která výpadek stránky způsobila.

Ve speciálním režimu PAE je pak přidána další stránka o velikosti 2 MiB, která umožňuje zpřístupnit více, než základních 4 GiB paměti (PAE je dostupné od procesoru Pentium Pro). Ukazatel na stránkovací adresář (ukazatele stránkových adresářů při PAE) je v registru CR3.

Přepínání paměťových bank[editovat | editovat zdroj]

Přepínání paměťových bank bylo používáno již u starších 8bitových počítačů. Do paměťového prostoru 64 KiB byla pomocí této jednoduché techniky mapována až několikanásobně větší paměť, než je paměťový rozsah procesoru (viz Didaktik Gama a Sinclair ZX Spectrum 128+). Hlavní rozdíl mezi stránkováním a přepínáním paměťových bank je v tom, že přepínání paměťových bank je typicky realizováno mimo procesor počítače, zatímco stránkování je naopak vlastnost procesoru, resp. jeho MMU (anglicky Memory Managment Unit). U nejstarších procesorů byla však MMU realizována nezávisle na procesoru jako samostatný obvod, takže rozdíl mezi těmito technikami není až tak výrazný.

Na počítačích IBM PC kompatibilních umožňovalo přepínání paměťových bank hardwarově mapovat do paměťového prostoru více paměťových rámců (tzv. EMS – rozšířená paměť), což umožňovalo při omezeném adresním prostoru procesoru používat větší množství paměti. EMS byla realizována nejprve přídavnou paměťovou kartou, později na procesorech i386 a novějších pak emulátorem rozšířené paměti EMM386.

Výkon[editovat | editovat zdroj]

Úložný prostor pro virtuální paměť operačního systému je obvykle o několik řádů pomalejší než RAM, navíc při použití mechanických zařízení pro ukládání dat vzniká další znatelné zpoždění. U běžných pevných disků dosahuje zpoždění zhruba 10 milisekund. Z těchto důvodů je ve většině případů žádoucí snížení nebo odstranění odkládání stránek. Pro tyto případy některé operační systémy nabízejí nastavení ovlivňující rozhodování jádra.

  1. Linux nabízí parametr /proc/sys/vm/swappiness, který mění rovnováhu mezi stránkováním běhové paměti a odstraňováním stránek ze systémové stránkovací vyrovnávací paměti.
  2. Windows 2000, XP a Vista nabízejí nastavení registru DisablePagingExecutive.
  3. Mainframové počítače často používají diskové jednotky head-per-track pro stránkovací prostor kvůli snížení vyhledávacího času. Dále také používají několik technologií[9] pro obsloužení více požadavků na stejném zařízení za účelem snížení rotační latence.
  4. Flash paměť má konečný počet cyklů mazání a zápisu (viz Omezení na flash paměti) a nejmenší množství dat, které lze najednou vymazat může být poměrně velké (128 KiB pro Intel X25-M SSD).[10] a jen zřídkakdy se shodují s velikostí stránky.

U flashových pamětí může dojít k velmi rychlému opotřebení, zvláště pokud se používá jako swapovací prostor v zařízeních s omezenou kapacitou paměti. Ovšem obrovskou výhodou flash paměti je, že ve srovnání s pevnými disky a non-volatilními RAM čipy funguje prakticky bez zpoždění. Proto existují technologie jako jsou ReadyBoost a Intel Turbo Memory, které jsou navrženy právě pro využití těchto vlastností. Mnoho unixových operačních systémů (například AIX, Linux a Solaris) umožňují použití více paměťových zařízení pro paralelní stránkovací prostor, za účelem zvýšení systémového výkonu.

Ladění velikosti swapovacího prostoru[editovat | editovat zdroj]

V některých starších operačních systémech s virtuální pamětí je část swapovacího prostoru rezervována pro alokaci běhových dat spuštěného programu. Vývojáři systému obvykle vydávají pokyny o tom, kolik stránkovacího prostoru by mělo být přiděleno.

Spolehlivost[editovat | editovat zdroj]

Swapování může částečně snížit spolehlivost systému. Pokud dojde k poškození dat na disku (nebo na kterémkoliv dalším místě, případně při přenosu), paměť bude mít také nesprávný obsah poté, co byla data navrácena.

Adresní limity na 32bitovém hardwaru[editovat | editovat zdroj]

Stránkování je jedním ze způsobů jak umožnit aby velikosti adres využívaných procesem ("virtuální adresní prostor" nebo "logický adresní prostor") mohly být rozdílné od množství skutečně instalované operační paměti na konkrétním počítači (fyzický adresní prostor).

Fyzická paměť menší než virtuální paměť[editovat | editovat zdroj]

Ve většině systémů je velikost virtuálního adresního prostoru procesu mnohem větší, než je k dispozici fyzické paměti.[11]

Množství dostupné fyzické paměti je limitováno počtem bitů adresy na adresové sběrnici, která spojuje procesor a fyzickou pamětí.

Existovat může méně bitů fyzické adresy, než bitů virtuální adresy. Například, i386SX CPU interně využívá 32bitové virtuální adresy, ale má pouze 24 pinů na adresové sběrnici, což omezuje adresování fyzické paměti na nejvýše 16 MB. Dokonce i na systémech, které mají stejně nebo i více fyzických adresních bitů než virtuálních adresních bitů je často skutečné množství instalované fyzické paměti mnohem menší než velikost, kterou lze potenciálně adresovat. Z finančních důvodů nebo proto, že hardwarová adresní mapa rezervuje velké úseky pro I/O nebo pro jiné hardwarové funkce. Tedy fyzická paměť nemůže být umístěna v těchto úsecích.

Fyzická paměť stejně velká jako virtuální paměť[editovat | editovat zdroj]

Je možné setkat se s 32bitovými počítači s 4 GB RAM, tedy maximálním množstvím adresovatelné RAM paměti, leda-že vstupní formát stránkovací tabulky podporuje fyzické adresy větší než 32 bitů. Například na 32bitové x86 procesory, je nutné použít Physical Address Extension (PAE), což umožňuje přístup k více než 4 GB paměti RAM. U některých strojů, např. IBM S/370 v režimu XA, horní bit nebyl součástí adresy a bylo možné adresovat pouze 2 GB.

Stránkovací a swapovací prostor lze využít mimo tento 4 GB limit, jelikož využívá odlišný způsob adresování z hlediska umístění na disku.

Zatímco 32bitové programy na stroji s lineárním adresním prostorem budou i nadále omezeny na 4 GB, které jsou schopny adresovat, protože každý z nich existuje ve svém vlastním virtuálním adresovém prostoru, může skupina programů dohromady přerůst nad tento limit.

Na strojích s registry segmentů, např., přístupových registrů na IBM systém/370 v režimu ESA[12], je velikost adresního prostoru limitována pouze omezeními operačního systému, jako například potřeba aby se mapovací tabulky vešly do dostupného úložiště.

Fyzická paměť větší než virtuální adresní prostor[editovat | editovat zdroj]

Několik počítačů má fyzickou paměť větší než virtuální adresní prostor pro proces, jako je například Magic-1[11], některé stroje PDP-11 a některé systémy využívající 32bitové x86 procesory s Physical Address Extension.

Tento systém pozbývá významnou výhodu virtuální paměti, protože jediný proces nemůže využít více paměti, než je výše jeho virtuálního adresního prostoru. Tyto systémy často používají stránkovací techniky k získání sekundárních výhod:

  • "Extra paměť" může být použita pro stránkovací cache, pro ukládání často používaných souborů a metadat, jako jsou například informace o adresářích v sekundárním úložišti.
  • Pokud procesor a operační systém podporují více virtuálních adresních prostor, "extra paměť" může být použita k běhu více procesů. Stránkování umožňuje, aby celkový součet virtuálních adresních prostor překročil rozsah fyzické paměti.

Velikost kumulativního součtu virtuálních adresních prostor je stále omezena velikostí dostupného sekundárního úložiště.


V tomto článku byl použit překlad textu z článku Paging na anglické Wikipedii.

  1. Deitel, Harvey M.(1983). An Introduction to Operating Systems. Addison-Wesley, 181, 187. ISBN 0201144735. 
  2. (1981) Encyclopedia of computer science and technology 11. CRC Press, 433. DOI:10.1002/. ISBN 0824722612. 
  3. (1981) Encyclopedia of computer science and technology 11. CRC Press, 442. ISBN 0824722612. 
  4. Cragon, Harvey G.(1996). Memory Systems and Pipelined Processors. Jones and Bartlett Publishers, 109. ISBN 0867204745. 
  5. http://people.csail.mit.edu/rinard/osnotes/h9.html
  6. TSIGKOGIANNIS, Ilias. Crash Dump Analysis [online]. MSDN Blogs, December 11, 2006, [cit. 2008-07-22]. Dostupné online. (anglicky) 
  7. Windows Sysinternals PageDefrag [online]. Microsoft, November 1, 2006, [cit. 2010-12-20]. Dostupné online. (anglicky) 
  8. How to determine the appropriate page file size for 64-bit versions of Windows Server 2003 or Windows XP (MSKB889654_ [online]. Microsoft, November 7, 2007, [cit. 2007-12-26]. Dostupné online. (anglicky) 
  9. E.g., Rotational Position Sensing on a Block Multiplexor channel
  10. "Aligning filesystems to an SSD’s erase block size | Thoughts by Ted". Thunk.org. 2009-02-20. Retrieved 2010-10-28.
  11. a b Bill Buzbee. "Magic-1 Minix Demand Paging Design". Retrieved December 9, 2013.
  12. IBM (January 1987), IBM System/370 Extended Architecture Principles of Operation, Second Edition, SA22-7085-1.

Související články[editovat | editovat zdroj]