可變分區(qū)存儲管理(10)_第1頁
可變分區(qū)存儲管理(10)_第2頁
可變分區(qū)存儲管理(10)_第3頁
可變分區(qū)存儲管理(10)_第4頁
可變分區(qū)存儲管理(10)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、操作系統(tǒng)上機實驗 存儲管理 操作系統(tǒng)上機實驗 一、實驗題目 可變分區(qū)存儲管理 采用首次適應(yīng)算法 二、目的與要求 通過消化理解模擬管理程序,了解 存儲器的分配與回收過程,體會相關(guān)數(shù) 據(jù)結(jié)構(gòu)在實現(xiàn)管理算法中的重要性。 輸入一到兩組實驗數(shù)據(jù),觀察分配 與回收的處理結(jié)果,特別是回收時鄰接 空閑分區(qū)的合并處理,檢測其算法的正 確性。 三、數(shù)據(jù)結(jié)構(gòu) v空閑分區(qū)鏈表 結(jié)點結(jié)構(gòu): 分區(qū)首地址 分區(qū)大小 鏈接指針 addr size next struct linkk int size; int addr; struct linkk * next; struct linkk *PL; 三、數(shù)據(jù)結(jié)構(gòu)(續(xù)) v作業(yè)

2、表(記錄作業(yè)情況)靜態(tài)數(shù)組實現(xiàn)靜態(tài)數(shù)組實現(xiàn) jno addr size flag 作業(yè)號 內(nèi)存地址 作業(yè)長度 標(biāo)志 struct jobtab int jno; int size;struct jobtab tab20; int addr; int flag; 例:內(nèi)存分配情況 (假定總?cè)萘繛?40k) 0 0 1 0 2 0 3 80k 30k 1 4 450k 50k 1 5 160k 140k 1 6 0 7 500k 80k 1 8 350k 90k 1 9 300k 50k 1 空閑分區(qū)鏈表情況 作業(yè)表情況 四、算法思想 v算法實現(xiàn) 分配:查空閑分區(qū)鏈表 回收:考慮鄰接合并 v實驗過

3、程:輸入操作命令代碼 1.分配:輸入作業(yè)號及作業(yè)長度(已建立作業(yè)不重 復(fù)建立) 2.回收:輸入作業(yè)號(不存在作業(yè)不釋放空間) 3.可查看空閑鏈表情況(檢測分配、回收正確性) 4.可查看作業(yè)表情況(檢測分配、回收正確性) 五、算法流程 v主程序(main()函數(shù)) v分配程序(allocm()函數(shù)) v回收程序(freem()函數(shù)) v顯示空閑分區(qū)鏈表及作業(yè)表程序 (printlink()及printtab()函數(shù)) v 主程序(main()函數(shù)) v 分配程序(allocm()函數(shù)) 例:新建作業(yè)8,長度為90k,(輸入8 = n,90 = l) 查鏈表,分區(qū)3夠分配,一分為二。 空閑鏈表修改

4、情況如下: 內(nèi)存及作業(yè)表情況見前圖(紅線所示) v回收程序(freem()函數(shù)) 有四種情形(假定回收區(qū)首地址 = addr,長度 = length) 1.空閑分區(qū)鏈表空,或不與任何空閑區(qū)鄰接 = 分配新結(jié)點空間,存入回收作業(yè)首地址及長度 插入空閑分區(qū)鏈(鏈?zhǔn)?,鏈中,鏈尾?2.回收分區(qū)與后一空閑分區(qū)相鄰接 = 進行后鄰接合并 例:回收作業(yè)7空間(addr+length = 分區(qū)4首地址) 修改分區(qū)4首地址及分區(qū)大小(qaddr = addr; qsize = qsize+length;) 合并后空閑分區(qū)鏈表情況如下: v回收程序(續(xù)) 3.回首分區(qū)與前一空閑分區(qū)相鄰接 例:作業(yè)4釋放空間,與

5、分區(qū)3合并 合并后空閑分區(qū)鏈情況如下: 4.回收分區(qū)與前同時又與后空閑分區(qū)相鄰接 = 需進行三個分區(qū)合并,并刪除一個空閑分區(qū)結(jié)點 例:回收作業(yè)7后再回收作業(yè)4空間 注:除了修改空閑分區(qū)鏈表,還要修改作業(yè)表(清除flag標(biāo)志) v顯示空閑分區(qū)鏈表及作業(yè)表程序 (printlink()及printtab()函數(shù)) =上述三函數(shù),學(xué)員自己畫出流程圖 六、實驗步驟 v消化實驗算法程序 v組織上機實驗數(shù)據(jù) 第一組:指定(見下頁) 第二組:自定(要求能測試各種情形) v輸入上機程序,編譯,運行,記錄各操作步驟 的運行結(jié)果(通過顯示空閑分區(qū)鏈表及作業(yè)表) 指定操作數(shù)據(jù) (設(shè)內(nèi)存總空閑容量為設(shè)內(nèi)存總空閑容量為640640K K) 1.分配作業(yè)1(80k),作業(yè)3(30k),作業(yè)8(50k), 作業(yè)5(140k),作業(yè)9(50k),作業(yè)6(100k), 作業(yè)4(50k) 2.觀察(記錄)空閑表及作業(yè)表情況 3.回收作業(yè)8,觀察結(jié)果 4.分配作業(yè)7(80k),觀察結(jié)果 5.回收作業(yè)6, 回收作業(yè)1, 觀察結(jié)果 6.分配作業(yè)10(120k),觀察運行情況 7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論