Stránkování paměti - Memory paging

V počítačových operačních systémech , paměť paging je správa paměti režim, při níž počítač ukládá a načítá data z sekundárního úložiště pro použití v hlavní paměti . V tomto schématu operační systém načítá data ze sekundárního úložiště v blocích stejné velikosti, které se nazývají stránky . Stránkování je důležitou součástí implementace virtuální paměti v moderních operačních systémech, protože sekundární úložiště umožňuje programům překročit velikost dostupné fyzické paměti.

Pro jednoduchost se hlavní paměť nazývá „RAM“ (zkratka paměti s náhodným přístupem ) a sekundární úložiště se nazývá „disk“ (zkratka pro jednotku pevného disku , paměť bubnu nebo jednotku SSD atd.), Ale stejně jako u mnoho aspektů práce na počítači, koncepty jsou nezávislé na použité technologii.

Dějiny

Ferranti zavedl stránkování na Atlasu , ale první stránky s pamětí pro masový trh byly pojmy v počítačové architektuře, bez ohledu na to, zda se stránka pohybovala mezi RAM a diskem. Například na PDP-8 obsahovalo 7 instrukčních bitů paměťovou adresu, která vybrala jedno ze 128 ( 27 ) slov. Tato zóna paměti se nazývala stránka . Toto použití termínu je nyní vzácné. V šedesátých letech minulého století byla výměna ranou technikou virtuální paměti. Celý program by byl „odloženy“ (nebo „válí“) z paměti RAM na disk, a další, by se vyměnit v (nebo válcované ). Vyměněný program by byl aktuální, ale jeho provádění by bylo pozastaveno, zatímco jeho RAM by byl používán jiným programem.

Program může obsahovat více překryvů, které zabírají stejnou paměť v různých časech. Překrytí není způsob stránkování RAM na disk, ale pouze minimalizace využití RAM programu. Následné architektury používaly segmentaci paměti a z jednotlivých programových segmentů se staly jednotky vyměňované mezi diskem a RAM. Segment byl celý kódový segment nebo datový segment programu nebo někdy jiné velké datové struktury. Tyto segmenty musely být souvislé, pokud byly umístěny v paměti RAM, což vyžadovalo další výpočet a pohyb, aby se odstranila fragmentace .

Vynález tabulky stránek nechal procesor pracovat na libovolných stránkách kdekoli v RAM jako zdánlivě souvislý logický adresní prostor. Tyto stránky se staly jednotkami vyměňovanými mezi diskem a RAM.

Chyby stránky

Když se proces pokusí odkazovat na stránku, která se aktuálně nenachází v paměti RAM, procesor považuje tuto neplatnou referenci paměti za poruchu stránky a přenáší řízení z programu do operačního systému. Operační systém musí:

  1. Určete umístění dat na disku.
  2. Získejte prázdný rámeček stránky v RAM, který použijete jako kontejner pro data.
  3. Načtěte požadovaná data do dostupného rámce stránky.
  4. Aktualizujte tabulku stránek tak, aby odkazovala na nový rámec stránky.
  5. Vraťte řízení do programu a transparentně zopakujte instrukci, která způsobila poruchu stránky.

Když jsou použity všechny rámečky stránky, musí operační systém vybrat rámeček stránky, který má být znovu použit pro stránku, kterou program nyní potřebuje. Pokud byl vypuzený rámeček stránky dynamicky přidělován programem k uchovávání dat, nebo jej program změnil od jeho načtení do paměti RAM (jinými slovy, pokud se stal „špinavým“), musí být zapsán na disk, než bude osvobozen. Pokud program později odkazuje na vypuzenou stránku, dojde k další chybě stránky a stránku je nutné přečíst zpět do RAM.

Metoda, kterou operační systém používá k výběru rámečku stránky k opětovnému použití, což je jeho algoritmus nahrazování stránky , je důležitý pro efektivitu. Operační systém předpovídá, že rámeček stránky bude brzy pravděpodobně nejméně potřebný, často pomocí nejméně nedávno použitého (LRU) algoritmu nebo algoritmu založeného na pracovní sadě programu . Aby se dále zvýšila odezva, stránkovací systémy mohou předvídat, které stránky budou brzy potřeba, a preventivně je načíst do paměti RAM, než na ně program odkáže.

