實驗之操作系統(tǒng)之存儲管理
一、實驗目的
連續(xù)內(nèi)存分配方式會形成許多“碎片”,雖然可以通過“緊湊”方法將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。如果允許將一個進程直接分散地裝入到許多不相鄰接的分區(qū)中,則無需再進行“緊湊”?;谶@一思想而產(chǎn)生了離散分配方式。 如果離散分配的基本單位是頁,則稱為分頁存儲管理方式;如果離散分配的基本單位是段,則稱為分段存儲管理方式。
在分頁存儲管理方式中,如果不具備頁面兌換功能,則稱為基本的分頁存儲管理方式,或稱為純分頁存儲管理方式,它不具備支持虛擬存儲器的功能,它要求把每個作業(yè)全部裝入內(nèi)存后方能運行。
本實驗通過程序模擬操作系統(tǒng)的基本分頁存儲管理方式,進一步理解這一內(nèi)存分配方式的原理和特點,加深對理論知識的掌握。
二、實驗要求
1、用C語言或Java語言編寫程序模擬操作系統(tǒng)對內(nèi)存的基本分頁存儲管理方式
2、程序要能正確對“內(nèi)存”進行“分配”和“回收”,能接受用戶的輸入,顯示內(nèi)存的分配情況,并有一定的容錯能力。
3、每個人獨立按時完成實驗內(nèi)容。
三、實驗內(nèi)容
本實驗假定內(nèi)存空間已經(jīng)按塊劃分,目標程序無需關(guān)心內(nèi)存塊大小等底層細節(jié),只需按算法對內(nèi)存塊進行分配即可。程序應(yīng)該實現(xiàn)以下功能:
1、內(nèi)存初始化。假定內(nèi)存塊共有N個,初始化后的內(nèi)存空間應(yīng)該有一部分已經(jīng)被使用,這可以用隨機數(shù)或程序內(nèi)部的其他算法完成。
2、程序應(yīng)該能接受用戶輸入的進程信息,并為之分配內(nèi)存,返回分配結(jié)果(成功或失敗),注意,此處應(yīng)該考慮到不合法的輸入并進行相應(yīng)處理。
3、程序能回收用戶指定的進程所占用的內(nèi)存空間,因此,程序可能需要為每個進程分配一個唯一的進程號并給出詳細的提示信息。
4、能直觀合理地顯示內(nèi)存分配情況。
5、程序界面友好,便于操作和查看運行結(jié)果。
【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學習書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!?。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ?


四.實驗代碼
五.運行結(jié)果




六.實驗總結(jié)
通過這次的實驗更好地加深了我對基本分頁存儲的理解。同時也提高了編碼能力。
原文作者:36張文雅
