[OSy] TLB vyjimky
LubomÃr Bulej
bulej at nenya.ms.mff.cuni.cz
Tue Nov 29 12:06:09 CET 2005
Dobry den,
>
> Ja bych mel jeden dotaz ohledne TLB vyjimek.
> Dle zadani mame osetrit vyjimky "TLB refill" a "TLB invalid".
> Handler pro TLB refill je v souboru Tlb.c
> Jak je to ale s vyjimkou a handlerem pro TLB invalid ??
>
> Z manualu se zda, ze kazda vyjimka souvysejici s TLB je v podstate TLB
> refill. A az podle toho jake bity jsou nastaveny v TLB entry lze
> rozlisit napriklad TLB invalid.
Existuji 3 typy TLB vyjimek: TLB Refill, TLB Invalid a TLB Modified.
TLB Refill ma vlastni entry point, protoze se da ocekavat, ze bude nastavat
pomerne casto, a ze tedy jeho obsluha bude maximalne rychla - jde pouze o to
dostat informaci o virtualni pameti procesu z datove struktury do TLB. Casto
byva implementovano v assembleru.
TLB Invalid vyvolava bezny exception handler s Cause=TLBL a Cause=TLBS.
Invalid bit v TLB polozce by nasel vyuziti pri implementaci swapu - oblasti
virtualni pameti je platna, ale data z teto oblasti jsou na disku. V kontextu
semestralni prace ovsem obsluha TLB invalid udela to same co TLB Refill, jen
jinou cestou.
TLB Modified rovnez vyvolava bezny exception handler, avsak s Cause=MOD. Dirty
bit v TLB polozce by nasel vyuziti pri implementaci copy-on-write a pri
ochrane pameti obsahujici kod programu. V kontextu semestralni prace vsak
obsluha TLB Modified udelala to same co TLB Refill.
Obsluha TLB Modified uz zadanim vyzadovana neni, protoze tu jinou cestu k
obsluze TLB jiz bylo mozne si vyzkouset u TLB invalid.
> Znamena to, ze kdyz osetrime TLB refill, tak bude osetrena i TLB invalid ??
> A znamena to tedy, ze obe vyjimky maji stejny handler k jejich obsluze ??
>
V ramci teto prace budou mit pravdepodobne stejny handler, ale urcite budou
mit jiny entry point.
Lubomir Bulej
More information about the NSWI004
mailing list