計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告_第1頁
計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告_第2頁
計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告_第3頁
計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告_第4頁
計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告計算機(jī)操作系統(tǒng)實驗報告實驗題目:存儲器管理系別: 計算機(jī)科學(xué)與技術(shù)系班級:姓名:學(xué)號: 2一、實驗?zāi)康纳钊肜斫鈩討B(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收。二、實驗內(nèi)容編寫程序完成動態(tài)分區(qū)存儲管理方式下的內(nèi)存分配和回收的實現(xiàn)。具體內(nèi)容包括:確定用來管理內(nèi)存當(dāng)前使用情況的數(shù)據(jù)結(jié)構(gòu);采用首次適應(yīng)算法完成內(nèi)存空間的分配;分情況對作業(yè)進(jìn)行回收;編寫主函數(shù)對所做工作進(jìn)行測試。三、實驗原理分配:動態(tài)分區(qū)存儲管理方式把內(nèi)存除占用區(qū)域外的空間看作一個大的空閑區(qū)。當(dāng)作業(yè)要求裝入內(nèi)存時,根據(jù)作業(yè)需要內(nèi)存空間的大小查詢內(nèi)存中各個空閑區(qū),當(dāng)從內(nèi)存中找到

2、一個大于或等于該作業(yè)大小的內(nèi)存空閑區(qū)時,選擇其中一個空閑區(qū),按作業(yè)要求劃出一個分區(qū)裝入該作業(yè)?;厥眨鹤鳂I(yè)執(zhí)行完后,它所占用的內(nèi)存空間被收回,成為一個空閑區(qū)。如果該空閑區(qū)的相鄰分區(qū)也是空閑區(qū),則需要將相鄰空閑區(qū)合并成一個空閑區(qū)。四、實驗方法實現(xiàn)動態(tài)分區(qū)的分配與回收,主要考慮三個問題:第一、設(shè)計記錄內(nèi)存使用情況的數(shù)據(jù)表格,用來記錄空閑區(qū)和作業(yè)占用的區(qū)域(利用結(jié)構(gòu)體類型數(shù)組來保存數(shù)據(jù));第二、在設(shè)計的數(shù)據(jù)表格基礎(chǔ)上設(shè)計內(nèi)存分配算法(采用首次適應(yīng)算法找合適的分區(qū)(對空閑分區(qū)表進(jìn)行排序),分配時要考慮碎片問題);第三、 在設(shè)計的數(shù)據(jù)表格基礎(chǔ)上設(shè)計內(nèi)存回收算法(分四種情況進(jìn)行回收(上鄰、下鄰、上下鄰和無相

3、鄰分區(qū))。五、實驗步驟第一,設(shè)計記錄內(nèi)存使用情況的數(shù)據(jù)表格已分配分區(qū)表:起始地址、長度、 標(biāo)志 ( 0 表示 “空表項 ”, 1 表示 “已分配 ”)空閑分區(qū)表:起始地址、長度、標(biāo)志(0 表示 “空表項 ”, 1 表示 “未分配 ”); 已分分區(qū)起始地址;已分分區(qū)長度,單位為字節(jié);已分配表區(qū)登記欄標(biāo)志,用0 表示空欄目,;已分配區(qū)表 ; 空閑分區(qū)起始地址;空閑分區(qū)長度,單位為字節(jié);空閑分區(qū)表登記欄目用0 表示空欄目,1 表示未配; 空閑分區(qū)表第二,在設(shè)計的表格上進(jìn)行內(nèi)存分配首次適應(yīng)算法:為作業(yè)分配內(nèi)存,要求每次找到一個起始地址最小的適合作業(yè)的分區(qū)(按起始地址遞增排序)。最大碎片:要求當(dāng)找到的空

4、閑分區(qū)作業(yè)的大小的值小于或等于時,將該分區(qū)全部分配給作業(yè)(數(shù)組后面元素向前移);否則, 給作業(yè)分割出一部分空間時,其余部分仍作為新的空閑分區(qū)登記(空閑分區(qū)長度=空閑分區(qū)長度-作業(yè)長度,空閑分區(qū)起始地址=空閑分區(qū)起始地址+作業(yè)長度第三,在設(shè)計的表格上進(jìn)行內(nèi)存回收。1、上鄰:條件: 回收作業(yè)的始址=某個空閑區(qū)的始址+長度操作:空閑區(qū)的長度=空閑區(qū)的長度+作業(yè)的大小2、下鄰:條件:回收作業(yè)的始址+作業(yè)的長度=某個空閑區(qū)的始址操作: 空閑區(qū)的始址=回收作業(yè)的始址空閑區(qū)的長度=空閑區(qū)的長度+作業(yè)的長度3、上下鄰:條件:1, 2條件同時成立操作:空閑區(qū)的始址=上鄰的始址空閑區(qū)的長度=上鄰的長度+作業(yè)的長度

5、+下鄰的長度刪除下鄰4、無上下鄰:操作:找0 的行空閑區(qū)的始址=回收作業(yè)的始址空閑區(qū)的長度=作業(yè)的長度六、實驗代碼# <># <>M 10允許的空閑區(qū)表長最大為mN 10允許的最大作業(yè)數(shù)量為n1碎片的最大值200 空閑分區(qū)初始的起始地址150000 空閑分區(qū)的初始長度;已分分區(qū)起始地址;已分分區(qū)長度;已分配表區(qū)登記欄標(biāo)志,用0 表示空欄目N;空閑分區(qū)起始地址;空閑分區(qū)長度;空閑分區(qū)表登記欄目用0 表示空欄目,1 表示未分配M;空閑分區(qū)表(); 分配算法子程序();回收算法子程序4 / 9計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告()空閑分區(qū)表初始

6、化0; 空閑分區(qū)表的起始地址0;空閑分區(qū)表的長度01;標(biāo)志位置1 表示未分配(1<)i0;i0;i0; 0表示空欄目已分分區(qū)表初始化(0<)i0;i0;i0;(1)<<" 請選擇功能項:"<<< <"1- 分配主存"<<< <"2- 回收主存"<<< <"3- 顯示主存"<<< <"0- 退出 "<<< <"選擇功能項(0-3):"&

7、gt;>a;(a) 0:當(dāng)選擇 0 時退出程序;1: 1 分配主存空間<<"n 請輸入作業(yè)名和作業(yè)所需長度( 作業(yè)名為一個字符,長度要小于"<<<<"):"<<>>>>(); 為作業(yè)分配主存空間 ;2:2回收主存空間<<"n 請輸入要回收分區(qū)的作業(yè)名:">>();回收作業(yè)的主存空間;3: 3 顯示主存情況,輸出空閑區(qū)表和已分配區(qū)表<<"n 輸出空閑區(qū)表:"<<<<" 起

8、始地址分區(qū)長度標(biāo)志 "<<(0<) (i0)<<(10)<<i<<(10)<<i5 / 9計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告<<(10)<<i<<<<"n按任意鍵,輸出已分配區(qū)表"();<<"n 輸出已分配區(qū)表:"<<<<" 起始地址分區(qū)長度標(biāo)志 "<<(0<)(i0) 輸出已分配給作業(yè)的表目<<(10)<&l

9、t;i<<(10)<<i<<(10)<<()i<< ;:<<"n 沒有該選項!"<<() 分配算法子程序( );1;0;(i<1)找空間大于的最小空閑區(qū)登記項k(i>i1);(1)未找到可用空閑區(qū),返回<<"無可用空閑區(qū)!"<<,則/* 找到可用空閑區(qū),開始分配:若空閑區(qū)大小與作業(yè)要求分配的空間差小于將找到的空閑區(qū)全部分配給該作業(yè);若空閑區(qū)大小與要求分配的空間的差大于則從空閑區(qū)劃出一部分分配給作業(yè)。*/(k<) k0;k;k;(&

10、lt;)i1; kk;k;kk;/* 修改已分配區(qū)表*/0;(i0<N) ; 找空表目ii;i;i;回收作業(yè)名為J 的作業(yè)所占主存空間( );0;(ss0)<N);找到作業(yè)在以分配表中的表目s(s>)<<" 找不到該作業(yè)!"<<s0;修改以分配表表目s 標(biāo)志為為空表目s; 取作業(yè)在內(nèi)存中的首地址s; 取作業(yè)所分配到的內(nèi)存的長度1;1;0;尋找回收分區(qū)的上下鄰空閑區(qū),上鄰表目 k,下鄰表目j(i<(11)(i1)(ii) ;(i) ;(1)有上鄰空閑區(qū)(1) 有下鄰空閑區(qū)即有上下鄰空閑區(qū),三項合并kkj;j0;上鄰空閑區(qū),下鄰非

11、空閑區(qū),與上鄰合并kk;1無上鄰空閑區(qū)(1) 無上鄰空閑區(qū),有下鄰空閑區(qū),與下鄰合并j;jj;1 上下鄰均為非空閑區(qū),回收區(qū)域直接填入0; 在空閑區(qū)表中尋找空欄目(t1<M) ;(t>)空閑區(qū)表滿,回收空間失敗,將已分配區(qū)表復(fù)原<<"主存空閑表沒有空間,回收失??!"<<s;8 / 9計算機(jī)操作系統(tǒng)動態(tài)分區(qū)存儲管理方式下的內(nèi)存空間的分配與回收實驗報告t;t;t1; (0<1)(<)(i>j);i;i皿j; 七、實驗結(jié)果1、總的存儲空間2、分配空間4480分區(qū)長度145726標(biāo)志112 / 9技年意串輸電已分配區(qū)表2B020

12、H14的2800313804316036B524005B06290010007390048084380166?強(qiáng)溜PF”分區(qū)長度 標(biāo)志3、回收空間(1)有上下鄰套配收 患分回顯退擇*瞠炳2-3-0-選回普存存要功王主主項匕匕苜分區(qū)的作業(yè)名<0-3>:3S0Q分區(qū)長度弓03標(biāo)任意鍵,輸出已分配區(qū)表Z. 日!嗨黜己區(qū)表,分區(qū)長度2m400 1300 2100 2400 Z900 3960 I A480標(biāo)志1245673(2)有上鄰4 制青選擇功赭頊;”向女主在 顯不主存山作業(yè)名:臺地址分區(qū)長度4009 附4480145720安任意犍.輸出已分配區(qū)表俞麗已分配區(qū)表; 地感

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論