Selhání stránky

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 9. prosince 2019; kontroly vyžadují 5 úprav .

Chyba stránky je druh  hardwarové výjimky , která se vyskytuje v počítači s virtuální pamětí založenou na stránkování v době přístupu na stránku paměti, která není zahrnuta v adresovém prostoru procesu jednotkou správy paměti . Přístup na tuto stránku může být logicky platný, ale může vyžadovat, aby byla přidána do tabulky stránek a případně nahrána ze sekundárního úložiště ( pevného disku ) do RAM. Detekci chyb stránky zajišťuje hardware (jednotka správy paměti) a software, obvykle součást jádra operačního systému [1] . Během zpracování chyby stránky se operační systém pokusí umístit požadovanou stránku do hlavní paměti a zpřístupnit ji procesu nebo ukončí program v případě neplatného přístupu do paměti.

Navzdory názvu jsou selhání platné stránky normální součástí jakéhokoli operačního systému, který používá virtuální paměť, včetně systémů OpenVMS , Microsoft Windows a systémů podobných UNIX . Ve skutečnosti jsou to jednoduše signály, které potřebuje operační systém k přidělení paměti běžícím programům.

Typy

Světlo nebo software

Selhání stránky, které se v systémech podobných Linuxu nazývá light ( eng.  minor ) [2] , a ve Windows - software ( eng.  soft ) [3] , znamená, že požadovaná stránka je buď již v RAM, ale není označena v blok správy paměti jako načtený, nebo je nově přidělen a nikdy nebyl použit. Ovladač výjimek v operačním systému potřebuje pouze přidat záznam do tabulky stránek pro požadovanou stránku a označit, že je načtena do paměti. Načtení stránky z disku není nutné. K selhání dochází v následujících případech [3] :

Vzhledem k tomu, že tyto chyby nepodléhají latenci přístupu k disku, jsou zpracovány rychleji než velké nebo hardwarové poruchy.

Významné nebo hardwarové

Selhání stránky ,  nazývané hlavní na systémech podobných Linuxu [ 2 ] a tvrdé  na Windows [3] , je primárním mechanismem používaným operačním systémem k přidělování paměti programům na vyžádání. Operační systém zpožďuje načítání částí programu z disku, dokud se k nim program nepokusí získat přístup a tím vygeneruje chybu stránky. Pokud se stránka v době selhání nenačte do paměti, pak se selhání nazývá hlavní nebo hardwarové selhání. Obslužný program chyb stránky v operačním systému musí najít volné místo v paměti RAM: buď volnou stránku, nebo stránku zaneprázdněnou. Zaneprázdněná stránka může patřit jinému procesu. V tomto případě musí operační systém vyprázdnit data stránky na disk (pokud již nebyla odložena) a označit stránku v tabulce stránek procesu jako nedostatek paměti. Jakmile se uvolní místo, může operační systém načíst data pro novou stránku do paměti, přidat její fyzickou adresu do tabulky stránek původního procesu a označit stránku jako uloženou v paměti. Potřeba přístupu k disku činí řešení takovýchto selhání mnohem pomalejší ve srovnání se snadnými.

Přístup na neplatnou stránku

Pokud dojde k chybě stránky při přístupu na adresu, která nepatří do virtuálního adresního prostoru procesu, to znamená, že v paměti nemůže být stránka odpovídající této adrese, pak se tato chyba nazývá neplatná chyba stránky .  Obslužná rutina chyb stránky operačního systému v tomto případě obvykle předá chybu segmentace původnímu procesu, což znamená, že byl přístup neplatný. To způsobí selhání bloku kódu, který provedl neplatné volání . Příkladem neplatné reference je dereference nulového ukazatele . Nulový ukazatel je ukazatel, který neodkazuje na žádný objekt. Obvykle je reprezentován jako ukazatel na adresu 0. Většina operačních systémů nezahrnuje stránku obsahující adresu nula v adresovém prostoru procesu, takže pokusy o čtení nebo zápis paměti pomocí nulového ukazatele vedou k selhání stránky.

Poznámky

  1. E. Tannenbaum. Moderní operační systémy = Moderní operační systémy. - 2. vyd. - Petrohrad. : Peter, 2002. - S. 235. - 1040 s. - ISBN 5-318-00299-4 .
  2. 1 2 Kapitola 2. Alokace paměti  . Získáno 30. prosince 2017. Archivováno z originálu 11. února 2015.
  3. 1 2 3 Pracovní sada (Windows  ) . Získáno 30. prosince 2017. Archivováno z originálu dne 2. listopadu 2017.

Odkazy