版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)原理上機實踐報告1 西華大學(xué)計算機系上機實踐報告一. 實驗?zāi)康?、通過編寫和調(diào)試存儲管理的模擬程序以加深對存儲管理方案的理解;2、熟悉虛存管理的各種頁面淘汰算法。3、通過編寫和調(diào)試地址轉(zhuǎn)換過程的模擬程序以加強對地址轉(zhuǎn)換過程的了解。二. 實驗內(nèi)容與設(shè)計思想上機實踐內(nèi)容:設(shè)計一個請求頁式存儲管理方案。并編寫模擬程序?qū)崿F(xiàn)之。產(chǎn)生一個需要訪問的指令地址流。它是一系列需要訪問的指令的地址。為不失一般性,你可以適當(dāng)?shù)?(用人工指定地方法或用隨機數(shù)產(chǎn)生器)生成這個序列,使得50的指令是順序執(zhí)行的。 25的指令均勻地散布在前地址部分,25的地址是均勻地散布在后地址部分。為簡單起見。頁面淘汰算法采用fi
2、fo 頁面淘汰算法,并且在淘汰一頁時,只將該頁在頁表中抹去。而不再判斷它是否被改寫過,也不將它寫回到輔存。設(shè)計思路:產(chǎn)生一個需要訪問的指令地址流;指令合適的頁面尺寸(例如以 1k 或 2k為 1 頁);指定內(nèi)存頁表的最大長度,并對頁表進(jìn)行初始化;每訪問一個地址時,首先要計算該地址所在的頁的頁號,然后查頁表,判斷該頁是否在主存如果該頁已在主存,則打印頁表情況; 如果該頁不在主存且頁表未滿,則調(diào)入一頁并打印頁表情況;如果該頁不在主存且頁表已滿,則按fifo頁面淘汰算法淘汰一頁后調(diào)入所需的頁,打印頁表情況;逐個地址訪問,直到所有地址訪問完畢。存儲管理算法的流程圖如下: 操作系統(tǒng)原理上機實踐報告2 圖
3、 1 fifo 頁面置換算法流程圖三. 使用環(huán)境windows 8 , vs2012 四. 核心代碼及調(diào)試過程addpage函數(shù)組要完成向頁表中加入頁,當(dāng)頁表未滿時,直接將該頁加入頁表;若頁表已經(jīng)裝滿則淘汰最先進(jìn)入的頁面然后加入該頁void addpage(page pa) if (isfull() cout 淘汰 p0.num 頁 加入 pa.num 頁n; for (int i = 0; i page_table_size - 1; i+) 開始結(jié)束操作系統(tǒng)原理上機實踐報告3 pi = pi + 1; ppage_table_size - 1 = pa; else plength = pa
4、; length+; cout 加入 pa.num 頁n; 模仿 cpu 逐條訪問指令流,若指令地址所在頁的頁號大于總頁數(shù)則發(fā)生越界中斷;若指令地址所在頁的頁號在頁表中則輸出頁表信息;若指令地址所在頁的頁號不在頁表中,則發(fā)生缺頁中斷然后向頁表中加入該頁再輸出頁表信息; for (size_t i = 0; i read_size; i+) /計算頁號 n int pagenum = readi/page_size ; cout 訪問 pagenum =all / page_size) cout 越界中斷 n; continue; if (pt.isinpagetable(pagenum) ;
5、else cout 缺頁中斷 n; pt.addpage(allpagepagenum); 操作系統(tǒng)原理上機實踐報告4 圖 1:直接訪問存在頁表中的頁和頁表未滿直接加入頁表圖 2:頁表已經(jīng)滿淘汰舊頁面加入新頁五. 總結(jié)fifo算法通過維護一個頁面的鏈表來記錄它們裝入內(nèi)存的順序。淘汰的是最老的頁面,但是該頁面可能仍在使用,因此fifo算法不是一個好的選擇。fifo算法理論上很簡單,但是實際實現(xiàn)起來還是很有難度的,如果最開始的時候沒有考慮好數(shù)據(jù)結(jié)構(gòu), 要那些數(shù)據(jù)。 用什么樣的方式來組織, 后來的麻煩會有很多。還有就是語言本身的的特點,如數(shù)據(jù)的初始化,內(nèi)存的管理。六. 附錄完整代碼:#include
6、 操作系統(tǒng)原理上機實踐報告5 using namespace std; #define all 100000 /總共有好多指令#define page_size 1024 /頁面尺寸為 1k #define page_table_size 10 /頁表可以裝 20 個頁面#define read_size 100 /訪問地址流個數(shù)class page public : int num; /頁號int wlnum;/ 物理塊號page() page(int n, int m) num = n; wlnum = m; ; class pagetable private: int length; /
7、頁表長度public: page ppage_table_size; pagetable() /p = new pagepage_table_size; length = 0; 操作系統(tǒng)原理上機實踐報告6 void addpage(page pa) if (isfull() cout 淘汰 p0.num 頁 加入 pa.num 頁n; for (int i = 0; i page_table_size - 1; i+) pi = pi + 1; ppage_table_size - 1 = pa; else plength = pa; length+; cout 加入 pa.num 頁n; b
8、ool isfull() if (length page_table_size) return false; else return true; bool isinpagetable(int num) for (int i = 0; i length; i+) if (pi.num = num) return true; return false; void printtable() for (int i = 0; i length; i+) 操作系統(tǒng)原理上機實踐報告7 cout 頁號: pi.num t 物理塊號 pi.wlnum endl; ; void main() /外存 中 所以的頁
9、面page allpageall/page_size; /初始化 所有頁面for (int i = 0; i all / page_size; i+) allpagei.num = i; allpagei.wlnum = 1024 * i; pagetable pt; /*模擬 cpu 運行*/ /創(chuàng)建 訪問指令流int readread_size; for (int i = 0; i read_size; i+) if (i read_size / 4 & i3 * read_size / 4) readi = readi - 1 + 1; else readi = rand() % 40000; /開始逐條進(jìn)行訪問for (size_t i = 0; i read_size; i+) 操作系統(tǒng)原理上機實踐報告8 /計算頁號 n int pagenum = readi/page_size ; cout 訪問 pagenum =all / page_size) cout 越界中斷 n;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新型公寓托管出租合同范本3篇
- 二零二五年度智能廣告牌匾技術(shù)研發(fā)與應(yīng)用合同3篇
- 2025年度校園體育設(shè)施租賃管理服務(wù)合同3篇
- 二零二五年度服務(wù)貿(mào)易統(tǒng)計與分析合同3篇
- 二零二五年份白酒行業(yè)創(chuàng)新技術(shù)研發(fā)與應(yīng)用合同3篇
- 二零二五年度化妝品店會員折扣合同3篇
- 英語ai課程設(shè)計
- 通源課程設(shè)計哪個簡單
- 二零二五年度智慧教育項目技術(shù)服務(wù)費合同模板3篇
- 二零二五年度歷史文化名城保護建設(shè)項目合同補充條款3篇
- 2023年機房搬遷(合同) 機房搬遷服務(wù)(合同)
- 中華全國律師協(xié)會律師辦理物業(yè)管理法律業(yè)務(wù)操作指引
- 配水管網(wǎng)工程主要項目施工方法及技術(shù)措施
- 地基驗槽記錄
- 軟件無線電原理與應(yīng)用第3版 課件 【ch01】概述
- 手術(shù)區(qū)皮膚消毒及鋪單法課件
- 血液科侵襲性真菌的治療
- 重點??平ㄔO(shè)實施方案(四篇)
- 工程合同違約協(xié)議書范本
- 排列 教學(xué)PPT課件 高中數(shù)學(xué)
- 公益性崗位開發(fā)申請審批表
評論
0/150
提交評論