Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### Stránkování

podporované všemi velkými CPU a OS, jednorozměrný VAP

- VAP rozdělen na stránky (velikost je mocnina 2), FAP na rámce (úseky stejné délky)
- převod stránkovací tabulkou, příznak existence mapování (výpadek stránky synchronní přerušení)

- umožnuje oddělené VAP i sdílenou paměť - mapování virtuální stránky 2 procesů na jednu fyzickou
- víceúrovňové stránkování (např. kvůli velikosti)

- TLB (Translation Lookaside Buffer) - asociativní paměť sloužící na rychlé vyhledání mapování virtuální stránky na fyzickou, využívá lokalitu chování programů

  ...nulaúrovňové stránkování - používá pouze TLB, řízeno také OS (oblíbené u 64-bitových CPU - UltraSPARC III)

- inverzní stránkování (např. když FAP je menší než VAP, 64-bitové CPU - IA-64)

Akce vykonávané při výpadku stránky:

- výjimka procesoru
- uložit stav CPU (kontext)
- zjistit VA
- kontrola platnosti adresy a práv
- nalezení volného rámce
- zrušit mapování na nalezený rámec
- pokud je vyhazovaný rámec vyhazován, spustit ukládání na disk
- načíst z disku požadovanou stránku do rámce
- zavést mapování
- obnovit kontext

Při implementaci stránkování je nutno brat v úvahu:

- znovuspuštění instrukce -- je potřeba aby procesor po výpadku zkusil přístup do paměti znova. dnes umí všechny CPU, např. 68xxx - problémy (přerušení v půlce instrukce)
- sdílení stránek -- jednomu rámci odp. víc stránek pokud s ním něco dělám, týká se to všech stránek! musím vše ost. odmapovat. musím si pamatovat mapování pro každý rámec - obrácené tabulky.
- odstranění položky z TLB při rušení mapování -- nestačí změnit tabulky, musí se vyhodit i z TLB (kde to může, ale nemusí být). problém - u multiprocesorů má každá CPU vlastní TLB, tabulky jsou sdílené CPU při rušení mapování musí poslat interrupt s rozkazem ke smazání všem (i sobě), počkat na potvrzení akce od všech.