Techniky výměny stránek

Vyžadujte stránkování
Když se používá stránkování s čistou poptávkou, stránky se načítají pouze tehdy, když jsou na ně odkazy. Program ze souboru namapovaného v paměti zahájí provádění s žádnou ze svých stránek v paměti RAM. Když program provádí chyby stránek, operační systém zkopíruje potřebné stránky ze souboru, např. Ze souboru mapovaného do paměti , stránkovacího souboru nebo odkládacího oddílu obsahujícího data stránky do RAM.

Předvídavé stránkování
Tato technika, někdy také nazývaná předběžné načítání swapu, předpovídá, na které stránky budou brzy odkazovány, aby se minimalizovaly budoucí chyby stránek. Například po přečtení stránky za účelem obsluhy poruchy stránky může operační systém přečíst také několik dalších stránek, i když ještě nejsou potřeba (předpověď využívající referenční lokalitu ). Pokud program skončí, operační systém může oddálit uvolnění svých stránek v případě, že uživatel znovu spustí stejný program.
Bezplatná fronta stránek, krádeže a reklamace
Bezplatná fronta stránek je seznam rámců stránek, které jsou k dispozici pro přiřazení. Zabránění tomu, aby byla tato fronta prázdná, minimalizuje výpočetní výkon nutný k obsluze poruchy stránky. Některé operační systémy pravidelně vyhledávají stránky, na které se v poslední době neodkazovalo, a poté uvolní rámec stránky a přidají jej do fronty bezplatných stránek, což je proces známý jako „krádež stránky“. Některé operační systémy podporují rekultivaci stránek ; pokud program provede chybu stránky odkazem na ukradenou stránku, operační systém to zjistí a obnoví rámec stránky, aniž by musel číst obsah zpět do RAM.
Předčištění
Operační systém může pravidelně čistit špinavé stránky: zapisujte upravené stránky zpět na disk, i když je lze dále upravovat. To minimalizuje množství čištění potřebné k získání nových rámců stránek v okamžiku spuštění nového programu nebo otevření nového datového souboru a zlepšuje odezvu. (Operační systémy Unix pravidelně používají synchronizaci k předčištění všech špinavých stránek; operační systémy Windows používají vlákna „upravený zapisovač stránek“.)

Mlácení

Po dokončení inicializace většina programů pracuje s malým počtem kódových a datových stránek ve srovnání s celkovou pamětí, kterou program vyžaduje. Nejčastěji navštěvované stránky se nazývají pracovní sada .

Když je pracovní sada malým procentem z celkového počtu stránek systému, virtuální paměťové systémy fungují nejefektivněji a na řešení chyb stránek je vynaloženo zanedbatelné množství výpočetní techniky. Jak pracovní sada roste, řešení chyb stránek zůstává zvládnutelné, dokud růst nedosáhne kritického bodu. Pak se chyby dramaticky zvyšují a čas strávený jejich řešením převyšuje čas strávený na počítači, na který byl program napsán. Tento stav se označuje jako mlácení . Thrashing nastává u programu, který pracuje s obrovskými datovými strukturami, protože jeho velká pracovní sada způsobuje neustálé chyby stránek, které drasticky zpomalují systém. Uspokojivé chyby stránek mohou vyžadovat uvolnění stránek, které bude brzy nutné znovu přečíst z disku. „Thrashing“ se používá také v jiných kontextech, než jsou systémy virtuální paměti; například k popisu problémů s mezipamětí při práci na počítači nebo syndromu hloupého okna v síti.

Na procesorech VAX může dojít k nejhoršímu . Jeden MOVL překračující hranici stránky může mít zdrojový operand využívající režim odloženého posunutí posunutí, kde dlouhé slovo obsahující adresu operandu překračuje hranici stránky, a cílový operand využívající režim posunutí odloženého posunutí, kde dlouhé slovo obsahující adresu operandu překračuje hranice stránky a zdroj i cíl mohou oba překračovat hranice stránky. Tato jediná instrukce odkazuje na deset stránek; pokud nejsou všechny v RAM, každý způsobí poruchu stránky. Při výskytu každé chyby musí operační systém projít rozsáhlými rutinami správy paměti, což může způsobit více I/O, což může zahrnovat zápis dalších stránek procesu na disk a čtení stránek aktivního procesu z disku. Pokud by operační systém nemohl tomuto programu přidělit deset stránek, oprava chyby stránky by zahodila další stránku, kterou instrukce potřebuje, a jakýkoli restart instrukce by způsobil chybu znovu.

