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