Linux下使用c語言實(shí)現(xiàn)的內(nèi)存管理模擬器
假設(shè)有臺計算機(jī)物理內(nèi)存大小為4MB,每個內(nèi)存頁大小為4k。采用分頁機(jī)制,使用二級頁表,第一級為頁目錄,共有1024項(xiàng),每個頁目錄項(xiàng)指向一個頁表,每個頁表項(xiàng)指向一個實(shí)際的物理頁面,每個頁表共有1024個頁表項(xiàng)。假設(shè)頁目錄和頁表不占用內(nèi)存空間。 系統(tǒng)中還有一個交換設(shè)備,采用分塊管理機(jī)制,每塊大小為4K,共1024個。有一系列內(nèi)存訪問指令,系統(tǒng)根據(jù)內(nèi)存訪問指令的內(nèi)存虛地址訪問內(nèi)存。如果頁目錄項(xiàng)為空,則分配一個頁表,并將相關(guān)值存入頁目錄項(xiàng),如果頁表項(xiàng)為空,則請求分配一個內(nèi)存頁,如果沒有空閑內(nèi)存,則使用頁面置換算法換出一個內(nèi)存頁到交換設(shè)備上。如果頁表項(xiàng)表明內(nèi)存頁在交換設(shè)備上,則先請求一個物理內(nèi)存頁,然后從交換設(shè)備上讀入內(nèi)存內(nèi)容,釋放交換設(shè)備上的磁盤塊。
標(biāo)簽:
Linux
頁
MB
c語言
上傳時間:
2015-05-01
上傳用戶:ardager