某32位系統採用基於二級頁表的請求分頁存儲管理方式,按字節編址,頁目錄項和頁表項均爲4字節,虛擬地址結構如下:
頁目錄號(10位) |
頁號(10位) |
頁內偏移量(12位) |
某C程序中數組a[1024][1024]的起始虛擬地址爲1080 0000H,數組元素佔4字節,該程序運行時,其進程的頁目錄起始物理地址爲 0020 1000H。
(1)數組元素a[1][2]的虛擬地址是?對應的頁目錄號和頁號分別是?對應的頁目錄項的物理地址是?若該目錄項中存放的頁框號爲00301H,則a[1][2]所在頁對應的頁表項的物理地址是?
【解析】
(2)數組a在虛擬地址空間中所佔區域是否必須連續?在物理地址空間中所佔區域是否必須連續?
【解析】在虛擬地址空間中所佔區域必須連續,在物理地址空間中所佔區域可以不連續
(3)已知數組a按行優先方式存放,若對數組a分別按行遍歷和按列遍歷,則哪一種遍歷方式的局部性更好?
【解析】按行遍歷的局部性更好,二維數組 a 的一行的元素個數與每個頁面存放的元素個數相同,故一行的所有元素均可以存放在同一個頁面中,行遍歷時遍歷同一行中的所有元素訪問的是同一個頁面。