實
驗
報
告
課程名稱________操作系統試驗____________
實驗名稱________
動態分區分配___________
實驗類型_________驗證型_________________
實驗地點___機房___實驗日期__2011_
指導教師__________________________
專
業_計算機科學與技術_
班
級__________
學
號______________
姓
名____________
成績________________
XX大學計算機與通信工程學院
實驗3
動態分區分配
一.實驗目的用高級語言編寫和調試一個內存分配模擬程序,以加深對動態分區的概念及內存分配原理的理解。
二.實驗原理
可變分區調度算法有:最先適應分配算法,最優適應分配算法,最壞適應算法。
用戶提出內存空間的申請;系統根據申請者的要求,按照一定的分配策略分析內存空間的使用情況,找出能滿足請求的空閑區,分給申請者;當程序執行完畢或主動歸還內存資源時,系統要收回它所占用的內存空間或它歸還的部分內存空間。
每當一個進程被創建時,內存分配程序首先要查找空閑內存分區表(鏈),從中尋找一個合適的空閑塊進行劃分,并修改空閑內存分區表(鏈)。當進程運行完畢釋放內存時,系統根據回收區的首址,從空閑區表(鏈)中找到相應的插入點,此時出現如下四種情況:
1)
回收區與插入點的前一個空閑分區F1相鄰接,此時可將回收區直接與F1合并,并修改F1的大小;
2)
回收區與插入點的后一個空閑分區F2相鄰接,此時可將回收區直接與F2合并,并用回收區的首址最為新空閑區的首址,大小為二者之和;
3)
回收區同時與插入點的前、后兩個空閑分區鄰接,此時需將三者合并;
4)
回收區不與任何一個空閑區鄰接,此時應建一新的表項。
三.實驗內容
編寫并調試一個模擬的內存分配程序。具體做法為:使用一個循環,根據提示,由用戶選擇隨時創建一個新的進程,并為其分配存儲空間,也隨時可以撤銷一個進程,可以根據需要隨時打印空閑分區表(鏈)以及打印系統中內存使用情況。
四.實驗環境
軟件環境:Visual
C++6.0
五.實驗方案
六.實驗步驟
1、流程圖
2、程序源代碼
八.實驗中遇到的問題及解決方法
九.實驗總結(見封皮)
【實驗總結】
【指導教師評語及成績】
成績:
指導教師(簽字):
****年**月**日