Chcete -li omezit nadměrné stránkování a vyřešit problémy s mlácením, může uživatel zvýšit počet stránek dostupných pro jeden program, a to buď spuštěním menšího počtu programů současně nebo zvýšením množství paměti RAM v počítači.

Sdílení

V multi-programování nebo ve víceuživatelském prostředí může mnoho uživatelů spustit stejný program, napsaný tak, že jeho kód a data jsou na samostatných stránkách. Aby se minimalizovalo využití RAM, všichni uživatelé sdílejí jednu kopii programu. Tabulka stránek každého procesu je nastavena tak, aby stránky, které adresují kód, směřovaly na jednu sdílenou kopii, zatímco stránky, které adresují data, ukazovaly na různé fyzické stránky pro každý proces.

Různé programy mohou také používat stejné knihovny. Z důvodu úspory místa je do fyzické paměti načtena pouze jedna kopie sdílené knihovny. Programy, které používají stejnou knihovnu, mají virtuální adresy, které mapují stejné stránky (které obsahují kód a data knihovny). Když programy chtějí upravit kód knihovny, používají kopírování při zápisu , takže paměť je přidělena pouze v případě potřeby.

Sdílená paměť je efektivní způsob komunikace mezi programy. Programy mohou sdílet stránky v paměti a poté zapisovat a číst a vyměňovat si data.

Implementace

Ferranti Atlas

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í (na obsah adresovatelnou ) paměť s jedním záznamem pro každou stránku 512 slov. Dozor zpracovával nerovnovážná přerušení a řídil přenos stránek mezi jádrem a válcem, aby poskytl programům jednoúrovňové úložiště.

Microsoft Windows

Windows 3.xa Windows 9x

Stránkování je funkcí systému Microsoft Windows od Windows 3.0 v roce 1990. Windows 3.x vytvoří skrytý soubor pojmenovaný 386SPART.PARnebo WIN386.SWPpro použití jako odkládací soubor. Obvykle se nachází v kořenovém adresáři , ale může se objevit i jinde (obvykle v adresáři WINDOWS). Jeho velikost závisí na tom, kolik odkládacího prostoru má systém (nastavení zvolené uživatelem v Ovládacích panelech → Vylepšeno v části „Virtuální paměť“). Pokud uživatel tento soubor přesune nebo odstraní, při příštím spuštění systému Windows se zobrazí modrá obrazovka s chybovou zprávou „Trvalý odkládací soubor je poškozen“. Uživatel bude vyzván, aby se rozhodl, zda soubor smaže nebo ne (bez ohledu na to, zda existuje).

Windows 95 , Windows 98 a Windows Me používají podobný soubor a jeho nastavení se nachází v Ovládacích panelech → Systém → karta Výkon → Virtuální paměť. Systém Windows automaticky nastaví velikost souboru stránky tak, aby začínal na 1,5násobku velikosti fyzické paměti, a v případě potřeby ji rozšíří 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 NT

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áno, aby spouštěcí oddíl (tj. Jednotka obsahující adresář Windows) obsahoval soubor stránky, pokud je systém nakonfigurován tak, aby po modré obrazovce smrti zapisoval buď jádro, nebo úplné výpisy paměti . Systém Windows používá stránkovací soubor jako dočasné úložiště pro výpis paměti. Když je systém restartován, systém 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.

Fragmentace

