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