




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 2013 -2014學年 第3學期 實驗項目名稱分區(qū)存儲管理算法模擬實驗日期2014/12/25實驗成績實驗類型 驗證型實驗目的與要求一個好的計算機系統(tǒng)不僅要有一個足夠容量的、存取速度高的、穩(wěn)定可靠的主存儲器,而且要能合理地分配和使用這些存儲空間。當用戶提出申請存儲器空間時,存儲管理必須根據(jù)申請者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閑區(qū)域分配給申請者。當作業(yè)撤離或主動歸還主存資源時,則存儲管理要收回作業(yè)占用的主存空間或歸還部分主存空間。主存的分配和回收的實現(xiàn)雖與主存儲器的管理方式有關(guān)的,通過本實驗幫助學生理解在不同的存儲管理方式下應怎樣實現(xiàn)主存空間的分配和回收。實驗原理用
2、最先使用算法模擬內(nèi)存的分配和回收實驗環(huán)境C語言 Dev C+實驗方案設(shè)計實驗內(nèi)容1. 可變分區(qū)方式是按作業(yè)需要的主存空間大小來分割分區(qū)的。當要裝入一個作業(yè)時,根據(jù)作業(yè)需要的主存量查看是否有足夠的空閑空間,若有,則按需要量分割一個分區(qū)分配給該作業(yè);若無,則作業(yè)不能裝入。隨著作業(yè)的裝入、撤離,主存空間被分成許多個分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的。如下圖3.1所示。 圖3.1主存分區(qū)分配示意圖為了說明哪些區(qū)是空閑的,可以用來裝入新作業(yè),必須要有一張空閑區(qū)說明表,格式如下表3.1所示。其中,起址指出一個空閑區(qū)的主存起始地址。長度指出從起始地址開始的一個連續(xù)空閑的長度。狀態(tài)有兩種狀態(tài),一種是
3、“未分配”狀態(tài),指出對應的由起址指出的某個長度的區(qū)域是空閑區(qū);另一種是“空表目”狀態(tài),表示表中對應的登記項目是空白(無效),可用來登記新的空閑區(qū)(例如,作業(yè)撤離后,它所占的區(qū)域就成了空閑區(qū),應找一個“空表目”欄登記歸還區(qū)的起址和長度且修改狀態(tài))。由于分區(qū)的個數(shù)不定,所以空閑區(qū)說明表中應有適量的狀態(tài)為“空表目”的登記欄目,否則造成表格“溢出”無法登記。表3.1空閑區(qū)說明表起 址長 度狀 態(tài)第一欄14 K12 K未 分 配第二欄32 K96 K未 分 配MM空 表 目空 表 目MM上述的這張說明表的登記情況是按圖3.1中的例子所裝入的三個作業(yè)占用的主存區(qū)域后填寫的。2. 當有一個新作業(yè)要求裝入主存
4、時,必須查空閑區(qū)說明表,從中找出一個足夠大的空閑區(qū)。有時找到的空閑區(qū)可能大于作業(yè)需要量,這時應把原來的空閑區(qū)變成兩部分:一部分分給作業(yè)占用;另一部分又成為一個較小的空閑區(qū)。為了盡量減少由于分割造成的空閑區(qū),而盡量保存高地址部分有較大的連續(xù)空閑區(qū)域,以利于大型作業(yè)的裝入。為此,在空閑區(qū)說明表中,把每個空閑區(qū)按其地址順序登記,即每個后繼的空閑區(qū)其起始地址總是比前者大。為了方便查找還可使表格“緊縮”,總是讓“空表目”欄集中在表格的后部。3. 采用最先適應算法(順序分配算法)分配主存空間。按照作業(yè)的需要量,查空閑區(qū)說明表,順序查看登記欄,找到第一個能滿足要求的空閑區(qū)。當空閑區(qū)大于需要量時,一部分用來裝
5、入作業(yè),另一部分仍為空閑區(qū)登記在空閑區(qū)說明表中。由于本實驗是模擬主存的分配,所以把主存區(qū)分配給作業(yè)后并不實際啟動裝入程序裝入作業(yè),而用輸出“分配情況”來代替。最先適應分配算法如圖3.2。4. 當一個作業(yè)執(zhí)行結(jié)束撤離時,作業(yè)所占的區(qū)域應該歸還,歸還的區(qū)域如果與其它空閑區(qū)相鄰,則應合成一個較大的空閑區(qū),登記在空閑區(qū)說明表中。例如,在圖3.1中列舉的情況下,如果作業(yè)2撤離,歸還所占主存區(qū)域時,應與上、下相鄰的空閑區(qū)一起合成一個大的空閑區(qū)登記在空閑區(qū)說明表中。歸還主存時的回收算法如圖3.3。5. 請按最先適應算法設(shè)計主存分配和回收的程序。然后按圖3.1中假設(shè)主存中已裝入三個作業(yè),且形成兩個空閑區(qū),確定
6、空閑區(qū)說明表的初值?,F(xiàn)有一個需要主存量為6K的作業(yè)4申請裝入主存;然后作業(yè)3撤離;再作業(yè)2撤離。請你為它們進行主存分配和回收,把空閑區(qū)說明表的初值以及每次分配或回收后的變化顯示出來或打印出來。調(diào)試過程及實驗結(jié)果總結(jié)此實驗還可以寫一個用戶自己的輸入來驗證,增加驗證的準確性附錄#include #include #define COUNT 512typedef struct NODE char name;/名稱float start;/起始位置float end;/大小int flag;/是否分配的標志NODE; NODE OSCOUNT;/數(shù)組int count;/被分成的塊數(shù)統(tǒng)計int app
7、lyfree; float numb; char c; /先對數(shù)組進行初始化,使沒有分配的名稱為pvoid init() count=1; OS0.name =P; OS0.start =0; OS0.end =COUNT; OS0.flag =1; /對數(shù)組的插入操作void insert(int m,float st,float en) int i;count+; for(i=count;im+1;i-) OSi=OSi-1; OSm.start =st; OSm.end =en; /移動操作,即對數(shù)組的刪除操作void move(int m) int i; for(i=m;icount-
8、1;i+) OSi=OSi+1; count-; /如果相鄰塊都沒有分配,則要合并到一起void rremove(int m,float st,float en) if(!OSm-1.flag &!OSm+1.flag ) OS =P; OSm.flag =1; if(OSm-1.flag ) OSm-1.end =OSm-1.end +en; move(m); if(OSm+1.flag ) OSm.end =OSm.end +OSm+1.end; OS =P; OSm.flag =1; move(m+1); /打印輸出void show() int i; print
9、f(名稱 標識 起址 長度 狀態(tài)n); for(i=0;icount;i+) if(OSi.flag ) printf(P ); else printf(%c ,OS ); printf(%d %1.0f %1.0f ,i,OSi.start ,OSi.end ); if(OSi.flag ) printf(未分配n); else printf(已分配n); /從鍵盤輸入數(shù)據(jù)void putin() printf(請輸入申請或者釋放的進程名稱及資源數(shù)量:n); rewind(stdin); scanf(%c,&c); scanf(%d,&applyfree); scanf(%f,&
10、numb); int apply() int i=0; int applyflag=0; int freeflag=0; if(applyfree)/提出申請資源 while(!applyflag&i=numb&OSi.flag ) if(OSi.end =numb) OS =c; OSi.flag =0; else insert(i+1,OSi.start +numb,OSi.end -numb); OSi+1.flag =1; OSi+1.name =P; OSi.start =OSi.start; OS =c; OSi.end =numb; OSi.flag =0
11、; applyflag=1; i+; if(applyflag) printf(申請成功!n); return 1; else printf(申請失?。]有足夠大的空閑空間。n); return 0; else/提出釋放資源 while(!freeflag&inumb) insert(i+1,OSi.start +numb,OSi.end -numb); OSi+1.name =P; OSi+1.flag =0; OSi.end =numb; OSi.flag =1; if(OSi-1.flag ) rremove(i,OSi.start ,OSi.end ); else printf(釋放失敗,因為正使用的數(shù)量小于要求釋放的數(shù)量。n); retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓師師資課件
- 教育中的社會心理學促進學生群體的積極互動與成長
- 兒童成長記錄與教育心理學的結(jié)合
- 應急安全知識培訓課件
- 企業(yè)品牌形象與智慧零售的發(fā)展策略
- 2025年中國兩輪流動垃圾箱數(shù)據(jù)監(jiān)測研究報告
- 從教育技術(shù)到用戶體驗俯臥式學習的未來趨勢
- 教育革新之光區(qū)塊鏈在學歷認證的應用案例
- 學校校園電動自行車管理辦法
- 全球鈾礦資源分布與2025年核能產(chǎn)業(yè)節(jié)能減排報告
- 設(shè)備移交協(xié)議書模板
- 慢阻肺診療規(guī)范
- 黑龍江省普通高中2024年1月學業(yè)水平合格性考試 數(shù)學試題(真題)
- 《互聯(lián)網(wǎng)產(chǎn)品開發(fā)》教學教案
- 車輛不過戶免責協(xié)議書范本
- 校園信息化建設(shè)中的技術(shù)難題與解決方案
- 精-品解析:廣東省深圳紅嶺中學2024-2025學年高一上學期第一學段考(期中)英語試題(原卷版)
- 論語十二章原文全篇高中版
- 食堂內(nèi)部控制制度
- 世界衛(wèi)生組織人類精液及精子-宮頸粘液相互作用實驗室檢驗手冊第五版
- 2024-2025學年初中信息技術(shù)(信息科技)七年級下冊蘇科版(2023)教學設(shè)計合集
評論
0/150
提交評論