Ve výchozí konfiguraci systému Windows se soubor stránky smí v případě potřeby rozbalit nad jeho počáteční přidělení. Pokud k tomu dochází postupně, může dojít k velké fragmentaci, což může potenciálně způsobit problémy s výkonem. Obvyklou radou, jak se tomu vyhnout, je nastavit jednu velikost „zamčeného“ souboru stránky tak, aby jej systém Windows nerozšířil. Soubor stránky se však rozbalí pouze tehdy, když byl vyplněn, což ve své výchozí konfiguraci činí 150% z celkového množství fyzické paměti. Celková poptávka po virtuální paměti zálohované souborem stránky tedy musí před rozšířením souboru stránky překročit 250% fyzické paměti počítače.

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ší alokace 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, což může způsobit selhání aplikací a systémových procesů. Stránkový soubor se také málokdy čte nebo zapisuje v sekvenčním pořadí, takže výkonnostní výhoda kompletně sekvenčního stránkovacího souboru je minimální. Soubor velké stránky však obecně umožňuje použití aplikací náročných na paměť bez dalších sankcí kromě využití více místa na disku. Přestože soubor fragmentované stránky nemusí být problémem samotným, fragmentace souboru stránky s proměnnou velikostí časem vytvoří na jednotce několik fragmentovaných bloků, což způsobí fragmentaci ostatní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 lze snadno přidělit v systémech s novější specifikací (tj. Systém se 3 GB paměti se souborem 6 GB stránky o pevné velikosti na 750 GB diskové jednotce nebo systém se 6 GB paměti a 16 GB souboru stránky s pevnou velikostí a 2 TB místa na disku). V obou případech systém využívá asi 0,8% místa na disku, přičemž soubor stránky je předem rozšířen na maximum.

Příležitostně se také doporučuje defragmentace souboru stránky, aby se zlepšil výkon, když systém Windows chronicky využívá mnohem více paměti než jeho celková fyzická paměť. Toto zobrazení ignoruje skutečnost, že kromě dočasných výsledků rozbalení se soubor stránky v průběhu času fragmentuje. Obecně lze říci, že problémy s výkonem související s přístupem k souboru stránky jsou mnohem efektivněji řešeny přidáním větší fyzické paměti.

Unix a unixové systémy

Unixové systémy a další unixové operační systémy používají termín „swap“ k popisu aktu přesunu paměťových stránek mezi RAM a disk a oblasti disku, na které jsou stránky uloženy. V některých z těchto systémů je obvyklé věnovat výměně celý oddíl pevného disku. Tyto oddíly se nazývají odkládací oddíly . Mnoho systémů má celý pevný disk vyhrazený pro výměnu, oddělený od datových jednotek, obsahující pouze odkládací oddíl. Pevný disk určený k výměně se nazývá „odkládací jednotka“ nebo „stírací jednotka“ nebo „ stírací disk “. Některé z těchto systémů podporují pouze přepnutí na odkládací oddíl; ostatní také podporují přechod na soubory.

Linux

Linuxové jádro podporuje prakticky neomezený počet swapových backendů (zařízení nebo souborů) a také podporuje přiřazování priorit backendu. Když jádro vyměňuje stránky z fyzické paměti, používá backend s nejvyšší prioritou s dostupným volným místem. Pokud je více prioritám swapu přiřazena stejná priorita, jsou používány způsobem 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ě.

Vyměňte soubory a oddíly

Z pohledu koncového uživatele jsou odkládací soubory ve verzi 2.6.xa novějším jádra Linuxu prakticky stejně rychlé jako odkládací oddíly; omezením je, že odkládací soubory by měly být souvisle alokovány na jejich podkladových souborových systémech. Aby se zvýšil výkon odkládacích souborů, jádro uchovává mapu umístění 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 umístění na pevné disky, což jsou zařízení s rotačními magnetickými médii, je jednou z výhod použití odkládacích oddílů možnost umístit je na souvislé oblasti pevných disků, které poskytují vyšší propustnost dat nebo rychlejší vyhledávací čas. Flexibilita správy odkládacích souborů však může převážit určité výhody odkládacích oddílů. Odkládací soubor lze například umístit na jakýkoli připojený souborový systém, lze jej nastavit na libovolnou požadovanou velikost a lze jej podle potřeby přidat nebo změnit. Odkládací oddíly nejsou tak flexibilní; nelze je zvětšit bez použití nástrojů pro dělení nebo správu svazků , které zavádějí různé složitosti a potenciální prostoje.

Swappiness

