Pokud vás tato tématika zajímá, doporučuji 7. přednášku BI-APS (Virtuální paměť). Je to tam vše hezky vysvětlené.
(Screenshot z BI-APS / 7. přednáška / 14. slajd)
Formát jednoho řádku Page table (tzv. Page Table Entry - PTE)
(Pro OSY: na řádce TLB je uložené číslo rámce, Presence/Reerence/Modify bit, access rights, cache disabled/enabled)
Konvenční stránkovací tabulka (page table):
Každý proces běžíší v OS má vlastní stránkovací tabulku (resp. strom stránkovacích tabulek). Její počáteční adresa je součástí kontextu každého procesoru a je uložena v BTBR (není moc podstatné pro OSY, ale good to know). Tabulky můžou být několikaúrovňové (v testech se setkáte s jednoúrovňovou) - proces hledání stránky v několikaúrovňové Page Tables se nazývá Page (table) walk.
Inverzní stránkovací tabulka:
Všechny procesy sdílejí jedinou inverzní stránkovací tabulku
TLB (Translation lookaside buffer)
Zjednodušeně nehledáme rovnou v Page table, ale koukneme se na nacachované stránky. (Podobně jako u L1 - L3 u CPU)
(Screenshot z BI-APS / 7. přednáška / 25. slajd)
TLB Typicky obsahuje:
(Pro OSY: Valid bit, číslo stránky/rámce, ASID, Reference/Modify bit)
Systém používá virtuální paměť se stránkováním. Velikost stránky/rámce je
Pro různě velké stránky je velikost offsetu různá.
Offset definuje pozici dat uvnitř rámce
Při překladu adresy se číslo stránky používá jako index do TLB
Při překladu adresy lze použít rozptylovací funkci k urychlení překladu
Pří překladu adresy hledáme číslo rámce, do kterého se stránka nahrála
Jádro systému si musí pamatovat aspoň
tabulek stránek (počet uživatelských procesů)
Jádro systému si musí pamatovat pro každý proces právě jednu tabulku
Na řádce klasické tabulky stránek je uložené číslo rámce
Na řádce klasické tabulky stránek je uložený Modify bit
Na řádce klasické tabulky stránek je uložený Reference bit
Na řádce invertované tabulky stránek je uložené číslo stránky
Na řádce invertované tabulky stránek je uložené číslo procesu
Na řádce invertované tabulky stránek je uložený Present bit
Na řádce invertované tabulky stránek je uložený Modify bit
Na řádce invertované tabulky stránek je uložený Reference bit
Na řádce TLB je uložený Present bit
Na řádce TLB je uložený Reference bit
Na řádce TLB je uložený Modify bit
Na řádce TLB je uložené číslo rámce
Na řádce TLB je uložené číslo stránky
Cache hit ratio TLB se může zvýšit, pokud systém bude používat pro proces větší stránky
Současné serverové a desktopové procesory umožňují používat různě velké stránky pro různé procesy
V případě klasické tabulky: Tabulka stránek bude obsahovat
řádek. Používáme informaci z logické adresy.
V případě invertované tabulky: Tabulka stránek bude obsahovatřádek. Používáme informaci z fyzické adresy.
Menší doporučení k 8. otázce, používejte bc. Ze standardních kalkulaček můžou vypadnout nehezké věci.