od Beny » 30. 1. 2008 22:56
Ahoj!
Na dnešní písemce z principů jsme měli následující příklad o výpadcích stránek:
Máme adresový prostor o rozsahu 2 na 36. Stránky mají velikost 4KiB. Každá položka stránkovací tabulky má velikost 64 bitů. Má se provést následující operace:
Instrukce o velikosti 2B přesune data o velikosti 4MB. Jaký je maximální počet výpadků stránek během této operace?
Já jsem došel k číslu 2066. Můj postup ve zkratce:
Tabulka stránek je uložena v rámci 4KiB. Tedy tam může být maximálně 4KiB/64 bit=512 položek.
Instrukce maximálně ve dvou rámcích, na které jsou mapovány dvě stránky. Fyzická adresa těchto dvou rámců může být uložena ve dvou stránkovacích tabulkách třetí úrovně. Fyzická adresa těchto dvou tabulek může být uložena maximálně ve dvou tabulkách druhé úrovně. A fyzické adresy těchto dvou tabulek jsou uloženy ve stránkovací tabulce první úrovně. Tedy při načítání instrukce může dojít až k 2(rámce s instrukcí)+2(rámce s tabulkami třetí úrovně)+2(rámce s tabulkami druhé úrovně)=6.
Nyní načítání 4MB dat: 4MB dat maximálně v 1025 rámcích. Odkazy na ně maximálně ve třech tabulkách třetí úrovně. Odkazy na tyto tabulky maximálně ve dvou tabulkách druhé úrovně a odkazy na tyto dvě tabulky v tabulce první úrovně(zde nemůže dojít k výpadku). Tedy: (1025+3+2)*2, neboť jednou se čte, podruhé zapisuje.
Dohromady tedy máme 2060+6=2066. Ale prý to má vyjít 2063. Co dělám špatně?
Děkuji za odpověď, jdu na opravák a chtěl bych si být jistý, že jsem to pochopil.
Ahoj!
Na dnešní písemce z principů jsme měli následující příklad o výpadcích stránek:
Máme adresový prostor o rozsahu 2 na 36. Stránky mají velikost 4KiB. Každá položka stránkovací tabulky má velikost 64 bitů. Má se provést následující operace:
Instrukce o velikosti 2B přesune data o velikosti 4MB. Jaký je maximální počet výpadků stránek během této operace?
Já jsem došel k číslu 2066. Můj postup ve zkratce:
Tabulka stránek je uložena v rámci 4KiB. Tedy tam může být maximálně 4KiB/64 bit=512 položek.
Instrukce maximálně ve dvou rámcích, na které jsou mapovány dvě stránky. Fyzická adresa těchto dvou rámců může být uložena ve dvou stránkovacích tabulkách třetí úrovně. Fyzická adresa těchto dvou tabulek může být uložena maximálně ve dvou tabulkách druhé úrovně. A fyzické adresy těchto dvou tabulek jsou uloženy ve stránkovací tabulce první úrovně. Tedy při načítání instrukce může dojít až k 2(rámce s instrukcí)+2(rámce s tabulkami třetí úrovně)+2(rámce s tabulkami druhé úrovně)=6.
Nyní načítání 4MB dat: 4MB dat maximálně v 1025 rámcích. Odkazy na ně maximálně ve třech tabulkách třetí úrovně. Odkazy na tyto tabulky maximálně ve dvou tabulkách druhé úrovně a odkazy na tyto dvě tabulky v tabulce první úrovně(zde nemůže dojít k výpadku). Tedy: (1025+3+2)*2, neboť jednou se čte, podruhé zapisuje.
Dohromady tedy máme 2060+6=2066. Ale prý to má vyjít 2063. Co dělám špatně?
Děkuji za odpověď, jdu na opravák a chtěl bych si být jistý, že jsem to pochopil.