Swappiness je co by Linux kernel parametr, který řídí relativní váha dána vyměňovat z runtime paměti , na rozdíl od svržení stránky ze systému vyrovnávací paměti stránek , kdykoli je požadavek na alokování paměti nemohou být splněny z volné paměti. Swappiness lze nastavit na hodnoty mezi 0 a 200 (včetně). Nízká hodnota způsobí, že jádro upřednostňuje vyřazení stránek z mezipaměti stránek, zatímco vyšší hodnota způsobí, že jádro upřednostní výměnu „studených“ stránek paměti. 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 u souborů, které byly vypuzeny z mezipaměť je třeba přečíst znovu, ale interaktivní programy budou reagovat rychleji, protože bude méně pravděpodobné, že budou muset vyměnit studené stránky. Výměna může také dále zpomalit pevné disky, protože zahrnuje mnoho náhodných zápisů, zatímco disky SSD tento problém nemají. Výchozí hodnoty určitě fungují dobře ve většině úloh, 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 jej mohou chtít zvýšit.

Vyměnit smrt

Když je systémová paměť pro aktuální úkoly velmi nedostačující a velká část paměťové aktivity prochází pomalým odkládáním, může být systém 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 ve swapové smrti .

Smrt při výměně může nastat kvůli nesprávně nakonfigurovanému nadměrnému závazku paměti .

Původní popis „swapping k smrti“ problém se vztahuje k X serveru . Pokud kód nebo data používaná serverem X k odezvě na stisk klávesy nejsou v hlavní paměti, pak pokud uživatel zadá stisk klávesy, server provede jednu nebo více chyb stránky, což vyžaduje, aby se tyto stránky přečetly ze swapu, než bude možné stisknutí klávesy provést. zpracovány, což zpomaluje reakci na to. Pokud tyto stránky nezůstanou v paměti, budou muset být znovu zpracovány, aby mohly zvládnout další stisknutí kláves, takže systém prakticky nereaguje, i když ve skutečnosti normálně provádí jiné úkoly.

Operační Systém Mac

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, ačkoli je možné je místo toho umístit na samostatný oddíl nebo zařízení.

AmigaOS 4

AmigaOS 4.0 představil nový systém pro přidělování 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 zaplnit systém, pokud je vyčerpána veškerá fyzická paměť. Odkládací paměť lze kdykoli aktivovat a deaktivovat, což uživateli umožňuje zvolit si použití pouze fyzické paměti RAM.

Výkon

Úložiště pro operační systém virtuální paměti je obvykle o mnoho řádů pomalejší než RAM . Navíc používání mechanických úložných zařízení přináší zpoždění , několik milisekund pro pevný disk. Proto je žádoucí omezit nebo vyloučit výměnu, pokud je to praktické. Některé operační systémy nabízejí nastavení, která ovlivňují rozhodování jádra.

  • Linux nabízí parametr, který mění rovnováhu mezi výměnou runtime paměti, na rozdíl od vynechávání stránek z mezipaměti systémové stránky ./proc/sys/vm/swappiness
  • Windows 2000, XP a Vista nabízejí DisablePagingExecutivenastavení registru, které řídí, zda kód a data v režimu jádra mohou být způsobilé pro stránkování.
  • Počítače sálových počítačů často používaly diskové jednotky typu head-per-track nebo bicí pro ukládání stránek a odkládacího prostoru, aby se eliminoval čas hledání, a několik technologií, které mají více souběžných požadavků na stejné zařízení, aby se snížila latence otáčení .
  • Flash paměť má konečný počet cyklů mazání a zápisu (viz omezení paměti flash ) a nejmenší množství dat, které lze vymazat najednou, může být velmi velké (128 kB pro SSD Intel X25-M), zřídka se shoduje s velikost stránky. Flash paměť se proto může rychle opotřebovat, pokud se používá jako odkládací prostor v podmínkách omezené paměti. Na atraktivní straně je flash paměť prakticky bez zpoždění ve srovnání s pevnými disky a není nestálá jako RAM čipy. Schémata jako ReadyBoost a Intel Turbo Memory jsou navržena tak, aby tyto vlastnosti využívaly.

Mnoho operačních systémů podobných Unixu (například AIX , Linux a Solaris ) umožňuje ke zvýšení výkonu používat paralelně pro výměnu prostoru více úložných zařízení.

