版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 報 告課程設計名稱: 計算機操作系統(tǒng) 專 業(yè) 班 級 : 學 生 姓 名 : 學 號 : 指 導 教 師 : 課程設計時間:2011.6.15-2011.6.25 計算機科學 專業(yè)課程設計任務書學生姓名專業(yè)班級學號題 目編程演示三種存儲管理方式的地址換算過程:課題性質其它課題來源自擬課題指導教師同組姓名主要內容1、分頁方式的地址換算2、分段方式的地址換算3、段頁式的地址換算任務要求 要求演示正確、清晰,編程所用工具不限。參考文獻任滿杰等操作系統(tǒng)原理實用教程 電子工業(yè)出版社 2006湯子瀛 計算機操作系統(tǒng)(修訂版)西安電子科技大學出版社 2001張堯學 史美林計算機操作系統(tǒng)教程實驗指導
2、清華大學出版社 2000 羅宇等 操作系統(tǒng)課程設計機械工業(yè)出版社 2005審查意見指導教師簽字:教研室主任簽字: 年 月 日 說明:本表由指導教師填寫,由教研室主任審核后下達給選題學生,裝訂在設計(論文)首頁1 需求分析編程演示三種存儲管理方式的地址換算過程【基本要求】(1)分頁方式地址算法。(2)分段方式地址算法。(3)段頁式地址算法。2 概要設計一、程序模塊1、 主函數 main()。2、分頁方式地址算法PageAddress(int pa,int pl)。3、分段方式地址算法SegmentAddress(int sn,int sd)。4、段頁式地址算法SegPag(int sn,int
3、pn,int pd)。二、程序總框架 程序框架如圖一:主函數結束運行段頁式地址算法分段方式地址算法分頁方式地址算法 圖一:程序框架3 運行環(huán)境Windows XP sp3;4 開發(fā)工具和編程語言Microsoft Visual C+ 6.0 ,c語言。5 詳細設計1, 定義結構體 typedef struct segtable /段式結構體 int segf256;/段首地址 int segl256;/段長segtable;struct segtable st;typedef struct segpag /段頁式結構體 int segf256;/段首地址 int segl256;/段長 int
4、 ptl256;/頁表長度 int bn256;/塊號 int pf256;/頁表首地址 int pl;/頁面長度segpagt;struct segpag sp;2, void PageAddress(int pa,int pl)/分頁式地址算法 該方法中pa表示要查找的邏輯地址,pl表示頁面大小。頁號p=pa/pl,頁內地址d=pa%pl。先比較頁號和頁表長度大小,如果頁號大于頁表長度,越界中斷。否者繼續(xù)通過計算得到物理地址Mac=塊號*頁面大小+頁內地址。 具體代碼如下: void PageAddress(int pa,int pl)/分頁式地址算法 int d,p,i; int Mac
5、;/物理地址 int Bn256;/塊號 for(i=0;ipl) printf(頁號大于頁表長度,越界中斷!n); else printf(頁號=邏輯地址/頁面大小=%dn頁內地址=邏輯地址%頁面大小=%dn,p,d); printf(根據頁號%d得到塊號%dn,p,Bnp); Mac=Bnp*pl+d; printf(物理地址=塊號%d*頁面大小%d+頁內地址%dn,Bnp,pl,d); printf(邏輯地址%d換算后的物理地址為%dnn,pa,Mac); 3,void SegmentAddress(int sn,int sd)/分段式地址算法該方法中sn表示段號、sd表示段內偏移地址。
6、假定短表長度為256,首先比較段號與段表的大小,若大于則越界中斷。然后比較段內地址與段長度,若大于,越界中斷。否則根據段號找到首地址,然后計算物理地址Mac=段首地址+段內地址。具體代碼如下:void SegmentAddress(int sn,int sd)/分段式地址算法int i;int Mac;/物理地址for(i=0;i=256)printf(段號%d大于等于段表長度256,越界中斷n,sn);else if(sdst.seglsn)printf(段內地址%d大于段長度%d,越界中斷n,sd,st.seglsn);elseprintf(根據段號找到段首地址%dn,st.segfsn)
7、;printf(物理地址=段首地址%d+段內地址%dn,st.segfsn,sd);Mac=st.segfsn+sd;printf(換算得到的物理地址為:%dn,Mac);4,void SegPag(int sn,int pn,int pd)/段頁式地址算法 該方法中sn代表段號,pn代表頁號,pd頁內地址。設定段表長度為256,頁面大小為256。比較段號與段表長度大小,若大于則越界中斷。若小于繼續(xù)下一步,比較頁號與頁表長度大小,若大于則越界中斷。若小于繼續(xù)下一步,比較頁內地址和頁面大小,若大于同樣越界中斷。否則繼續(xù)下一步的計算,通過段號找到頁表首地址,然后找到塊號。最后計算物理地址=頁表首地
8、址+塊號*頁面長度+頁內地址(Mac=sp.pfsn+sp.bnpn*sp.pl+pd)。具體代碼如下:void SegPag(int sn,int pn,int pd)/段頁式地址算法int i,Mac;sp.pl=256;for(i=0;i256)printf(段號%d大于段表長度256,越界中斷n,sn);else if(pnsp.ptlpn)printf(頁號%d大于頁表長度%d,越界中斷n,pn,sp.ptlpn);else if(pdsp.pl)printf(頁內地址%d大于頁面長度%d,中斷n,pd,sp.pl);elseprintf(通過段號%d找到頁表首地址%d找到塊號%dn
9、,sn,sp.pfsn,sp.bnpn);printf(物理地址=頁表首地址%d+塊號%d*頁面長度%d+頁內地址%dn,sp.pfsn,sp.bnpn,sp.pl,pd); Mac=sp.pfsn+sp.bnpn*sp.pl+pd;printf(物理地址:%dn,Mac); 5,void main() 該main方法中顯示菜單、做選擇要使用的方法實現地質換算。用sel做出選擇,并用switch(sel)實現選擇的目的。具體代碼如下:void main()int sel;int pl,pa,sn,sd,pd,pn;while(1)printf(三種存儲管理方式的地址換算過程nn);printf
10、( 1.分頁方式地址換算t);printf( 2.分段方式地址換算nn);printf( 3.短頁式地址換算t);printf( 0.結束運行nn);printf(nn);printf(請輸入你的選擇:);scanf(%d,&sel);if(sel=0)printf(謝謝使用!);break;switch(sel)case 1:system(cls);printf(請輸入換算邏輯地址:n);scanf(%d,&pa);printf(頁面大?。簄);scanf(%d,&pl);PageAddress(pa,pl);break;case 2:system(cls);printf(設定段表長度為25
11、6n);printf(請輸入邏輯地址的段號:n);scanf(%d,&sn);printf(段內地址:n);scanf(%d,&sd);SegmentAddress(sn,sd);break;case 3:system(cls);printf(預設定段表長為256,頁面大小為256n);printf(請輸入邏輯地址的段號:n);scanf(%d,&sn);printf(頁號:n);scanf(%d,&pn);printf(頁內地址:n);scanf(%d,&pd);SegPag(sn,pn,pd);break;default:system(cls);printf(n);printf(n);pr
12、intf(錯誤提示:輸入有錯,重新輸入!);printf(n);6 調試分析通過調試發(fā)現了比較多的問題,輸出%的問題即printf(頁號=邏輯地址/頁面大小=%dn頁內地址=邏輯地址%頁面大小=%dn,p,d)需要用兩個百分號,才能顯示出來,一個百分號還不顯示。一步一個腳印,循循漸進,慢慢磨,最終就會成功,每一次出錯是一次改良的機會,通過過一個個錯誤的改正,才能做出比較完整的程序,甚至完美的程序。7測試結果 (1)運行程序出現界面如下圖二: 圖二:開始選擇界面 (2)選擇1,提示輸入需換算的邏輯地址,以及頁面大小。輸入完成后的結果如圖三:圖三:分頁方式換算過程及結果 (3)選則2,進入分段方式
13、地址換算,提示輸入邏輯段號,以及頁內地址,輸入完成后,可得到物理地址。運行結果如圖四:圖四:分段方式換算過程及結果(4)選擇3,進入段頁式地址轉換,提示輸入段號,頁號,頁內地址。然后即可得到物理地址。運行結果如圖五:圖五:段頁式換算過程及結果(5)選擇0,結束運行。運行結果如圖六:圖六:結束運行結果(6)如果選擇出錯。運行結果如圖七:圖七:選擇其他運行結果8 參考文獻 1 譚浩強 C程序設計(第三版)清華大學出版社 2003 。2任滿杰等 操作系統(tǒng)原理實用教程 電子工業(yè)出版社 2006 。3湯子瀛 計算機操作系統(tǒng)(修訂版)西安電子科技大學出版社 2001 。4張堯學 史美林計算機操作系統(tǒng)教程實驗指導 清華大學出版社 2000 。5羅宇等 操作系統(tǒng)課程設計機械工業(yè)出版社 2005。課程設計總結通過這次課程設計,讓我充分了解三種存儲管理方式的地址換算算法。剛開始的時候,看了半天的操作系統(tǒng)書,才弄懂三種算法。通過對框架的設計,到具體實現是比較麻煩的過程,開始想完全后,寫在草紙上,然后一口氣敲完代碼,一大堆錯誤,最后,還是一步一步來實現,循循漸進,最終完成。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 62841-3-14:2017/AMD1:2024 EN-FR Amendment 1 - Electric motor-operated hand-held tools,transportable tools and lawn and garden machinery - Safety - Part 3-14: Particular
- 2024年醫(yī)院財務工作計劃模版(二篇)
- 2024年小學下半年工作計劃模版(二篇)
- 2024年發(fā)電機租賃協(xié)議經典版(二篇)
- 2024年四年級班主任工作總結范本(四篇)
- 2024年單位勞務合同參考樣本(二篇)
- 【《不同建筑材料在老城保護和更新基建項目中的應用探究:以成都太古里項目為例》8500字(論文)】
- 2024年學校后勤工作職責范文(二篇)
- 2024年醫(yī)院食品衛(wèi)生安全管理制度范本(五篇)
- 散學典禮的講話稿(6篇)
- 國企紀委業(yè)務培訓課件
- 2022-2023學年揚州市寶應縣五年級上學期期中測試數學試卷(含答案解析)
- 保安服務針對本項目的服務特點、難點分析及解決措施
- 《團購產品目錄》課件
- 逆向工程在汽車設計中的應用
- 致心律失常性右室心肌病的診斷與治療
- 健康評估練習題大全(含答案)
- 新北師大版小學數學二年級上冊《六-測量:課桌有多長》-公開課教案-1
- 新時代青年的使命與擔當
- 配電房保養(yǎng)方案
- 2020農田灌溉建設項目水資源論證導則
評論
0/150
提交評論