操作系統(tǒng)課程設(shè)計(jì)-先進(jìn)先出頁(yè)面置換算法_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-先進(jìn)先出頁(yè)面置換算法_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-先進(jìn)先出頁(yè)面置換算法_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-先進(jìn)先出頁(yè)面置換算法_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)-先進(jìn)先出頁(yè)面置換算法_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

沈陽(yáng)工程學(xué)院操作系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)題目:先進(jìn)先出頁(yè)面置換算法系別計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)生姓名學(xué)號(hào)指導(dǎo)教師曲樂(lè)聲、崔妍職稱講師起止日期:2016年6月6日起——至2016年6月10日止

沈陽(yáng)工程學(xué)院操作系統(tǒng)課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:請(qǐng)求調(diào)頁(yè)存儲(chǔ)管理方式的模擬1系別計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)生姓名學(xué)號(hào)指導(dǎo)教師曲樂(lè)聲職稱講師課程設(shè)計(jì)進(jìn)行地點(diǎn):信息學(xué)院實(shí)驗(yàn)室任務(wù)下達(dá)時(shí)間:2016年6月3日起止日期:2016年6月6日起——至2016年6月10日止系部主任張欣2016年6月2日批準(zhǔn)沈陽(yáng)工程學(xué)院信息學(xué)院操作系統(tǒng)課程設(shè)計(jì)目錄一、設(shè)計(jì)目的操作系統(tǒng)課程設(shè)計(jì)是在完成操作系統(tǒng)理論課程學(xué)習(xí)之后進(jìn)行的實(shí)踐性教學(xué)。通過(guò)課程設(shè)計(jì),綜合運(yùn)用操作系統(tǒng)課程的理論,結(jié)合實(shí)際,加深對(duì)操作系統(tǒng)知識(shí)全面、深入地理解,進(jìn)一步掌握操作系統(tǒng)的基本概念、原理和實(shí)現(xiàn)方法,能夠模擬操作系統(tǒng)對(duì)計(jì)算機(jī)系統(tǒng)的管理和控制功能,培養(yǎng)學(xué)生分析和解決實(shí)際問(wèn)題的能力,并使所學(xué)知識(shí)得到進(jìn)一步鞏固、深化和擴(kuò)展。該頁(yè)面置換先進(jìn)先出算法的設(shè)計(jì)的主要目的是,通過(guò)對(duì)頁(yè)面、頁(yè)表、地址轉(zhuǎn)換和頁(yè)面置換過(guò)程的模擬,加深對(duì)請(qǐng)求調(diào)頁(yè)系統(tǒng)的原理和實(shí)現(xiàn)過(guò)程的理解。二、設(shè)計(jì)的主要內(nèi)容及要求1)假設(shè)每個(gè)頁(yè)面中可存放10條指令,分配給作業(yè)的內(nèi)存塊數(shù)為4。2)用c語(yǔ)言模擬一個(gè)作業(yè)的執(zhí)行過(guò)程,該作業(yè)共有320條指令,即它的地址空間為32頁(yè),目前它的所有頁(yè)都還未調(diào)入內(nèi)存。在模擬過(guò)程中,如果所訪問(wèn)的指令已在內(nèi)存,則顯示其物理地址,并轉(zhuǎn)下一條指令。如果所訪問(wèn)的指令還未裝入內(nèi)存,則發(fā)生缺頁(yè),此時(shí)需記錄缺頁(yè)的次數(shù),并將相應(yīng)頁(yè)調(diào)入內(nèi)存。如果4個(gè)內(nèi)存塊均已裝入該作業(yè),則需進(jìn)行頁(yè)面置換,最后顯示其物理地址,并轉(zhuǎn)下一條指令。在所有320指令執(zhí)行完畢后,請(qǐng)計(jì)算并顯示作業(yè)運(yùn)行過(guò)程中發(fā)生的缺頁(yè)率。3)置換算法:采用先進(jìn)先出(FIFO)置換算法。三、對(duì)設(shè)計(jì)說(shuō)明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1.課程設(shè)計(jì)說(shuō)明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。2.學(xué)生應(yīng)撰寫的內(nèi)容為:目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說(shuō)明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。3.說(shuō)明書(論文)手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書寫;打印時(shí)按《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》的要求進(jìn)行打印。4.課程設(shè)計(jì)說(shuō)明書(論文)裝訂順序?yàn)椋悍饷?、任?wù)書、成績(jī)?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。四、設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求1.完成“任務(wù)書”中指定的操作功能,運(yùn)行穩(wěn)定。2.課程設(shè)計(jì)說(shuō)明書。五、時(shí)間進(jìn)度安排序號(hào)主要內(nèi)容學(xué)時(shí)備注1進(jìn)行設(shè)計(jì)準(zhǔn)備,閱讀資料,分析設(shè)計(jì)任務(wù)書,明確設(shè)計(jì)要求、內(nèi)容和步驟0.5天2繪制程序流程圖,編寫相應(yīng)的程序代碼2天3上機(jī)調(diào)試1.5天4整理實(shí)驗(yàn)數(shù)據(jù),撰寫課程設(shè)計(jì)報(bào)告0.5天5成績(jī)?cè)u(píng)定0.5天合計(jì)5天六、主要參考文獻(xiàn)1.《操作系統(tǒng)基礎(chǔ)》,清華大學(xué)出版社,屠立德、屠祁編著。2.《計(jì)算機(jī)操作系統(tǒng)》,西安電子科技大學(xué)出版社,湯子瀛等編。3.《計(jì)算機(jī)操作系統(tǒng)教程》,清華大學(xué)出版社,張學(xué)堯編。4.《計(jì)算機(jī)操作系統(tǒng)》,華中理工大學(xué)出版社,龐麗萍等編。5.《操作系統(tǒng)教程》,高等教育出版社,孫鐘秀主編。6.《Linux操作系統(tǒng)實(shí)驗(yàn)教程》,高等教育出版社,費(fèi)翔林主編。7.《操作系統(tǒng)原理與Linux》,人民郵電出版社,馬季蘭,馮秀芳等。8.《操作系統(tǒng)習(xí)題與解析》,清華大學(xué)出版社,曾平,李春葆。沈陽(yáng)工程學(xué)院操作系統(tǒng)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):學(xué)生姓名:指導(dǎo)教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以12)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年月日答辯小組意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分報(bào)告內(nèi)容思路清晰,語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確;分析歸納合理;結(jié)論嚴(yán)謹(jǐn);設(shè)計(jì)具有應(yīng)用價(jià)值。0.25432答辯回答問(wèn)題有理論根據(jù),基本概念清楚。主要問(wèn)題回答準(zhǔn)確、深入。0.55432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.35432答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)評(píng)閱教師簽名:年月日課程設(shè)計(jì)總評(píng)成績(jī)分沈陽(yáng)工程學(xué)院操作系統(tǒng)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):學(xué)生姓名:指導(dǎo)教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以12)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年月日答辯小組意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分報(bào)告內(nèi)容思路清晰,語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確;分析歸納合理;結(jié)論嚴(yán)謹(jǐn);設(shè)計(jì)具有應(yīng)用價(jià)值。0.25432答辯回答問(wèn)題有理論根據(jù),基本概念清楚。主要問(wèn)題回答準(zhǔn)確、深入。0.55432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.35432答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)評(píng)閱教師簽名:年月日課程設(shè)計(jì)總評(píng)成績(jī)分目錄TOC\o"1-3"\h\u23532第一章緒論 X隊(duì)列FIFOFIFO離開接口的報(bào)文離開接口的報(bào)文需由此接口發(fā)送的報(bào)文說(shuō)明:說(shuō)明:緊急報(bào)文緊急報(bào)文次緊急報(bào)文次緊急報(bào)文非緊急報(bào)文非緊急報(bào)文圖4.1.1隊(duì)列4.2系統(tǒng)包含的函數(shù)typedefstructBLOCK//聲明一種新類型——物理塊類型{intpagenum;//頁(yè)號(hào)intaccessed;//訪問(wèn)字段,其值表示多久未被訪問(wèn)}BLOCK;intcount;//程序計(jì)數(shù)器,用來(lái)記錄指令的序號(hào)intn;//缺頁(yè)計(jì)數(shù)器,用來(lái)記錄缺頁(yè)的次數(shù)staticinttemp[320];//用來(lái)存儲(chǔ)320條隨機(jī)數(shù)BLOCKblock[size];//定義一大小為4的物理塊數(shù)組voidinit();//程序初始化函數(shù)intfindExist(intcurpage);//查找物理塊中是否有該頁(yè)面intfindSpace();//查找是否有空閑物理塊intfindReplace();//查找應(yīng)予置換的頁(yè)面voiddisplay();//顯示voidRandom();//產(chǎn)生320條隨機(jī)數(shù),顯示并存儲(chǔ)到temp[320]voidpagestring();//顯示調(diào)用的頁(yè)面隊(duì)列voidFIFO();//FIFO算法4.3函數(shù)間的關(guān)系該程序中函數(shù)間的關(guān)系是由main函數(shù)作為入口函數(shù),根據(jù)不同的選擇調(diào)用不同的函數(shù),還有函數(shù)間的調(diào)用。4.4系統(tǒng)功能模塊圖頁(yè)面置換先進(jìn)先出(FIFO)算法頁(yè)面置換先進(jìn)先出(FIFO)算法結(jié)束缺頁(yè)中斷率缺頁(yè)中斷次數(shù)判斷指令存在并顯示其物理塊地址產(chǎn)生320個(gè)隨機(jī)數(shù)與調(diào)用頁(yè)面隊(duì)列結(jié)束缺頁(yè)中斷率缺頁(yè)中斷次數(shù)判斷指令存在并顯示其物理塊地址產(chǎn)生320個(gè)隨機(jī)數(shù)與調(diào)用頁(yè)面隊(duì)列輸入指令數(shù)圖4.4.1系統(tǒng)功能模塊圖沈陽(yáng)工程學(xué)院信息學(xué)院操作系統(tǒng)課程設(shè)計(jì)第五章詳細(xì)設(shè)計(jì)第五章詳細(xì)設(shè)計(jì)5.1系統(tǒng)的詳細(xì)定義和介紹本題目的設(shè)計(jì)要達(dá)到目的:通過(guò)對(duì)頁(yè)面、頁(yè)表、地址轉(zhuǎn)換和頁(yè)面置換過(guò)程的模擬,加深對(duì)請(qǐng)求調(diào)頁(yè)系統(tǒng)的原理和實(shí)現(xiàn)過(guò)程的理解。部分代碼如下:#definesize4typedefstructBLOCK//聲明一種新類型——物理塊類型{intpagenum;//頁(yè)號(hào)intaccessed;//訪問(wèn)字段,其值表示多久未被訪問(wèn)}BLOCK;intcount;//程序計(jì)數(shù)器,用來(lái)記錄指令的序號(hào)intn;//缺頁(yè)計(jì)數(shù)器,用來(lái)記錄缺頁(yè)的次數(shù)staticinttemp[320];//用來(lái)存儲(chǔ)320條隨機(jī)數(shù)BLOCKblock[size];//定義一大小為4的物理塊數(shù)組voidinit();//程序初始化函數(shù)intfindExist(intcurpage);//查找物理塊中是否有該頁(yè)面intfindSpace();//查找是否有空閑物理塊intfindReplace();//查找應(yīng)予置換的頁(yè)面voiddisplay();//顯示voidRandom();//產(chǎn)生320條隨機(jī)數(shù),顯示并存儲(chǔ)到temp[320]voidpagestring();//顯示調(diào)用的頁(yè)面隊(duì)列voidFIFO();//FIFO算法5.2隨機(jī)數(shù)產(chǎn)生辦法關(guān)于隨機(jī)數(shù)產(chǎn)生,部分代碼如下:voidRandom(){intflag=0;cin>>count;cout<<"******按照要求產(chǎn)生的320個(gè)隨機(jī)數(shù):*******"<<endl;for(inti=0;i<320;i++){temp[i]=count;if(flag%2==0)count=++count%320;//產(chǎn)生50%的順序執(zhí)行指令(flag=0或2時(shí)順序執(zhí)行)if(flag==1)count=rand()%(count-1);//產(chǎn)生25%的均勻分布在前地址部分指令if(flag==3)count=count+1+(rand()%(320-(count+1)));//產(chǎn)生25%的均勻分布在后地址部分指令flag=++flag%4;printf("%03d",temp[i]);if((i+1)%10==0)cout<<endl;}}5.3系統(tǒng)功能模塊介紹該先進(jìn)先出(FIFO)頁(yè)面置換算法設(shè)計(jì)各模塊主要完成的功能有:存放頁(yè)面數(shù)M(M<=32)。分配給作業(yè)的內(nèi)存塊數(shù)為N(N<=4)。輸入指令數(shù)(1-320)。計(jì)算并顯示作業(yè)運(yùn)行過(guò)程中發(fā)生的缺頁(yè)率。置換算法:采用先進(jìn)先出(FIFO)置換算法。結(jié)束5.4具體模塊設(shè)計(jì)輸入任意指令數(shù)(1-320),產(chǎn)生320個(gè)隨機(jī)數(shù),,顯示其調(diào)用頁(yè)面隊(duì)列,選擇1:FIFO算法,進(jìn)行先進(jìn)先出頁(yè)面置換算法,顯示320條隨機(jī)數(shù)的指令是否存在,若存在顯示其物理塊地址之后,計(jì)算出缺頁(yè)次數(shù)與缺頁(yè)率,如圖所示:開始開始初始化頁(yè)面初始化頁(yè)面是是輸入輸入指令數(shù)1<=i<=3201<=i<=320否否重新輸入指令數(shù)1<=i<=320重新輸入指令數(shù)1<=i<=320是是隨機(jī)生成320個(gè)隨機(jī)數(shù)隨機(jī)生成320個(gè)隨機(jī)數(shù)生成對(duì)應(yīng)調(diào)用頁(yè)面列隊(duì)生成對(duì)應(yīng)調(diào)用頁(yè)面列隊(duì)圖5.4.1輸入模塊流程圖輸出是否缺頁(yè)、輸出系統(tǒng)分配的物理塊數(shù)、輸出需要進(jìn)入內(nèi)存的頁(yè)面總數(shù)、輸出缺頁(yè)中斷的次數(shù)、根據(jù)輸出的頁(yè)面總數(shù)和缺頁(yè)中斷的次數(shù)計(jì)算缺頁(yè)中斷率假如輸入內(nèi)存的頁(yè)面總數(shù)是10,系統(tǒng)分配的物理塊數(shù)是4,頁(yè)面號(hào)是7145723056則輸出結(jié)果如圖所示:開始開始輸入輸入任意系統(tǒng)指令數(shù)隨機(jī)產(chǎn)生10條指令數(shù)例如:7145723056輸出:輸出:7頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第1次缺頁(yè)1頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第2次缺頁(yè).4頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第3次缺頁(yè).5頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第4次缺頁(yè).7內(nèi)存中有這個(gè)頁(yè)面,直接訪問(wèn).27被置換出去,產(chǎn)生第5次缺頁(yè).31被置換出去,產(chǎn)生第6次缺頁(yè).04被置換出去,產(chǎn)生第7次缺頁(yè)5內(nèi)存中有這個(gè)頁(yè)面,直接訪問(wèn).65被置換出去,產(chǎn)生第8次缺頁(yè).缺頁(yè)中斷次數(shù)為8次缺頁(yè)率=缺頁(yè)次數(shù)/存入的頁(yè)面總數(shù)(%)=80%缺頁(yè)率=缺頁(yè)次數(shù)/存入的頁(yè)面總數(shù)(%)=80%結(jié)束結(jié)束圖5.4.2輸出模塊流程圖5.5程序源代碼#include<iostream.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>#definesize4typedefstructBLOCK//聲明一種新類型——物理塊類型{intpagenum;//頁(yè)號(hào)intaccessed;//訪問(wèn)字段,其值表示多久未被訪問(wèn)}BLOCK;intcount;//程序計(jì)數(shù)器,用來(lái)記錄指令的序號(hào)intn;//缺頁(yè)計(jì)數(shù)器,用來(lái)記錄缺頁(yè)的次數(shù)staticinttemp[320];//用來(lái)存儲(chǔ)320條隨機(jī)數(shù)BLOCKblock[size];//定義一大小為4的物理塊數(shù)組voidinit();//程序初始化函數(shù)intfindExist(intcurpage);//查找物理塊中是否有該頁(yè)面intfindSpace();//查找是否有空閑物理塊intfindReplace();//查找應(yīng)予置換的頁(yè)面voiddisplay();//顯示voidRandom();//產(chǎn)生320條隨機(jī)數(shù),顯示并存儲(chǔ)到temp[320]voidpagestring();//顯示調(diào)用的頁(yè)面隊(duì)列voidFIFO();//FIFO算法voidinit(){for(inti=0;i<size;i++){block[i].pagenum=-1;block[i].accessed=0;count=n=0;}}intfindExist(intcurpage)//查找物理塊中是否有該頁(yè)面{for(inti=0;i<size;i++){if(block[i].pagenum==curpage)returni;//檢測(cè)到內(nèi)存中有該頁(yè)面,返回block中的位置}return-1;}intfindSpace()//查找是否有空閑物理塊{for(inti=0;i<size;i++){if(block[i].pagenum==-1)returni;//找到空閑的block,返回block中的位置}return-1;}intfindReplace()//查找應(yīng)予置換的頁(yè)面{intpos=0;for(inti=0;i<size;i++){if(block[i].accessed>block[pos].accessed)pos=i;//找到應(yīng)予置換頁(yè)面,返回BLOCK中位置}returnpos;}voiddisplay(){for(inti=0;i<size;i++){if(block[i].pagenum!=-1)//物理塊不空{(diào)printf("%02d",block[i].pagenum);}}cout<<endl;}voidRandom(){intflag=0;cin>>count;cout<<"******按照要求產(chǎn)生的320個(gè)隨機(jī)數(shù):*******"<<endl;for(inti=0;i<320;i++){temp[i]=count;if(flag%2==0)count=++count%320;//產(chǎn)生50%的順序執(zhí)行指令(flag=0或2時(shí)順序執(zhí)行)if(flag==1)count=rand()%(count-1);//產(chǎn)生25%的均勻分布在前地址部分指令if(flag==3)count=count+1+(rand()%(320-(count+1)));//產(chǎn)生25%的均勻分布在后地址部分指令flag=++flag%4;printf("%03d",temp[i]);if((i+1)%10==0)cout<<endl;}}voidpagestring()//顯示調(diào)用的頁(yè)面隊(duì)列{for(inti=0;i<320;i++){printf("%02d",temp[i]/10);if((i+1)%10==0)cout<<endl;}}//先進(jìn)先出算法voidFIFO(){intexist,space,position;intcurpage;for(inti=0;i<320;i++){if(i%100==0)getch();//getch直接從鍵盤獲取鍵值count=temp[i];curpage=count/10;exist=findExist(curpage);//查找物理塊中是否有該頁(yè)面if(exist==-1){space=findSpace();//查找是否有空閑物理塊if(space!=-1)//有空閑物理塊{block[space].pagenum=curpage;display();n=n+1;}else//無(wú)空閑物理塊,則尋找置換頁(yè)面{position=findReplace();//查找應(yīng)予置換的頁(yè)面block[position].pagenum=curpage;display();n++;block[position].accessed--;//置換頁(yè)面所在的物理塊中訪問(wèn)標(biāo)記設(shè)為-1}}else//若存在該頁(yè){for(inti=0;i<size;i++){if(block[i].pagenum!=-1)//物理塊不空printf("%02d",block[i].pagenum);}cout<<"指令已經(jīng)存在!其物理塊地址為:"<<&block[exist]<<endl;}for(intj=0;j<size;j++)block[j].accessed++;}cout<<"缺頁(yè)次數(shù):"<<n<<endl;cout<<"缺頁(yè)率:"<<(n/320.0)*100<<"%"<<endl;}voidmain(){intselect;cout<<"請(qǐng)輸入第一條指令號(hào)(1~320):";Random();cout<<"*****對(duì)應(yīng)的調(diào)用頁(yè)面隊(duì)列*******"<<endl;pagestring();do{cout<<"****************************************"<<endl;cout<<"*1:FIFO2:退出*"<<endl;cout<<"****************************************"<<endl;cout<<"請(qǐng)選擇:";cin>>select;cout<<"****************************************"<<endl;init();switch(select){case1:cout<<"先進(jìn)先出置換算法FIFO:"<<endl;cout<<"*********************"<<endl;FIFO();break;default:;}}while(select!=2);}沈陽(yáng)工程學(xué)院信息學(xué)院操作系統(tǒng)課程設(shè)計(jì)第六章調(diào)試分析調(diào)試分析6.1測(cè)試數(shù)據(jù)我們可以先給出一組符合要求的數(shù)據(jù)進(jìn)行測(cè)試,因?yàn)榇藢?shí)驗(yàn)中為產(chǎn)生320個(gè)隨機(jī)數(shù),所以先給一個(gè)例子。如下例:輸入頁(yè)面號(hào):7145723056。輸出結(jié)果為:7頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第1次缺頁(yè)1頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第2次缺頁(yè).4頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第3次缺頁(yè).5頁(yè)面進(jìn)入內(nèi)存,產(chǎn)生第4次缺頁(yè).7內(nèi)存中有這個(gè)頁(yè)面,直接訪問(wèn).27被置換出去,產(chǎn)生第5次缺頁(yè).31被置換出去,產(chǎn)生第6次缺頁(yè).04被置換出去,產(chǎn)生第7次缺頁(yè).5內(nèi)存中有這個(gè)頁(yè)面,直接訪問(wèn).65被置換出去,產(chǎn)生第8次缺頁(yè).缺頁(yè)中斷次數(shù)為8次;缺頁(yè)中斷率為:80%6.2程序截圖6.2.1初始頁(yè)面6.2.2隨機(jī)產(chǎn)生320條隨機(jī)數(shù)6.2.3對(duì)應(yīng)的調(diào)用頁(yè)面隊(duì)列6.2.4進(jìn)行先進(jìn)先出置換算法6.2.5進(jìn)行先進(jìn)先出置換算法6.2.6進(jìn)行先進(jìn)先出置換算法6.2.7計(jì)算缺頁(yè)次數(shù)及缺頁(yè)率6.3思考題(1)如果增加分配給作業(yè)的內(nèi)存塊數(shù),則將會(huì)對(duì)作業(yè)運(yùn)行過(guò)程中的缺頁(yè)率產(chǎn)生什么影響?答:增加作業(yè)的內(nèi)存塊數(shù),可以降低缺頁(yè)率,對(duì)于不同的算法,增加物理塊數(shù)都能降低缺頁(yè)率,只是效果有所不同。在進(jìn)程運(yùn)行過(guò)程中,若其所要訪問(wèn)的頁(yè)面不在內(nèi)存需把它們調(diào)入內(nèi)存,但內(nèi)存已無(wú)空閑空間時(shí),為了保證該進(jìn)程能正常運(yùn)行,系統(tǒng)必須從內(nèi)存中調(diào)出一頁(yè)程序或數(shù)據(jù),送磁盤的對(duì)換區(qū)中。但應(yīng)將哪個(gè)頁(yè)面調(diào)出,所以需要根據(jù)一定的算法來(lái)確定。在這一過(guò)程中,選擇換出頁(yè)面的算法稱為頁(yè)面置換算法。一個(gè)好的頁(yè)面置換算法,應(yīng)具有較低的頁(yè)面更換頻率。頁(yè)面置換算法的好壞,將直接影響到系統(tǒng)的性能。(2)為什么一般情況下,LRU具有比FIFO更好的性能?答:FIFO置換算法設(shè)計(jì)簡(jiǎn)單,容易理解。但它的效率不是總能達(dá)到令人滿意的效果。這種算法只有在順序訪問(wèn)地址空間時(shí)才能達(dá)到理想效果,但根據(jù)程序的局部性原理,那些常被訪問(wèn)的頁(yè)面,往往要在主存中停留得最久,F(xiàn)IFO算法卻將會(huì)將其換出頁(yè)面,留下的只是一些新調(diào)入的指令,這將導(dǎo)致內(nèi)存頻繁換頁(yè)。而LRU則選擇在最近一段時(shí)間里最久沒(méi)有使用過(guò)的頁(yè)面予以置換,LRU算法是與每個(gè)頁(yè)面最后使用的時(shí)間有關(guān)的。當(dāng)必須置換一個(gè)頁(yè)面時(shí),LRU算法選擇過(guò)去一段時(shí)間里最久未被使用的頁(yè)面。這種算法以“最近的過(guò)去”作為“最近的將來(lái)”的近似,較好地利用了程序的局部性原理。一般情況下,能取得較好的效果,是經(jīng)常采用的頁(yè)面置換算法。沈陽(yáng)工程學(xué)院信息學(xué)院操作系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)總結(jié)設(shè)計(jì)總結(jié)這次的課程設(shè)計(jì)收獲頗多,首先加深了地VC++語(yǔ)言的進(jìn)本框架的了解,其次通過(guò)實(shí)踐先進(jìn)先出頁(yè)面置換算法,使自己對(duì)課本上的知識(shí)有了更深層次的認(rèn)識(shí)。一個(gè)星期的課程設(shè)計(jì)很快就過(guò)去了,在一周里讓我們對(duì)操作系統(tǒng)這門課程有了更深一步的了解。要想學(xué)好它必須重在實(shí)踐,只有自己親身體驗(yàn)過(guò)才能了解到它里面的含義。要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)它。通過(guò)課程設(shè)計(jì)也使我們認(rèn)識(shí)到了自身的不足,我想這也是學(xué)院為我們按排課設(shè)的目的之一。這次課程設(shè)計(jì)也讓我想到之前C++語(yǔ)言學(xué)習(xí)的不足,至今仍感慨頗多。本次課設(shè)遇到的問(wèn)題不在少數(shù),起初是C++語(yǔ)言基礎(chǔ)知識(shí)不牢固,再有操作時(shí)有很多很生疏的東西,以及對(duì)的先進(jìn)先出頁(yè)面置換算法錯(cuò)誤理解。然而,在學(xué)習(xí)課本知識(shí)時(shí),感覺什么東西都很簡(jiǎn)單,但真正操作起來(lái)確實(shí)很難,語(yǔ)言中經(jīng)常出現(xiàn)很多的語(yǔ)法錯(cuò)誤,通過(guò)這次的課程設(shè)計(jì)使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。通過(guò)課設(shè)的學(xué)習(xí),我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)操作系統(tǒng),還有其它的課程,以及其它的計(jì)算機(jī)方面的知識(shí),所以在以后的學(xué)習(xí)過(guò)程中,我會(huì)更加重視實(shí)踐操作,使自己更好地學(xué)好計(jì)算機(jī)。在整整一星期的日子,從選題到定稿,從理論到實(shí)踐,遇到的問(wèn)題數(shù)不勝數(shù)。但可以從中學(xué)到很多很多東西,不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),同時(shí)也對(duì)這門課程得考試也有很大的幫助。除此之外,我們還學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我再次懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合,從理論中得出結(jié)論,從實(shí)踐中得到驗(yàn)證。才能真正提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。經(jīng)過(guò)這次的課程設(shè)計(jì),我才清醒的知道原來(lái)我們理論課上學(xué)的知識(shí)只是一些皮毛,到了真正應(yīng)用的時(shí)候才發(fā)現(xiàn)還有很多知識(shí)需要我們充分利用圖書館的相關(guān)書籍和網(wǎng)絡(luò)資源。而這次的課程設(shè)計(jì)給了我們一次機(jī)會(huì),一次把學(xué)習(xí)到的知識(shí)付諸實(shí)踐的機(jī)會(huì)。我們要學(xué)的是知識(shí),是解決問(wèn)題的方法和思想,要端正學(xué)習(xí)態(tài)度,一時(shí)的成敗不足以論英雄,每一次的突破都是一種收獲。就是在這樣的過(guò)程中我們才能不斷

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論