

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1 課程設(shè)計(jì)目的及要求……………………………………………………1</p><p> 2 相關(guān)知識…………………………………………………………………1</p><p> 3 題目分析…………………………………………………………………2</p>
2、;<p> 4 概要設(shè)計(jì)…………………………………………………………………2</p><p> 4.1 先來先服務(wù)(FCFS)的設(shè)計(jì)思想……………………………….2</p><p> 4.2 最短尋道時間優(yōu)先調(diào)度(SSTF)的設(shè)計(jì)思想…………………..2</p><p> 4.3 掃描算法(SCAN)的設(shè)計(jì)思想…………………………
3、………2</p><p> 4.4 循環(huán)掃描(CSCAN)的設(shè)計(jì)思想………………………………..2</p><p> 5 代碼及流程………………………………………………………………3</p><p> 5.1 流程圖……………………………………………………………...3</p><p> 5.2 源代碼………………………
4、……………………………………...8</p><p> 6 運(yùn)行結(jié)果…………………………………………………………………16</p><p> 7 設(shè)計(jì)心得…………………………………………………………………19</p><p> 參考文獻(xiàn)…………………………………………………………………………19</p><p> 1 課程設(shè)
5、計(jì)目的及要求</p><p> 設(shè)計(jì)目的:加深對操作系統(tǒng)原理的進(jìn)一步認(rèn)識,加強(qiáng)實(shí)踐動手能力和程序開發(fā)能力的培養(yǎng),提高分析問題解決問題的能力,培養(yǎng)合作精神,以鞏固和加深磁盤調(diào)度的概念。操作系統(tǒng)是一門工程性很強(qiáng)的課程,它不僅要求學(xué)生掌握操作系統(tǒng)的工作原理和理論知識,也要求學(xué)生的實(shí)際動手能力,以加深對所學(xué)習(xí)內(nèi)容的理解,使學(xué)生熟練地掌握計(jì)算機(jī)的操作方法,使用各種軟件工具,加強(qiáng)對課程內(nèi)容的理解。這次課程設(shè)計(jì),就是通過模擬
6、磁臂調(diào)度來加深對操作系統(tǒng)中磁臂調(diào)度概念的理解。使學(xué)生熟悉磁盤管理系統(tǒng)的設(shè)計(jì)方法;加深對所學(xué)各種磁盤調(diào)度算法的了解及其算法的特點(diǎn)。</p><p> 設(shè)計(jì)要求:編程序?qū)崿F(xiàn)下述磁盤調(diào)度算法,并求出每種算法的平均尋道長度;要求設(shè)計(jì)主界面可以靈活選擇某算法,且以下算法都要實(shí)現(xiàn)</p><p> 1、先來先服務(wù)算法(FCFS)</p><p> 2、最短尋道時間優(yōu)先算法
7、(SSTF)</p><p> 3、掃描算法(SCAN)</p><p> 4、循環(huán)掃描算法(CSCAN)</p><p><b> 2 相關(guān)知識</b></p><p><b> 數(shù)據(jù)結(jié)構(gòu):數(shù)組</b></p><p> now:當(dāng)前磁道號;</p>
8、<p> array[]:放置磁道號的數(shù)組;</p><p> void FCFS(int array[],int m )先來先服務(wù)算法(FCFS)</p><p> void SSTF(int array[],int m)最短尋道時間優(yōu)先算法(SSTF)</p><p> void SCAN(int array[],int m) 掃描算法(S
9、CAN)</p><p> void CSCAN(int array[],int m)循環(huán)掃描算法(CSCAN)</p><p> 磁盤調(diào)度:當(dāng)有多個進(jìn)程都請求訪問磁盤時,采用一種適當(dāng)?shù)尿?qū)動調(diào)度算法,使各進(jìn)程對磁盤的平均訪問(主要是尋道)時間最小。目前常用的磁盤調(diào)度算法有:1)閑來先服務(wù)2)最短尋道時間優(yōu)先3)掃描算法4)循環(huán)掃描算法等</p><p><
10、b> 3 題目分析</b></p><p> 選擇一個自己熟悉的計(jì)算機(jī)系統(tǒng)和程序設(shè)計(jì)語言模擬操作系統(tǒng)基本功能的設(shè)計(jì)方法及其實(shí)現(xiàn)過程 完成各分項(xiàng)功能。在算法的實(shí)現(xiàn)過程中,要求可決定變量應(yīng)是動態(tài)可變的;同時模塊應(yīng)該有一個合理的輸出結(jié)果。具體可參照實(shí)驗(yàn)的程序模擬 .各功能程序要求自行編寫程序?qū)崿F(xiàn),不得調(diào)用現(xiàn)有操作系統(tǒng)提供的模塊或功能函數(shù)。磁盤調(diào)度程序模擬。先來先服務(wù)調(diào)度算法. 最短尋道時間優(yōu)
11、先調(diào)度,循環(huán)(SCAN)調(diào)度算法。程序設(shè)計(jì)語言自選,最終以軟件(含源代碼以及執(zhí)行程序)和設(shè)計(jì)報告的形式提交課程設(shè)計(jì)結(jié)果.。磁盤調(diào)度讓有限的資源發(fā)揮更大的作用。在多道程序設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)中,各個進(jìn)程可能會不斷提出不同的對磁盤進(jìn)行讀/寫操作的請求。由于有時候這些進(jìn)程的發(fā)送請求的速度比磁盤響應(yīng)的還要快,因此我們有必要為每個磁盤設(shè)備建立一個等待隊(duì)列。</p><p><b> 4 概要設(shè)計(jì)</b>
12、</p><p> 1.先來先服務(wù)(FCFS)的設(shè)計(jì)思想</p><p> 即先來的請求先被響應(yīng)。FCFS策略看起來似乎是相當(dāng)"公平"的,但是當(dāng)請求的頻率過高的時候FCFS策略的響應(yīng)時間就會大大延長。FCFS策略為我們建立起一個隨機(jī)訪問機(jī)制的模型,但是假如用這個策略反復(fù)響應(yīng)從里到外的請求,那么將會消耗大量的時間。為了盡量降低尋道時間,看來我們需要對等待著的請求進(jìn)行適
13、當(dāng)?shù)呐判?,而不是簡單的使用FCFS策略。這個過程就叫做磁盤調(diào)度管理。有時候fcfs也被看作是最簡單的磁盤調(diào)度算法。2.最短尋道時間優(yōu)先調(diào)度(SSTF)的設(shè)計(jì)思想</p><p> 最短時間優(yōu)先算法選擇這樣的進(jìn)程。要求訪問的磁道,與當(dāng)前磁頭所在的磁道距離最近,以使每次的尋道時間最短。</p><p> 3.掃描算法(SCAN)的設(shè)計(jì)思想</p><p> 掃
14、描(SCAN)調(diào)度算法:該算法不僅考慮到欲訪問 的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動方向。例如,當(dāng)磁頭正在自里向外移動時,SCAN算法所考慮的下一個訪問對象,應(yīng)是其欲訪問的磁道,既在當(dāng)前磁道之外,又是距離最近的。這樣自里向外的訪問,直至再無更外的磁道需要訪問時,才將磁道換向自外向里移動。這時,同樣也是每次選擇這樣的進(jìn)程來調(diào)度,也就是要訪問的當(dāng)前位置內(nèi)距離最近者,這樣,磁頭又逐步地從外向里移動,直至再無更里面的磁道要訪問
15、,從而避免了出現(xiàn)“饑餓”現(xiàn)像。</p><p> 4.循環(huán)掃描(CSACN)的設(shè)計(jì)思想</p><p> 循環(huán)掃描(CSCAN)算法:當(dāng)磁頭剛從里向外移動而越過了某一磁道時,恰好又有一進(jìn)程請求訪問此磁道,這時,該里程就必須等待,為了減少這種延遲,CSCAN算法規(guī)定磁頭單向移動,而本實(shí)驗(yàn)過程中我們所設(shè)計(jì)的是磁頭從里向外移動,而從外向里移動時只須改方向而已,本實(shí)驗(yàn)未實(shí)現(xiàn)。但本實(shí)驗(yàn)已完全能演
16、示循環(huán)掃描的全過程。</p><p><b> 5 代碼及流程</b></p><p> 1.先來先服務(wù)(FCFS)</p><p> 圖 1—1 FCFS的流程圖</p><p> 2.最短尋道時間優(yōu)先調(diào)度(SSTF)</p><p> 圖1—2 SSTF的流程圖</p>
17、<p> 3.掃描算法(SCAN)</p><p> 圖1—3 SCAN的流程圖</p><p> 4.循環(huán)掃描(CSCAN)</p><p> 圖1—4 CSCAN的流程圖</p><p> 圖1—5 主函數(shù)的流程圖</p><p><b> 源代碼:</b></p
18、><p> #include"stdio.h"</p><p> #include"stdlib.h"</p><p> //#include"iostream.h"</p><p> #define maxsize 100 //定義最大數(shù)組域</p><p&
19、gt; //先來先服務(wù)調(diào)度算法</p><p> void FCFS(int array[],int m)</p><p><b> {</b></p><p> int sum=0,j,i;</p><p><b> int avg;</b></p><p>
20、printf("\n FCFS調(diào)度結(jié)果: ");</p><p> for(i=0;i<m;i++)//輸出FCFS磁盤調(diào)度結(jié)果</p><p><b> {</b></p><p> printf("%d ",array[i]);</p><p><b>
21、 }</b></p><p> for(i=0,j=1;j<m;i++,j++)</p><p><b> {</b></p><p> sum+=abs(array[j]-array[i]);//累計(jì)總的移動距離</p><p><b> }</b></p>
22、<p> avg=sum/(m-1);//計(jì)算平均尋道長度</p><p> printf("\n 移動的總道數(shù): %d \n",sum);</p><p> printf(" 平均尋道長度: %d \n",avg);</p><p><b> }</b></p><
23、;p> //最短尋道時間優(yōu)先調(diào)度算法</p><p> void SSTF(int array[],int m)</p><p><b> {</b></p><p><b> int temp;</b></p><p><b> int k=1;</b><
24、;/p><p> int now,l,r;</p><p> int i,j,sum=0;</p><p><b> int avg;</b></p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><
25、p> for(j=i+1;j<m;j++)//對磁道號進(jìn)行從小到大排列</p><p><b> {</b></p><p> if(array[i]>array[j])//兩磁道號之間比較</p><p><b> {</b></p><p> temp=array[i
26、];</p><p> array[i]=array[j];</p><p> array[j]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
27、<p> for( i=0;i<m;i++)//輸出排序后的磁道號數(shù)組</p><p><b> {</b></p><p> printf("%d ",array[i]);</p><p><b> }</b></p><p> printf(&qu
28、ot;\n 請輸入當(dāng)前的磁道號:");</p><p> scanf("%d",&now);</p><p> printf("\n SSTF調(diào)度結(jié)果: ");</p><p> if(array[m-1]<=now)//判斷整個數(shù)組里的數(shù)是否都小于當(dāng)前磁道號</p><p&g
29、t;<b> { </b></p><p> for(i=m-1;i>=0;i--)//將數(shù)組磁道號從大到小輸出</p><p> printf("%d ",array[i]);</p><p> sum=now-array[0];//計(jì)算移動距離</p><p><b>
30、}</b></p><p> else if(array[0]>=now)//判斷整個數(shù)組里的數(shù)是否都大于當(dāng)前磁道號</p><p><b> { </b></p><p> for(i=0;i<m;i++)//將磁道號從小到大輸出</p><p> printf("%d &qu
31、ot;,array[i]);</p><p> sum=array[m-1]-now;//計(jì)算移動距離</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> w
32、hile(array[k]<now)//逐一比較以確定K值</p><p><b> {</b></p><p><b> k++;</b></p><p><b> }</b></p><p><b> l=k-1;</b></p&g
33、t;<p><b> r=k;</b></p><p> //確定當(dāng)前磁道在已排的序列中的位置</p><p> while((l>=0)&&(r<m))</p><p><b> {</b></p><p> if((now-array[l])&
34、lt;=(array[r]-now))//判斷最短距離</p><p><b> { </b></p><p> printf("%d ",array[l]);</p><p> sum+=now-array[l];//計(jì)算移動距離</p><p> now=array[l];</p&g
35、t;<p><b> l=l-1;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> printf("%d ",a
36、rray[r]);</p><p> sum+=array[r]-now;//計(jì)算移動距離</p><p> now=array[r];</p><p><b> r=r+1;</b></p><p><b> }</b></p><p><b> }&l
37、t;/b></p><p><b> if(l=-1)</b></p><p><b> { </b></p><p> for(j=r;j<m;j++)</p><p><b> { </b></p><p> printf(&q
38、uot;%d ",array[j]);</p><p><b> }</b></p><p> sum+=array[m-1]-array[0];//計(jì)算移動距離</p><p><b> }</b></p><p><b> else</b></p&g
39、t;<p><b> { </b></p><p> for(j=l;j>=0;j--)</p><p><b> { </b></p><p> printf("%d ",array[j]);</p><p><b> }</b&g
40、t;</p><p> sum+=array[m-1]-array[0];//計(jì)算移動距離</p><p><b> }</b></p><p><b> }</b></p><p> avg=sum/m;</p><p> printf("\n 移動的總
41、道數(shù): %d \n",sum);</p><p> printf(" 平均尋道長度: %d \n",avg);</p><p><b> }</b></p><p><b> //掃描算法</b></p><p> void SCAN(int array[],i
42、nt m)//先要給出當(dāng)前磁道號和移動臂的移動方向</p><p><b> {</b></p><p><b> int temp;</b></p><p><b> int k=1;</b></p><p> int now,l,r,d;</p>&l
43、t;p> int i,j,sum=0;</p><p><b> int avg;</b></p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> for(j=i+1;j<m;j++)</p><p&
44、gt;<b> {</b></p><p> if(array[i]>array[j])//對磁道號進(jìn)行從小到大排列</p><p><b> {</b></p><p> temp=array[i];</p><p> array[i]=array[j];</p>&
45、lt;p> array[j]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> for( i=0;i<m;i++)</p><p><
46、;b> {</b></p><p> printf("%d ",array[i]);//輸出排序后的磁道號數(shù)組</p><p><b> }</b></p><p> printf("\n 請輸入當(dāng)前的磁道號:");</p><p> scanf(&qu
47、ot;%d",&now);</p><p> if(array[m-1]<=now)//判斷整個數(shù)組里的數(shù)是否都小于當(dāng)前磁道號</p><p><b> { </b></p><p> printf("\n SCAN調(diào)度結(jié)果: ");</p><p> for(i=m-
48、1;i>=0;i--)</p><p><b> {</b></p><p> printf("%d ",array[i]);//將數(shù)組磁道號從大到小輸出</p><p><b> }</b></p><p> sum=now-array[0];//計(jì)算移動距離&l
49、t;/p><p><b> }</b></p><p> else if(array[0]>=now)//判斷整個數(shù)組里的數(shù)是否都大于當(dāng)前磁道號</p><p><b> { </b></p><p> printf("\n SCAN調(diào)度結(jié)果: ");</p>
50、;<p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> printf("%d ",array[i]);//將磁道號從小到大輸出</p><p><b> }</b></p><p> sum=array[
51、m-1]-now;//計(jì)算移動距離</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while(array[k]<now)//逐一比較以確定K值</p><
52、;p><b> {</b></p><p><b> k++;</b></p><p><b> }</b></p><p><b> l=k-1;</b></p><p><b> r=k;</b></p>
53、;<p> printf("\n 請輸入當(dāng)前移動臂的移動的方向 (1 磁道號增加方向,0磁道號減小方向) : ");</p><p> scanf("%d",&d);</p><p> printf("\n SCAN調(diào)度結(jié)果: ");</p><p><b> if(
54、d==0)</b></p><p><b> {</b></p><p> for(j=l;j>=0;j--)</p><p><b> {</b></p><p> printf("%d ",array[j]);</p><p>
55、;<b> }</b></p><p> for(j=r;j<m;j++)</p><p><b> {</b></p><p> printf("%d ",array[j]);</p><p><b> }</b></p>&
56、lt;p> sum=now-2*array[0]+array[m-1];//計(jì)算移動距離</p><p> }//磁道號減小方向</p><p><b> else</b></p><p><b> {</b></p><p> for(j=r;j<m;j++)</p&g
57、t;<p><b> {</b></p><p> printf("%d ",array[j]);</p><p><b> }</b></p><p> for(j=l;j>=0;j--)</p><p><b> {</b>
58、</p><p> printf("%d ",array[j]);</p><p><b> }</b></p><p> sum=-now-array[0]+2*array[m-1];//計(jì)算移動距離</p><p> }//磁道號增加方向</p><p><b
59、> }</b></p><p> avg=sum/m;</p><p> printf("\n 移動的總道數(shù): %d \n",sum);</p><p> printf(" 平均尋道長度: %d \n",avg);</p><p><b> }</b>&
60、lt;/p><p><b> //循環(huán)掃描算法</b></p><p> void CSCAN(int array[],int m)</p><p><b> {</b></p><p><b> int temp;</b></p><p><
61、b> int k=1;</b></p><p> int now,l,r,d;</p><p> int i,j,sum=0;</p><p><b> int avg;</b></p><p> for(i=0;i<m;i++)</p><p><b>
62、; {</b></p><p> for(j=i+1;j<m;j++)</p><p><b> {</b></p><p> if(array[i]>array[j])//對磁道號進(jìn)行從小到大排列</p><p><b> {</b></p><
63、;p> temp=array[i];</p><p> array[i]=array[j];</p><p> array[j]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> }&
64、lt;/b></p><p> for( i=0;i<m;i++)</p><p><b> {</b></p><p> printf("%d ",array[i]);//輸出排序后的磁道號數(shù)組</p><p><b> }</b></p>&
65、lt;p> printf("\n 請輸入當(dāng)前的磁道號:");</p><p> scanf("%d",&now);</p><p> if(array[m-1]<=now)//判斷整個數(shù)組里的數(shù)是否都小于當(dāng)前磁道號</p><p><b> { </b></p>
66、<p> printf("\n CSCAN調(diào)度結(jié)果: ");</p><p> for(i=0;i<m;i++)</p><p><b> { </b></p><p> printf("%d ",array[i]);//將磁道號從小到大輸出</p><p>
67、;<b> }</b></p><p> sum=now-array[0]+array[m-1];//計(jì)算移動距離</p><p><b> }</b></p><p> else if(array[0]>=now)//判斷整個數(shù)組里的數(shù)是否都大于當(dāng)前磁道號</p><p><b
68、> { </b></p><p> printf("\n CSCAN調(diào)度結(jié)果: ");</p><p> for(i=0;i<m;i++)</p><p><b> { </b></p><p> printf("%d ",array[i]);//
69、將磁道號從小到大輸出</p><p><b> }</b></p><p> sum=array[m-1]-now;//計(jì)算移動距離</p><p><b> }</b></p><p><b> else</b></p><p><b&g
70、t; {</b></p><p> while(array[k]<now)//逐一比較以確定K值</p><p><b> {</b></p><p><b> k++;</b></p><p><b> }</b></p><p
71、><b> l=k-1;</b></p><p><b> r=k;</b></p><p> printf("\n 請輸入當(dāng)前移動臂的移動的方向 (1 磁道號增加方向,0磁道號減小方向) : ");</p><p> scanf("%d",&d);</p
72、><p> printf("\n CSCAN調(diào)度結(jié)果: ");</p><p><b> if(d==0)</b></p><p><b> {</b></p><p> for(j=l;j>=0;j--)</p><p><b>
73、{</b></p><p> printf("%d ",array[j]);</p><p><b> }</b></p><p> for(j=m-1;j>=r;j--)</p><p><b> {</b></p><p>
74、 printf("%d ",array[j]);</p><p><b> }</b></p><p> sum=2*(array[m-1]-array[0])-array[r]+now;//計(jì)算移動距離</p><p> }//磁道號減小方向</p><p><b> else&l
75、t;/b></p><p><b> {</b></p><p> for(j=r;j<m;j++)</p><p><b> {</b></p><p> printf("%d ",array[j]);</p><p><b&g
76、t; }</b></p><p> for(j=0;j<r;j++)</p><p><b> {</b></p><p> printf("%d ",array[j]);</p><p><b> }</b></p><p>
77、 sum=2*(array[m-1]-array[0])+array[r-1]-now;//計(jì)算移動距離</p><p><b> }</b></p><p> }//磁道號增加方向</p><p> avg=sum/m;</p><p> printf("\n 移動的總道數(shù): %d \n"
78、,sum);</p><p> printf(" 平均尋道長度: %d \n",avg);</p><p><b> }</b></p><p><b> // 操作界面</b></p><p> int main()</p><p><b&
79、gt; {</b></p><p><b> int c;</b></p><p> FILE *fp;//定義指針文件</p><p> int cidao[maxsize];//定義磁道號數(shù)組</p><p> int i=0,count;</p><p> fp=fo
80、pen("cidao.txt","r+");//讀取cidao.txt文件</p><p> if(fp==NULL)//判斷文件是否存在</p><p><b> {</b></p><p> printf("\n 請 先 設(shè) 置 磁 道! \n");</p>&
81、lt;p><b> exit(0);</b></p><p><b> }</b></p><p> while(!feof(fp))//如果磁道文件存在</p><p><b> {</b></p><p> fscanf(fp,"%d",
82、&cidao[i]);//調(diào)入磁道號</p><p><b> i++;</b></p><p><b> }</b></p><p> count=i-1;</p><p> printf("\n -------------------------------------
83、-------------\n");</p><p> printf(" 10-11年度OS課程設(shè)計(jì)--磁盤調(diào)度算法系統(tǒng)\n");</p><p> printf(" 計(jì)算機(jī)科學(xué)與技術(shù)二班\n");</p><p> printf(" 姓名:宋思揚(yáng)\n");</p&g
84、t;<p> printf(" 學(xué)號:0803050203\n");</p><p> printf(" 電話:************\n");</p><p> printf(" 2010年12月29日\n");</p><p> printf(&
85、quot;\n --------------------------------------------------\n");</p><p> printf("\n 磁道讀取結(jié)果:\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p&
86、gt;<p> printf("%5d",cidao[i]);//輸出讀取的磁道的磁道號</p><p><b> }</b></p><p> printf("\n "); </p><p><b> while(1)</b></p><p
87、><b> {</b></p><p> printf("\n 算法選擇:\n");</p><p> printf(" 1、先來先服務(wù)算法(FCFS)\n");</p><p> printf(" 2、最短尋道時間優(yōu)先算法(SSTF)\n");</p>&
88、lt;p> printf(" 3、掃描算法(SCAN)\n");</p><p> printf(" 4、循環(huán)掃描算法(CSCAN)\n");</p><p> printf(" 5. 退出\n");</p><p> printf("\n");</p>&l
89、t;p> printf("請選擇:");</p><p> scanf("%d",&c);</p><p><b> if(c>5)</b></p><p><b> break;</b></p><p> switch(c)//
90、算法選擇</p><p><b> {</b></p><p><b> case 1:</b></p><p> FCFS(cidao,count);//先來先服務(wù)算法</p><p> printf("\n");</p><p><b&g
91、t; break;</b></p><p><b> case 2:</b></p><p> SSTF(cidao,count);//最短尋道時間優(yōu)先算法</p><p> printf("\n");</p><p><b> break;</b><
92、/p><p><b> case 3:</b></p><p> SCAN(cidao,count);//掃描算法</p><p> printf("\n");</p><p><b> break;</b></p><p><b> ca
93、se 4:</b></p><p> CSCAN(cidao,count);//循環(huán)掃描算法</p><p> printf("\n");</p><p><b> break;</b></p><p><b> case 5:</b></p>
94、<p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b>&l
95、t;/p><p><b> 6 運(yùn)行結(jié)果</b></p><p><b> 圖2—1 運(yùn)行界面</b></p><p> 圖2—2 運(yùn)行FCFS的界面</p><p> 圖2—3 運(yùn)行SSTF的界面</p><p> 圖2—4 運(yùn)行SCAN的界面</p>
96、<p> 圖2—5 運(yùn)行SCAN的界面</p><p> 圖2—6 運(yùn)行CSCAN的界面</p><p> 圖2—7 運(yùn)行CSCAN的界面</p><p> 運(yùn)行結(jié)果: 四種磁盤調(diào)度運(yùn)行結(jié)果正確,與預(yù)期的相符。</p><p><b> 7 設(shè)計(jì)心得</b></p><p>
97、 此次操作系統(tǒng)的課程設(shè)計(jì),從理論到實(shí)踐,在兩個星期的日子里,可以說是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。</p><p> 本次實(shí)
98、驗(yàn)首先要了解磁盤調(diào)度的工作原理及四種調(diào)度方法的工作原理。在課程設(shè)計(jì)前的準(zhǔn)備工作時,先把這部分工作做完了。在設(shè)計(jì)總的程序框架的時候,要注意各功能模塊的位置,盡量做到簡潔、有序;各功能模塊與主程序要正確銜接。</p><p> 在設(shè)計(jì)的過程中遇到許多問題,我設(shè)計(jì)的是四種調(diào)度算法中的后兩種。例如:在最初程序設(shè)計(jì)時主要有兩種構(gòu)思:1)選用數(shù)據(jù)結(jié)構(gòu)是鏈表的。2)選用數(shù)組。我最初嘗試了用鏈表,覺得方便易懂,但是在循環(huán)掃描處
99、出現(xiàn)了些問題,后來又轉(zhuǎn)變了設(shè)計(jì)思路,選用了數(shù)組,直接進(jìn)行排序,然后再聯(lián)系到各功能模塊。</p><p> 同時在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,自身知識的很多漏洞,看到了自己的實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。比如說編語言掌握得不好,應(yīng)用程序編寫不太會……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重新溫故。在此,也感謝在課程設(shè)計(jì)過程中幫我解
100、惑的老師和同學(xué)。</p><p><b> 8 參考文獻(xiàn)</b></p><p> [1] 《操作系統(tǒng)》 人民郵電出版社 宗大華 宗濤 陳吉人 編著</p><p> [2] 《C語言程序設(shè)計(jì)》 清華大學(xué)出版社 馬秀麗 劉志嫵 李筠 編著</p><p> [3] 《操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書》 沈陽理工大
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)--磁盤調(diào)度算法實(shí)踐
- 操作系統(tǒng)課程設(shè)計(jì)報告--磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)報告--磁盤調(diào)度算法
- 操作系統(tǒng)磁盤調(diào)度算法課程設(shè)計(jì)報告
- 操作系統(tǒng)課程設(shè)計(jì)報告--磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)報告--磁盤調(diào)度算法
- cscan磁盤調(diào)度算法---操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤調(diào)度報告
- 操作系統(tǒng)課程設(shè)計(jì)-磁盤調(diào)度模擬法
- n-step-scan_磁盤調(diào)度_操作系統(tǒng)課程設(shè)計(jì)
- 進(jìn)程調(diào)度算法 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤文件操作
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程調(diào)度算法
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程調(diào)度算法
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計(jì) (2)
- 操作系統(tǒng)課程設(shè)計(jì)——進(jìn)程調(diào)度模擬算法
- 磁盤調(diào)度算法課程設(shè)計(jì)--模擬磁盤調(diào)度算法系統(tǒng)的設(shè)計(jì)
- 操作系統(tǒng)_進(jìn)程調(diào)度算法課程設(shè)計(jì)報告
評論
0/150
提交評論