版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、操作系統(tǒng)原理上機實踐報告1 西華大學計算機系上機實踐報告一. 實驗目的1、通過編寫和調試存儲管理的模擬程序以加深對存儲管理方案的理解;2、熟悉虛存管理的各種頁面淘汰算法。3、通過編寫和調試地址轉換過程的模擬程序以加強對地址轉換過程的了解。二. 實驗內容與設計思想上機實踐內容:設計一個請求頁式存儲管理方案。并編寫模擬程序實現(xiàn)之。產生一個需要訪問的指令地址流。它是一系列需要訪問的指令的地址。為不失一般性,你可以適當?shù)?(用人工指定地方法或用隨機數(shù)產生器)生成這個序列,使得50的指令是順序執(zhí)行的。 25的指令均勻地散布在前地址部分,25的地址是均勻地散布在后地址部分。為簡單起見。頁面淘汰算法采用fi
2、fo 頁面淘汰算法,并且在淘汰一頁時,只將該頁在頁表中抹去。而不再判斷它是否被改寫過,也不將它寫回到輔存。設計思路:產生一個需要訪問的指令地址流;指令合適的頁面尺寸(例如以 1k 或 2k為 1 頁);指定內存頁表的最大長度,并對頁表進行初始化;每訪問一個地址時,首先要計算該地址所在的頁的頁號,然后查頁表,判斷該頁是否在主存如果該頁已在主存,則打印頁表情況; 如果該頁不在主存且頁表未滿,則調入一頁并打印頁表情況;如果該頁不在主存且頁表已滿,則按fifo頁面淘汰算法淘汰一頁后調入所需的頁,打印頁表情況;逐個地址訪問,直到所有地址訪問完畢。存儲管理算法的流程圖如下: 操作系統(tǒng)原理上機實踐報告2 圖
3、 1 fifo 頁面置換算法流程圖三. 使用環(huán)境windows 8 , vs2012 四. 核心代碼及調試過程addpage函數(shù)組要完成向頁表中加入頁,當頁表未滿時,直接將該頁加入頁表;若頁表已經裝滿則淘汰最先進入的頁面然后加入該頁void addpage(page pa) if (isfull() cout 淘汰 p0.num 頁 加入 pa.num 頁n; for (int i = 0; i page_table_size - 1; i+) 開始結束操作系統(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:頁表已經滿淘汰舊頁面加入新頁五. 總結fifo算法通過維護一個頁面的鏈表來記錄它們裝入內存的順序。淘汰的是最老的頁面,但是該頁面可能仍在使用,因此fifo算法不是一個好的選擇。fifo算法理論上很簡單,但是實際實現(xiàn)起來還是很有難度的,如果最開始的時候沒有考慮好數(shù)據(jù)結構, 要那些數(shù)據(jù)。 用什么樣的方式來組織, 后來的麻煩會有很多。還有就是語言本身的的特點,如數(shù)據(jù)的初始化,內存的管理。六. 附錄完整代碼:#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; /開始逐條進行訪問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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- M-COPA-AMF-26-生命科學試劑-MCE
- 公司食堂企業(yè)食堂應急預案
- 2024年精神病防治工作總結
- 曝氣濾池課程設計
- 收入政策審計方案
- 操作系統(tǒng)文件課程設計
- 購物積分系統(tǒng)課程設計
- 播音主持專業(yè)課程設計
- 擺攤氣球采購方案
- 搭建游戲課程設計
- 淺談新時期企業(yè)勞動競賽的實踐與創(chuàng)新
- 10kV配電工程驗收資料全
- 精密貼片電阻阻值對照表
- 第四章有機反應中的活性中間體
- 初中英語教學策略研究論文10篇
- 橢圓中??嫉氖鶙l焦點性質和證明
- 《VCS-仿真驗證》ppt課件
- 親子閱讀ppt課件
- 愛心媽媽結對幫扶記錄表
- 八年級語文上冊期中文言文默寫(含答案)
- 江倉六號井社會穩(wěn)定風險評估報告
評論
0/150
提交評論