




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)實(shí)驗(yàn)報(bào)告選題名稱存儲器管理所在院系計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院(日語雙學(xué)位)姓 名龔德興、徐莉莉、張文卿、 王俏、何慧楠、劉艷茹、朱靜君班 級1202班指導(dǎo)老師付老師完成時(shí)間2014-11-18目錄一、實(shí)習(xí)內(nèi)容- 1 -二、實(shí)習(xí)目的- 1 -三、實(shí)習(xí)題目- 1 -四程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號說明- 2 -五、流程圖- 3 -六源程序- 4 -1、主要實(shí)現(xiàn)- 4 -2、實(shí)現(xiàn)程序- 8 -七程序運(yùn)行截圖- 9 -1、初始化程序- 9 -2、初始化作業(yè)大小- 9 -3、運(yùn)行作業(yè)過程截圖- 10 -4.全部作業(yè)存儲截圖- 10 -5、回收作業(yè)截圖- 11 -八、小組成員及分
2、工- 11 -九實(shí)驗(yàn)總結(jié)- 12 - 11 - / 13文檔可自由編輯打印一、實(shí)習(xí)內(nèi)容主存儲器空間的分配和回收。二、實(shí)習(xí)目的一個好的計(jì)算機(jī)系統(tǒng)不僅要有一個足夠容量的、存取速度高的、穩(wěn)定可靠的主存儲器,而且要能合理地分配和使用這些存儲空間。當(dāng)用戶提出申請存儲器空間時(shí),存儲管理必須根據(jù)申請者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閑區(qū)域分配給申請者。當(dāng)作業(yè)撤離或主動歸還主存資源時(shí),則存儲管理要收回作業(yè)占用的主存空間或歸還部分主存空間。主存的分配和回收的實(shí)現(xiàn)雖與主存儲器的管理方式有關(guān)的,通過本實(shí)習(xí)幫助學(xué)生理解在不同的存儲管理方式下應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。三、實(shí)習(xí)題目模擬在分頁
3、式管理方式下采用位示圖來表示主存分配情況,實(shí)現(xiàn)主存空間的分配和回收。提示:(1) 分頁式存儲器把主存分成大小相等的若干塊,作業(yè)的信息也按塊的大小分頁,作業(yè)裝入主存時(shí)可把作業(yè)的信息按頁分散存放在主存的空閑塊中,為了說明主存中哪些塊已經(jīng)被占用,哪些塊是尚未分配的空閑塊,可用一張位示圖來指出。位示圖可由若干存儲單元來構(gòu)成,其中每一位與一個物理塊對應(yīng),用0/1表示對應(yīng)塊為空閑/已占用。(2) 假設(shè)某系統(tǒng)的主存被分成大小相等的64塊,則位示圖可用8個字節(jié)來構(gòu)成,另用一單元記錄當(dāng)前空閑塊數(shù)。如果已有第0,1,4,5,6,9,11,13,24,31,共10個主存塊被占用了,那么位示圖情況如下:字 位 節(jié) 數(shù)
4、 號01234567 011001110 101010100 200000000 310000001 400000000 500000000 600000000 700000000(3) 當(dāng)要裝入一個作業(yè)時(shí),根據(jù)作業(yè)對主存的需要量,先查當(dāng)前空閑塊數(shù)是否能滿足作業(yè)要求,若不能滿足則輸出分配不成功。若能滿足,則查位示圖,找出為“0”的一些位,置上占用標(biāo)志“1”,從“當(dāng)前空閑塊數(shù)”中減去本次占用塊數(shù)。按找到的計(jì)算出對應(yīng)的塊號,其計(jì)算公式為: 塊號= j´8+i其中,j表示找到的是第n個字節(jié),I表示對應(yīng)的是第n位。根據(jù)分配給作業(yè)的塊號,為作業(yè)建立一張頁表,頁表格式:頁 號塊 號012MM(4
5、) 當(dāng)一個作業(yè)執(zhí)行結(jié)束,歸還主存時(shí),根據(jù)該作業(yè)的頁表可以知道應(yīng)歸還的塊號,由塊號可計(jì)算出在位示圖中的對應(yīng)位置,把對應(yīng)位的占用標(biāo)志清成“0”,表示對應(yīng)的塊已成為空閑塊。歸還的塊數(shù)加入到當(dāng)前空閑塊數(shù)中。由塊號計(jì)算在位示圖中的位置的公式如下:字節(jié)號 j=塊號/8 ( 表示取整)位數(shù) i=塊號/8 ( 表示取余)(5) 設(shè)計(jì)實(shí)現(xiàn)主存分配和回收的程序。假定位示圖的初始狀態(tài)如(2)所述,現(xiàn)有一信息量為5頁的作業(yè)要裝入,運(yùn)行你所設(shè)計(jì)的分配程序,為作業(yè)分配主存且建立頁表(格式如(3)所述)。然后假定有另一作業(yè)執(zhí)行結(jié)束,它占用的塊號為第4,5,6和31塊,運(yùn)行你所設(shè)計(jì)的回收程序,收回作業(yè)歸還的主存塊。四程序中使
6、用的數(shù)據(jù)結(jié)構(gòu)及符號說明1、初始化位示圖public void init(Store store);2、添加作業(yè)public void AddHwork();3、執(zhí)行作業(yè)public List<HomeWork> findWst(List<HomeWork> list, Store store)初始化位示圖顯示存儲空間添加作業(yè),并存放在list集合里面集合是否為空判斷剩余空間是否能夠存放作業(yè)顯示作業(yè)存儲詳情顯示當(dāng)前存儲空間回收作業(yè)是否全部回收開始結(jié)束五、流程圖 Y N 取作業(yè)N Y NY六源程序1、主要實(shí)現(xiàn)public class Implement private Li
7、st<HomeWork> list = new ArrayList();/* * 初始化位示圖 * * param wst */public void init(Store store) System.out.println("請初始化位圖,輸入那些主存塊被專用(0-63):以任意字符串結(jié)束");Scanner scan = new Scanner(System.in);int wst = store.getWst();int count = 64;store.setSpareNum(count);while (scan.hasNextInt() try int
8、 a = scan.nextInt();int y = a / 8;int x = a - y * 8;if (x >= 0 && y >= 0) wstyx = 1;store.setSpareNum(-count); else System.out.println("對不起,你輸入的數(shù)據(jù)有誤!請重新運(yùn)行");break; catch (Exception e) System.out.println("對不起,你輸入的數(shù)據(jù)有誤!請重新運(yùn)行");break;System.out.println(store.getSpareNu
9、m();/* * * param hw */public void AddHwork() HomeWork hwork = new HomeWork();System.out.println("初始化作業(yè)的頁號");Scanner scan = new Scanner(System.in);int num = scan.nextInt();if (num < 0) System.out.println("對不起,你輸入的數(shù)據(jù)有誤!請重新運(yùn)行");return;int a = new intnum;int b = new intnum;int j =
10、 0;for (int i = 0; i < a.length; i+) ai = j+;hwork.setPageNum(a);hwork.setPieceNum(b);list.add(hwork);/* * 執(zhí)行作業(yè) * * param list包含作業(yè)的list集合 * param store主存 */public List<HomeWork> findWst(List<HomeWork> list, Store store) List<HomeWork> hwlist = new ArrayList<HomeWork>();if
11、(list.size() = 0) System.out.println("沒有作業(yè)進(jìn)來");System.exit(0);for (int m = 0; m < list.size(); m+) / 取作業(yè)int count = 0;HomeWork hwork = list.get(m);int pageNum = hwork.getPageNum();/ 得到頁碼int pieceNum = hwork.getPieceNum();if (store.getSpareNum() >= pageNum.length) int wst = store.getW
12、st();for (int i = 0; i < wst.length; i+) for (int j = 0; j < wsti.length; j+) if (wstij = 0) if (count = pageNum.length) break;wstij = 1;pieceNumcount = i * 8 + j;count+; else continue;store.setSpareNum(store.getSpareNum() - pageNum.length);hwork.setPageNum(pageNum);hwork.setPieceNum(pieceNum)
13、;hwlist.add(hwork);/ 作業(yè)執(zhí)行完成后就進(jìn)入回收鏈表store.setWst(wst); else if (m != 0) System.err.println("執(zhí)行" + (m+1) + "空閑塊不足");elseSystem.err.println("主存空閑塊數(shù)不足");System.exit(0);return hwlist;/* * 歸還作業(yè) * * param store */public void backHomeWork(List<HomeWork> list, Store store)
14、 for (int i = 0; i < list.size(); i+) HomeWork hwork = list.get(i);int pieceNum = hwork.getPieceNum();int wst = store.getWst();for (int j = 0; j < pieceNum.length; j+) int y = pieceNumj / 8;int x = pieceNumj - y * 8;wstyx = 0;store.setSpareNum(store.getSpareNum() + pieceNum.length);store.setWs
15、t(wst);System.out.println("-回收一個作業(yè)成功->");show(store);/* * 打印作業(yè)表 * * param hwork */public void showPage(HomeWork hwork) int pageNum = hwork.getPageNum();int pieceNum = hwork.getPieceNum();System.out.println("頁號t塊號");for (int i = 0; i < pageNum.length; i+) System.out.println(
16、pageNumi + "t" + pieceNumi);/* * 顯示位示圖的狀態(tài) * * param wst */public void show(Store store) int wst = store.getWst();for (int i = 0; i < wst.length; i+) for (int j = 0; j < wsti.length; j+) System.out.print(wstij + " ");System.out.println();public List<HomeWork> getList()
17、 return list;2、實(shí)現(xiàn)程序public class RunTest public static void main(String args) Store store = new Store();Implement imp = new Implement();imp.init(store);imp.show(store);imp.AddHwork();imp.AddHwork();imp.AddHwork();List<HomeWork> list = imp.getList();List<HomeWork> backlist = imp.findWst(list, store);System.out.println(list.size()+"=");for(int i=0;i<list.size();i+)imp.showPage(list.get(i);imp.show(store);imp.backHomeWork(backlist, store);System.out.println("初始狀態(tài)");imp.show
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥理機(jī)制解析試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師的技術(shù)創(chuàng)新能力與考試導(dǎo)向試題及答案
- 瑪麗蘇測試題及答案
- 腦部小測試題及答案
- 系統(tǒng)規(guī)劃管理師考試內(nèi)容分析試題及答案
- 激光設(shè)備選型討論試題及答案
- 教學(xué)活動面試題及答案
- 服裝工藝比賽試題及答案
- 激光技術(shù)對未來工業(yè)的影響試題及答案
- 心理咨詢師考試中職業(yè)倦怠現(xiàn)象的探討試題及答案
- 人教版高中數(shù)學(xué)選擇性必修第三冊8-1-1變量的相關(guān)關(guān)系【課件】
- 《應(yīng)用文寫作》高職全套教學(xué)課件
- 綠城地產(chǎn)集團(tuán)標(biāo)準(zhǔn)化運(yùn)營手冊地產(chǎn)客服項(xiàng)目交付項(xiàng)目運(yùn)營手冊之交付工作操作指引V1
- 風(fēng)電項(xiàng)目風(fēng)機(jī)吊裝專項(xiàng)施工方案
- GB 1499.1-2024鋼筋混凝土用鋼第1部分:熱軋光圓鋼筋
- 葉片維修工-B卷考試附有答案
- 小學(xué)一二年級必背古詩詞73首帶拼音
- 正壓式空氣呼吸器操作使用方法培訓(xùn)課件
- 2024年信陽職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 五金材料采購?fù)稑?biāo)方案(技術(shù)方案)
- 《電磁學(xué)》梁燦彬課后答案解析
評論
0/150
提交評論