昨天稍微提了一些有關Paging的觀念,今天要繼續來說明Paging。
Paging是屬於fixed-partition的方法,將記憶體以一個不變的大小切成好幾等分。
frame
page
page table
上面。然而一個完整的address translation,不只是mapping那麼簡單,基本上CPU在讀取memory的時候是以byte為單位,所以將page切成兩個部分:
而對應到的frame address計算方式是由 page number先去找到page對應的address去加上page offset。
Page的size直接影響電腦的效能,不管是logical address或physical都是使用同樣的大小來切,其中有幾個特點
Frame Size不能夠太大,也不能夠太小。如果size太大,internal fragmentation會很大,但如果size過小,Page number就會變大,一但Page number變大則代表Page Table會很長,每一個Program又都需要一個Page Table,會造成空間的浪費,也就代表著讀取資料要拿取的page會變得很多,電腦在記憶體內跳來跳去存取各個page造成效能下降。4KB就像是大家在設計上回歸出來的一個數字,剛好不會太大、又不會太小。