Vyměnit velikost prostoru

V některých starších operačních systémech virtuální paměti je místo v úložišti zálohování odkládacího prostoru vyhrazeno, když programy alokují paměť pro data runtime. Prodejci operačních systémů obvykle vydávají pokyny o tom, kolik odkládacího prostoru by mělo být přiděleno.

Řešení limitů na 32bitovém hardwaru

Stránkování je jedním ze způsobů, jak umožnit, aby se velikost adres používaných procesem, což je „prostor virtuálních adres“ nebo „prostor logických adres“ procesu, lišila od velikosti hlavní paměti skutečně nainstalované v konkrétním počítači, což je fyzický adresní prostor.

Hlavní paměť menší než virtuální paměť

Ve většině systémů je velikost virtuálního adresového prostoru procesu mnohem větší než dostupná hlavní paměť. Například:

  • Adresovou sběrnici , která spojuje procesor do hlavní paměti může být omezena. The i386SX CPU interní adresa ‚s 32bitové mohou adresovat 4 GB, ale to má jen 24 pinů připojených na adresovou sběrnici, což omezuje instalované fyzické paměti 16 MB. Na maximální množství paměti RAM, které lze nainstalovat, mohou existovat další hardwarová omezení.
  • Maximální paměť nemusí být nainstalována z důvodu nákladů, protože standardní konfigurace modelu ji vynechává nebo protože kupující nevěřil, že by to bylo výhodné.
  • Někdy nelze pro paměť použít všechny interní adresy, protože hardwarová architektura může rezervovat velké oblasti pro I/O nebo jiné funkce.

Hlavní paměť má stejnou velikost jako virtuální paměť

Na počítači se skutečným n -bitovým adresováním mohou být nainstalovány 2 n adresovatelné jednotky RAM. Příkladem je 32bitový procesor x86 se 4  GB a bez rozšíření fyzické adresy (PAE). V tomto případě je procesor schopen adresovat veškerou nainstalovanou paměť RAM a nic víc.

I v tomto případě však lze stránkování použít k vytvoření virtuální paměti o velikosti přes 4 GB. Například mnoho programů může běžet souběžně. Dohromady mohou vyžadovat více než 4 GB, ale ne vše bude muset být v RAM najednou. Stránkovací systém umožňuje efektivní rozhodování o tom, kterou paměť vyřadit do sekundárního úložiště, což vede k nejlepšímu využití nainstalované paměti RAM.

Ačkoli procesor v tomto příkladu nemůže adresovat RAM nad 4 GB, operační systém může poskytovat služby programům, které si představují větší paměť, jako jsou soubory, které mohou narůst nad limit instalované RAM. Operační systém umožňuje programu libovolně manipulovat s daty v souboru a v případě potřeby pomocí stránkování přenést části souboru do paměti RAM.

Hlavní paměť větší než virtuální adresní prostor

Několik počítačů má hlavní paměť větší než virtuální adresní prostor procesu, například Magic-1, některé počítače PDP-11 a některé systémy využívající 32bitové procesory x86 s rozšířením fyzické adresy . To ruší významnou výhodu stránkování, protože jeden proces nemůže využívat více hlavní paměti, než je velikost jeho virtuálního adresního prostoru. Takové systémy často používají techniky stránkování k získání sekundárních výhod:

  • „Extra paměť“ lze použít v mezipaměti stránky k ukládání často používaných souborů a metadat, jako jsou informace o adresáři, do mezipaměti ze sekundárního úložiště.
  • Pokud procesor a operační systém podporují více virtuálních adresních prostorů, lze „extra paměť“ použít ke spuštění více procesů. Stránkování umožňuje kumulativnímu součtu prostorů virtuálních adres překročit fyzickou hlavní paměť.
  • Proces může ukládat data do souborů mapovaných v paměti v souborových systémech s pamětí, jako je souborový systém tmpfs nebo souborové systémy na jednotce RAM , a podle potřeby mapovat soubory do a ven z adresního prostoru.
  • Sada procesů může stále záviset na vylepšených bezpečnostních funkcích, které může izolace na základě stránek přinést do víceúlohového prostředí.

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

Viz také

Poznámky

Reference

externí odkazy