




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-5"\h\z第一章課程設(shè)計(jì)的目的與要求 1\o"CurrentDocument"1.1課程設(shè)計(jì)的目的 1\o"CurrentDocument"1.2課程設(shè)計(jì)的要求 1\o"CurrentDocument"第二章課程設(shè)計(jì)的任務(wù)內(nèi)容 2\o"CurrentDocument"2.1課程設(shè)計(jì)的任務(wù) 2\o"CurrentDocument"2.2課程設(shè)計(jì)的內(nèi)容 2\o"CurrentDocument"2.3課程設(shè)計(jì)的原理 2\o"CurrentDocument"第三章詳細(xì)設(shè)計(jì)說(shuō)明 3\o"CurrentDocument"3.1模塊描述 3\o"CurrentDocument"3.2性能 3\o"CurrentDocument"3.3輸入項(xiàng) 4\o"CurrentDocument"3.4輸出項(xiàng) 4\o"CurrentDocument"3.5算法 5\o"CurrentDocument"3.6流程邏輯 6\o"CurrentDocument"3.7接口 9\o"CurrentDocument"3.8限制條件 9\o"CurrentDocument"第四章軟件使用說(shuō)明 10\o"CurrentDocument"第五章課程設(shè)計(jì)心得與體會(huì) 13\o"CurrentDocument"附錄1:參考文獻(xiàn) 14\o"CurrentDocument"附錄2:程序清單 15可視化仿真磁盤調(diào)度程序第一章課程設(shè)計(jì)的目的與要求1.1課程設(shè)計(jì)的目的課程設(shè)計(jì)是課程中重要的實(shí)踐教學(xué)環(huán)節(jié)。其主要目的一方面使學(xué)生更透徹地理解操作系統(tǒng)的基本概念和原理,使之由抽象到具體;另一方面通過(guò)課程設(shè)計(jì)加強(qiáng)學(xué)生的實(shí)驗(yàn)手段與實(shí)踐技能,培養(yǎng)學(xué)生獨(dú)立分析問(wèn)題、解決問(wèn)題、應(yīng)用知識(shí)的能力和創(chuàng)新精神。與實(shí)驗(yàn)教學(xué)相比,課程設(shè)計(jì)獨(dú)立設(shè)課,具有更多的學(xué)時(shí),給學(xué)生更多自行設(shè)計(jì)、自主實(shí)驗(yàn)的機(jī)會(huì),充分放于讓學(xué)生真正培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力,全面提高學(xué)生的綜合素質(zhì)。1.2課程設(shè)計(jì)的要求課程設(shè)計(jì)的要求是在深入理解操作系統(tǒng)基本原理的基礎(chǔ)上,先確定設(shè)計(jì)方案,設(shè)計(jì)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu),設(shè)計(jì)每個(gè)模塊的處理流程。要求設(shè)計(jì)合理,編程序?qū)崿F(xiàn)系統(tǒng),要求實(shí)現(xiàn)可視化的運(yùn)行界面,界面應(yīng)清楚地反映出系統(tǒng)的運(yùn)行結(jié)果,確定測(cè)試方案,選擇測(cè)試用例,對(duì)系統(tǒng)進(jìn)程測(cè)試,運(yùn)行系統(tǒng)并要通過(guò)驗(yàn)收,講解運(yùn)行結(jié)果,說(shuō)明系統(tǒng)的特色和創(chuàng)新之處,并提交課程設(shè)計(jì)報(bào)告。第二章課程設(shè)計(jì)的任務(wù)內(nèi)容2.1課程設(shè)計(jì)的任務(wù)磁盤調(diào)度課程設(shè)計(jì)的任務(wù)是理解磁盤調(diào)度相關(guān)理論和掌握多種磁盤調(diào)度算法。比如先來(lái)先服務(wù)算法、最短尋道時(shí)間優(yōu)先算法、掃描算法和循環(huán)掃描算法等算法,了解各種算法對(duì)磁盤掃描的優(yōu)化等級(jí),并且比較各種算法的優(yōu)缺點(diǎn),從而掃描不同的磁盤序列時(shí)采用相應(yīng)的算法,使得磁道掃描時(shí)間盡量最短。2.2課程設(shè)計(jì)的內(nèi)容為了完成課程設(shè)計(jì)的任務(wù),所以在課程設(shè)計(jì)的內(nèi)容上要根據(jù)任務(wù)來(lái)設(shè)置,因此在課程設(shè)計(jì)的內(nèi)容上對(duì)于磁盤調(diào)用的相應(yīng)算法的優(yōu)劣點(diǎn),可以設(shè)置幾組相同的數(shù)據(jù)對(duì)各種算法進(jìn)行比較,得出各種算法的平均尋道時(shí)間,然后對(duì)數(shù)據(jù)進(jìn)行比較從中得出各種算法的優(yōu)劣點(diǎn)。2.3課程設(shè)計(jì)的原理磁盤可供多個(gè)進(jìn)程共享,當(dāng)有多個(gè)進(jìn)程要求訪問(wèn)磁盤時(shí),應(yīng)采用一種調(diào)度算法,以使進(jìn)程對(duì)磁盤的平均訪問(wèn)時(shí)間最小,由于在訪問(wèn)磁盤的時(shí)間中,主要是尋道時(shí)間,因此磁盤調(diào)度的目標(biāo)就是使磁盤的平均尋道時(shí)間最短。設(shè)備的動(dòng)態(tài)分配算法與進(jìn)程調(diào)度相似,也是基于一定的分配策略的。常用的分配策略有先請(qǐng)求先分配、優(yōu)先級(jí)高者先分配等策略。在多道程序系統(tǒng)中,低效率通常是由于磁盤類旋轉(zhuǎn)設(shè)備使用不當(dāng)造成的。操作系統(tǒng)中,對(duì)磁盤的訪問(wèn)要求來(lái)自多方面,常常需要排隊(duì)。這時(shí),對(duì)眾多的訪問(wèn)要求按一定的次序響應(yīng),會(huì)直接影響磁盤的工作效率,進(jìn)而影響系統(tǒng)的性能。訪問(wèn)磁盤的時(shí)間因子由3部分構(gòu)成,它們是查找(查找磁道)時(shí)間、等待(旋轉(zhuǎn)等待扇區(qū))時(shí)間和數(shù)據(jù)傳輸時(shí)間,其中查找時(shí)間是決定因素。因此,磁盤調(diào)度算法先考慮優(yōu)化查找策略,需要時(shí)再優(yōu)化旋轉(zhuǎn)等待策略。第三章詳細(xì)設(shè)計(jì)說(shuō)明3.1模塊描述模塊描述要求給出對(duì)該模塊的簡(jiǎn)要描述,說(shuō)明該模塊應(yīng)具有的功能,并且要求說(shuō)明本模塊的特點(diǎn),比如模塊是否有返回值等。圖3-1所示為功能模塊圖:圖3-1功能模塊圖系統(tǒng)主要模塊分為四大模塊,分別是先來(lái)先服務(wù)算法模塊、最短尋道時(shí)間優(yōu)先算法模塊、掃描算法模塊和循環(huán)掃描算法模塊。當(dāng)進(jìn)入系統(tǒng)時(shí),可以按系統(tǒng)提示輸入相關(guān)數(shù)據(jù),然后可以停止操作直接退出或者是選擇相應(yīng)的算法進(jìn)行運(yùn)算,最后輸出運(yùn)算結(jié)果。本組實(shí)驗(yàn)是做的先來(lái)先服務(wù)算法和最短尋到時(shí)間優(yōu)先算法。3.2性能一個(gè)可靠安全的系統(tǒng)不僅要在理論上可以運(yùn)行起來(lái),同時(shí)在系統(tǒng)出錯(cuò)處理、系統(tǒng)漏洞、系統(tǒng)安全、系統(tǒng)精確度、靈活度及時(shí)間特性等系能上要有一定的要求,這樣才可以保障用戶數(shù)據(jù)的可靠性和安全性等基本需求。對(duì)于磁盤調(diào)度系統(tǒng)的性能來(lái)講,系統(tǒng)的精確度為萬(wàn)分之一,輸出數(shù)據(jù)精確到小數(shù)點(diǎn)后四位。
3.3輸入項(xiàng)輸入項(xiàng)要求是給出對(duì)每一個(gè)輸入項(xiàng)的特性包括名稱、標(biāo)識(shí)、數(shù)據(jù)的類型格式、數(shù)據(jù)值的有效范圍、輸入的方式、數(shù)量和頻度、輸入媒體比如鍵盤或文件、輸入數(shù)據(jù)的來(lái)源和安全保密條件等。輸入項(xiàng)要求如表3.2所示:表3.2輸入項(xiàng)特征輸入項(xiàng)名稱輸入磁道的個(gè)數(shù)輸入項(xiàng)標(biāo)識(shí)數(shù)字型數(shù)據(jù)類型格式數(shù)據(jù)型數(shù)據(jù)有效范圍1-1000數(shù)據(jù)輸出方式字符型輸入媒體鍵盤數(shù)據(jù)來(lái)源輸入值數(shù)據(jù)安全保密條件無(wú)3.4輸出項(xiàng)對(duì)于輸出項(xiàng)要求給出對(duì)每一個(gè)輸出項(xiàng)的特性、包括名稱、標(biāo)識(shí)、數(shù)據(jù)的類型和格式、數(shù)據(jù)值的有效范圍、輸出的形式、數(shù)量和頻度、輸出比如顯示器或文件、對(duì)輸出圖形及符號(hào)的說(shuō)明、安全保密條件等。輸入項(xiàng)要求如表3.3所示:表3.3輸出項(xiàng)特征輸出項(xiàng)名稱平均尋道長(zhǎng)度輸出項(xiàng)標(biāo)識(shí)數(shù)字型數(shù)據(jù)類型格式最多保留四位小數(shù)數(shù)據(jù)有效范圍大于1數(shù)據(jù)輸出方式字符型輸入媒體曰壬顯示器數(shù)據(jù)安全保密條件無(wú)3.5算法先來(lái)先服務(wù)(FCFS)調(diào)度:按先來(lái)后到次序服務(wù),未作優(yōu)化。最簡(jiǎn)單的移臂調(diào)度算法是“先來(lái)先服務(wù)”調(diào)度算法,這個(gè)算法實(shí)際上不考慮訪問(wèn)者要求訪問(wèn)的物理位置,而只是考慮訪問(wèn)者提出訪問(wèn)請(qǐng)求的先后次序。例如,如果現(xiàn)在讀寫磁頭正在50號(hào)柱面上執(zhí)行輸出操作,而等待訪問(wèn)者依次要訪問(wèn)的柱面為130、199、32、159、15、148、61、99,那么,當(dāng)50號(hào)柱面上的操作結(jié)束后,移動(dòng)臂將按請(qǐng)求的先后次序先移到130號(hào)柱面,最后到達(dá)99號(hào)柱面。采用先來(lái)先服務(wù)算法決定等待訪問(wèn)者執(zhí)行輸入輸出操作的次序時(shí),移動(dòng)臂來(lái)回地移動(dòng)。先來(lái)先服務(wù)算法花費(fèi)的尋找時(shí)間較長(zhǎng),所以執(zhí)行輸入輸出操作的總時(shí)間也很長(zhǎng)。最短尋找時(shí)間優(yōu)先調(diào)度算法總是從等待訪問(wèn)者中挑選尋找時(shí)間最短的那個(gè)請(qǐng)求先執(zhí)行的,而不管訪問(wèn)者到來(lái)的先后次序。現(xiàn)在仍利用同一個(gè)例子來(lái)討論,現(xiàn)在當(dāng)50號(hào)柱面的操作結(jié)束后,應(yīng)該先處理61號(hào)柱面的請(qǐng)求,然后到達(dá)32號(hào)柱面執(zhí)行操作,隨后處理15號(hào)柱面請(qǐng)求,后繼操作的次序應(yīng)該是99、130、148、159、199。采用最短尋找時(shí)間優(yōu)先算法決定等待訪問(wèn)者執(zhí)行操作的次序時(shí),讀寫磁頭總共移動(dòng)了200多個(gè)柱面的距離,與先來(lái)先服務(wù)算法比較,大幅度地減少了尋找時(shí)間,因而縮短了為各訪問(wèn)者請(qǐng)求服務(wù)的平均時(shí)間,也就提高了系統(tǒng)效率。但最短查找時(shí)間優(yōu)先(SSTF)調(diào)度,F(xiàn)CFS會(huì)引起讀寫頭在盤面上的大范圍移動(dòng),SSTF查找距離磁頭最短(也就是查找時(shí)間最短)的請(qǐng)求作為下一次服務(wù)的對(duì)象。SSTF查找模式有高度局部化的傾向,會(huì)推遲一些請(qǐng)求的服務(wù),甚至引起無(wú)限拖延。SCAN算法又稱電梯調(diào)度算法°SCAN算法是磁頭前進(jìn)方向上的最短查找時(shí)間優(yōu)先算法,它排除了磁頭在盤面局部位置上的往復(fù)移動(dòng),SCAN算法在很大程度上消除了SSTF算法的不公平性,但仍有利于對(duì)中間磁道的請(qǐng)求。“電梯調(diào)度”算法是從移動(dòng)臂當(dāng)前位置開始沿著臂的移動(dòng)方向去選擇離當(dāng)前移動(dòng)臂最近的那個(gè)柱訪問(wèn)者,如果沿臂的移動(dòng)方向無(wú)請(qǐng)求訪問(wèn)時(shí),就改變臂的移動(dòng)方向再選擇。這好比乘電梯,如果電梯已向上運(yùn)動(dòng)到4層時(shí),依次有3位乘客A、B、C在等候乘電梯。他們的要求是:A在2層等待去10層;B在5層等待去底層;C在8層等待15層。由于電梯目前運(yùn)動(dòng)方向是向上,所以電梯的形成是先把乘客C從8層帶到15層,然后電梯換成下行方向,把乘客B從5層帶到底層,電梯最后再調(diào)換方向,把乘客A從2層送到10層。但是,“電梯調(diào)度”算法在實(shí)現(xiàn)時(shí),不僅要記住讀寫磁頭的當(dāng)前位置,還必須記住移動(dòng)臂的當(dāng)前前進(jìn)方向。為了減少SCAN算法造成的某些進(jìn)程的請(qǐng)求被嚴(yán)重推遲,CSCAN算法規(guī)定磁頭單向移動(dòng)。例如,只自里向外移動(dòng),當(dāng)磁頭移到最外的被訪問(wèn)磁道時(shí),磁頭立即返回到最里的欲訪磁道,即將最小磁道號(hào)緊接著最大磁道號(hào)構(gòu)成循環(huán),進(jìn)行掃描。算法要求是詳細(xì)說(shuō)明本模塊所選用的算法,具體的計(jì)算公式和計(jì)算步驟。訪問(wèn)磁盤的總時(shí)間由三部分構(gòu)成,它們是查找(查找磁道)時(shí)間、等待(旋轉(zhuǎn)等待扇區(qū))時(shí)間和數(shù)據(jù)傳輸時(shí)間,所以總的時(shí)間為T總時(shí)間=丁查找時(shí)間+T等待時(shí)間+T數(shù)據(jù)傳輸數(shù)據(jù)。對(duì)于求平均尋道長(zhǎng)度(L)為所有磁道所需移動(dòng)距離之和除以總的所需訪問(wèn)的磁道數(shù)(N)即公式為:L=(M1+M2+……+Mi+……+MN)/N其中Mi為所需訪問(wèn)的磁道號(hào)所需移動(dòng)的磁道數(shù)。啟動(dòng)磁盤執(zhí)行輸入輸出操作時(shí),要把移動(dòng)臂移動(dòng)到指定的柱面,再等待指定扇區(qū)的旋轉(zhuǎn)到磁頭位置下,然后讓指定的磁頭進(jìn)行讀寫,完成信息傳送。因此,執(zhí)行一次輸入輸出所花的時(shí)間有:尋找時(shí)間——磁頭在移動(dòng)臂帶動(dòng)下移動(dòng)到指定柱面所花的時(shí)間。延遲時(shí)間——指定扇區(qū)旋轉(zhuǎn)到磁頭下所需的時(shí)間。傳送時(shí)間——由磁頭進(jìn)程讀寫完成信息傳送的時(shí)間。3.6流程邏輯要求用圖表比如流程圖并輔以必要的說(shuō)明來(lái)表示本模塊的邏輯流程。如圖3-7所示為先來(lái)先服務(wù)算法流程圖:對(duì)于先來(lái)先服務(wù)算法,系統(tǒng)開始后,先進(jìn)行系統(tǒng)的初始化,然后根據(jù)系統(tǒng)提示輸入需要訪問(wèn)的磁盤的序列,判斷序列是否為空的話,序列空的話退出系統(tǒng),不是的話則輸入當(dāng)前磁道號(hào),求出平均尋道時(shí)間,完成運(yùn)算后,可以選擇退出系統(tǒng)或是再次進(jìn)行運(yùn)算。圖3-7先來(lái)先服務(wù)流程圖如圖3-8所示為最短尋道時(shí)間優(yōu)先算法流程圖:圖3-8最短尋道時(shí)間優(yōu)先算法流程圖3.7接口在系統(tǒng)的最短尋道時(shí)間優(yōu)先算法模塊中,有一個(gè)子模塊為冒泡算法模塊。其中冒泡算法模塊的參數(shù)賦值如下:模塊全局變量為:intdecide(charstr[])//判斷輸入數(shù)據(jù)是否有效{inti=0;while(str[i]!='\0')其中初始值為i=03.8限制條件說(shuō)明本程序運(yùn)行中所受到的限制條件。由于計(jì)算機(jī)是有限精度有限容量的,所以對(duì)于磁道數(shù)的最大值,系統(tǒng)設(shè)置為1000。對(duì)于輸出的數(shù)據(jù)精確度,系統(tǒng)精確到小數(shù)點(diǎn)后四位。第四章軟件使用說(shuō)明打開軟件,如圖4-1所示為系統(tǒng)界面圖。請(qǐng)輸.A,i必亙序列[&結(jié)束)1圖4-1系統(tǒng)界面圖根據(jù)提示輸入磁道序列10、22、20、2、40、6、38。系統(tǒng)顯示界面如圖4-2所示:你輸入的磁道序列為:值2220240638>000<>0000<>0000<>00<>0000<>0000<>0000<>00<>0000<>0000<於XXXNNX系亳充 NJOOCXNMMMMMM先來(lái)先服務(wù)**最短尋道時(shí)間優(yōu)先?*3.退出HMMMMMJOCJOCJCJOCJOCJCJOCNNJOCKNJOCJOCNJOCJOCJCJOCNNJOCKNJOCNKNJOCJOCM:請(qǐng)?jiān)柖U翕夫: 圖4-2輸入磁道數(shù)后系統(tǒng)界面根據(jù)選項(xiàng)可以選擇先來(lái)先服務(wù)算法或者是最短尋道時(shí)間優(yōu)先算法,輸入“1”選擇的是先來(lái)先服務(wù)算法,選擇“2”選擇的是最短尋道時(shí)間優(yōu)先算法。如圖4-3所示的為選擇先來(lái)先服務(wù)算法,輸入當(dāng)前磁道數(shù)為“20”。系統(tǒng)顯示結(jié)果如下:讀選建鬢法f磁盤請(qǐng)求序列為:102220240638讀碗:、當(dāng)煎的覦苴號(hào)/2臨磁盤掃描序列為:F2220240638平均尋道畏度『20.8571KXIOOCJC系 MMMMMMuuuuu*u**1-先來(lái)先服務(wù)**二r最短尋道時(shí)間優(yōu)先“**3.退出**R-TR-T R-TR-TR-TXNXXNXXXXXXNXXNJCXNXXXXXXNXXNJCXNXXXXXXNXXNJCXXXXXNXXNXXXXXXNXXNJCXNXXXXXXNXXNJCXNXXXXXXNXXNJCXXXX請(qǐng)選擇算法: 圖4-3先來(lái)先服務(wù)界面根據(jù)結(jié)果可以知道磁盤掃描的順序?yàn)?0、22、20、2、40、6、38。平均尋道時(shí)間為20.8571。當(dāng)選擇最短尋道時(shí)間有限算法,并且輸入當(dāng)前磁道數(shù)為20時(shí),結(jié)果顯示如圖4-4所示:岸膏冒宙凝序列為:261928223840喻入當(dāng)前的感道號(hào):20盤掃描序列為:20221B62384日怦均尋道親度:S.57143:MJCNX知JC親亳無(wú)MMMMMMKMMMMMMKMMMMMMKMMKMMMMMMKMMMMMMKMMMMMMKMHMMMMK**1.先來(lái)先服務(wù)****2-最短尋■道時(shí)間優(yōu)先****3-退出**MMMMMM請(qǐng)選擇算法:圖4-4最短尋道時(shí)間優(yōu)先算法界面
從結(jié)果我們可以知道磁盤掃描的順序?yàn)?0、22、10、6、2、38、40。平均尋道時(shí)間為8.57143。和算法1相比較,算法2所用的時(shí)間要少。若是選擇“3”,則是退出系統(tǒng)。圖4-5退出算法界面第五章課程設(shè)計(jì)心得與體會(huì)首先課程設(shè)計(jì)是培養(yǎng)我們學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,計(jì)算機(jī)已經(jīng)成為當(dāng)今生活必不可少的事務(wù),在生活中可以說(shuō)得是無(wú)處不在。計(jì)算機(jī)的編程語(yǔ)言雖然很多,然而自己掌握一種編程語(yǔ)言不僅對(duì)于以后的工作有了幫助而且讓我們學(xué)會(huì)了許多新的東西,因此對(duì)于二十一世紀(jì)的大學(xué)生來(lái)說(shuō)掌握計(jì)算機(jī)編程技術(shù)是十分重要的?;仡櫰鸫舜未疟P調(diào)度的課程設(shè)計(jì),我感慨頗多,從選擇題目到查找資料,使我進(jìn)一步了解磁盤的各種算法,雖然做的時(shí)間不是很長(zhǎng),但是可以學(xué)到許多東西,不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),也知道曾經(jīng)學(xué)習(xí)的不足,并加以改正。而且我也學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)我懂得了理論與實(shí)際相結(jié)合的重要性.在學(xué)習(xí)理論中,自己并沒(méi)有學(xué)好書本上的知識(shí),而平時(shí)也不注意,但當(dāng)在實(shí)驗(yàn)中要用到時(shí)就感覺(jué)學(xué)的很少或者是不精通,不知道學(xué)了后又什么用,一些操作往往只知道大概而不懂得具體怎么做。通過(guò)完成實(shí)驗(yàn)讓自己可以把以前的漏洞加以學(xué)習(xí),對(duì)于學(xué)過(guò)的東西加以靈活運(yùn)用。只有理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到各種各樣的問(wèn)題,不僅是磁盤算法的問(wèn)題,也有在編程中出現(xiàn)的故障,經(jīng)過(guò)不斷的修改讓自己掌握了許多東西。通過(guò)這次課程設(shè)計(jì),把以前所學(xué)過(guò)的知識(shí)重新溫故。附錄1:參考文獻(xiàn)[1].[美]AndrewS.TanenbaumAlbertS.Woodhull著.陳渝,諶衛(wèi)軍譯,向勇審校.操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).電子工業(yè)出版社.2006.⑵.張紅光,李福才著.操作系統(tǒng)教程.高等教育出版社.2010.[3]陳龍等著.21天學(xué)通C++.人民郵電出版社.2009.附錄2:程序清單#include<stdio.h>#include<stdlib.h>#include<iostream.h>#include<math.h>#definemaxsize1000/*********************判斷輸入數(shù)據(jù)是否有效**************************/intdecide(charstr[])//判斷輸入數(shù)據(jù)是否有效inti=0;while(str[i]!='\0')if(str[i]<'0'||str[i]>'9')return0;break;i++;returni;/******************將字符串轉(zhuǎn)換成數(shù)字***********************/inttrans(charstr[],inta)//將字符串轉(zhuǎn)換成數(shù)字inti;intsum=0;for(i=0;i<a;i++)sum=sum+(int)((str[i]-'0')*pow(10,a-i-1));}returnsum;/*********************冒泡排序算法**************************/int*bubble(intcidao[],intm){inti,j;inttemp;for(i=0;i<m;i++)//使用冒泡法按從小到大順序排列for(j=i+1;j<m;j++){if(cidao[i]>cidao[j]){temp=cidao[i];cidao[i]=cidao[j];cidao[j]=temp;}}cout<<"排序后的磁盤序列為:";for(i=0;i<m;i++)//輸出排序結(jié)果{cout<<cidao[i]<<"";cout<<endl;returncidao;/*********************先來(lái)先服務(wù)調(diào)度算法**************************/voidFCFS(intcidao[],intm)//磁道號(hào)數(shù)組,個(gè)數(shù)為mintnow;//當(dāng)前磁道號(hào)intsum=0;//總尋道長(zhǎng)度intj,i;inta;charstr[100];floatave;//平均尋道長(zhǎng)度cout<<"磁盤請(qǐng)求序列為:";for(i=0;i<m;i++)//按先來(lái)先服務(wù)的策略輸出磁盤請(qǐng)求序列{cout<<cidao[i]<<"";}cout<<endl;cout<<"請(qǐng)輸入當(dāng)前的磁道號(hào):";B:cin>>str;//對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0){cout<<"輸入數(shù)據(jù)的類型錯(cuò)誤,請(qǐng)重新輸入!"<<endl;gotoB;}elsenow=trans(str,a);//輸入當(dāng)前磁道號(hào)sum+=abs(cidao[0]-now);coutvv"磁盤掃描序列為:";for(i=0;i<m;i++)〃輸出磁盤掃描序列{coutvvcidao[i]vv"";}for(i=0,j=1;jvm;i++,j++)//求平均尋道長(zhǎng)度{sum+=abs(cidao[j]-cidao[i]);ave=(float)(sum)/(float)(m);}cout<<endl;cout<<”平均尋道長(zhǎng)度:"<<ave<<endl;/**********************最短尋道時(shí)間優(yōu)先調(diào)度算法********************/voidSSTF(intcidao[],intm){intk=1;intnow,l,r;inti,j,sum=0;inta;charstr[100];floatave;cidao=bubble(cidao,m);〃調(diào)用冒泡排序算法排序cout<<"請(qǐng)輸入當(dāng)前的磁道號(hào):";C:cin>>str;//對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0){cout<<"輸入數(shù)據(jù)的類型錯(cuò)誤,請(qǐng)重新輸入!"<<endl;gotoC;}elsenow=trans(str,a);//輸入當(dāng)前磁道號(hào)if(cidao[m-1]<=now)//若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,則直接由外向內(nèi)依次給予各請(qǐng)求服務(wù)cout<<"磁盤掃描序列為:”;for(i=m-1;i>=0;i--)cout<<cidao[i]<<”";sum=now-cidao[0];}if(cidao[0]>=now)//若當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,則直接由內(nèi)向外依次給予各請(qǐng)求服務(wù){(diào)cout<<"磁盤掃描序列為:”;for(i=0;i<m;i++)cout<<cidao[i]<<"";sum=cidao[m-1]-now;}if(now>cidao[0]&&now<cidao[m-1])//若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者{cout<<"磁盤掃描序列為:”;while(cidao[k]<now)〃確定當(dāng)前磁道在已排的序列中的位置,后面的算法都用到了,可以直接復(fù)制后少量修改,節(jié)省時(shí)間。{k++;}l=k-1;r=k;while((l>=0)&&(r<m))//當(dāng)前磁道在請(qǐng)求序列范圍內(nèi){if((now-cidao[l])<=(cidao[r]-now))〃選擇與當(dāng)前磁道最近的請(qǐng)求給予服務(wù){(diào)cout<<cidao[l]<<"";sum+=now-cidao[l];now=cidao[l];l=l-1;}else{cout<<cidao[r]<<"";sum+=cidao[r]-now;now=cidao[r];r=r+1;}}if(l==-1)//磁頭移動(dòng)到序列的最小號(hào),返回外側(cè)掃描仍未掃描的磁道{for(j=r;j<m;j++){cout<<cidao[j]<<"";}sum+=cidao[m-1]-cidao[0];}else//磁頭移動(dòng)到序列的最大號(hào),返回內(nèi)側(cè)掃描仍未掃描的磁道{for(j=l;j>=0;j--){cout<<cidao[j]<<"";}sum+=cidao[m-1]-cidao[0];}}ave=(float)(sum)/(float)(m);cout<<endl;cout<<"平均尋道長(zhǎng)度:"<<ave<<endl;}voidmain(){inta;intc;//菜單項(xiàng)intcidao[maxsize];inti=0,count;charstr[100];cout<<"請(qǐng)輸入磁道序列(0結(jié)束):"<<endl;A:cin>>str;〃對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人股份轉(zhuǎn)讓協(xié)議書
- 勞務(wù)合同到期不續(xù)簽
- 信息管理系統(tǒng)建設(shè)及維護(hù)合同
- 石油鉆井服務(wù)合同
- 房屋委托租賃居間服務(wù)合同
- 大型挖掘機(jī)買賣合同
- 綜合辦公服務(wù)合同
- 雙11策劃活動(dòng)方案模板
- 公司內(nèi)部借款協(xié)議
- 連鎖餐飲企業(yè)加盟合同
- 2024年大唐集團(tuán)招聘筆試試題及答案-
- 蘭溪市排水防澇提升雨污管網(wǎng)修復(fù)改造初步設(shè)計(jì)文本
- 2024-2030年中國(guó)永磁電機(jī)市場(chǎng)現(xiàn)狀分析及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 徐州生物工程職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題及答案
- 小兒急性胃腸炎課件
- 翁愷C語(yǔ)言課件下載
- 2024-2025學(xué)年人教版八年級(jí)上冊(cè)地理期末測(cè)試卷(一)(含答案)
- DB3209T 1236-2023 西蘭花采后處理與貯運(yùn)技術(shù)規(guī)程
- 《液壓缸與設(shè)計(jì)》課件
- 山東省物流工程師職稱考試參考試題庫(kù)-上(單選題)
- 維生素D缺乏性手足搐搦癥課件
評(píng)論
0/150
提交評(píng)論