-
大小: 114KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-01
- 語言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
(1)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)函數(shù),完成先來先服務(wù)的磁盤調(diào)度功能
(2)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)函數(shù)完成最短尋道時(shí)間優(yōu)先的磁盤調(diào)度功能。
(3)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)函數(shù)完成電梯算法的磁盤調(diào)度功能。

代碼片段和文件信息
#include
#include
#include
?void?FCFS(int?array[]int?m)//?先來先服務(wù)算法
{????int?jinow;
?float?sum?=?0avg;
?????cout<<“輸入當(dāng)前的磁道號(hào):“;//輸入當(dāng)前磁道號(hào)
?????cin>>now;
?sum=abs(now-array[0]);
?????cout<<“先來先服務(wù)算法(FCFS)調(diào)度后的序列為“< ?????for(i=0j=1;j ?{
??????sum=sum+abs(array[j]-array[i]);
??cout< ?}
?????avg=sum/(m);
?????cout< }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void?SSTF(int?array[]int?m)//?最短尋道時(shí)間優(yōu)先算法
{?????int?temp;
??????int?k=1;
??????int?nowlr;
??????int?ij;
??float?sum=0avg=0;
??????for(i=0;i ??????for(j=i+1;j ??{
????????if(array[i]>array[j])?//將磁道號(hào)從小到大排序
{
???????????temp=array[i];
???????????array[i]=array[j];
???????????array[j]=temp;
}
??}?
??????cout<<“請(qǐng)輸入當(dāng)前的磁道號(hào):“;?//輸入當(dāng)前磁道號(hào)
??????cin>>now;
??cout<<“最短尋道時(shí)間優(yōu)先算法(SSTF)調(diào)度后的序列為“;//輸出磁盤調(diào)度序列
??????if(array[m-1]<=now)??//若被訪問的下一最大的磁道號(hào)不大于當(dāng)前的磁道號(hào)
??{??
?????????for(i=m-1;i>=0;i--)
?????????{?cout< ???sum=now-array[i];?
???now=array[i];
?}
??}
??????else
??{
if(array[0]>=now)??//若被訪問的下一最小的磁道號(hào)不小于當(dāng)前的磁道號(hào)
{??
??????????for(i=0;i ??????????{??cout< ?????????????sum=array[i]-now;
?now=array[i];
??}
}
????????else??//當(dāng)前的磁道號(hào)的值在若所有被訪問的下的磁道號(hào)之間
{
???????????while(array[k] ???{??k++; }
???????????l=k-1;
???????????r=k;
???if((now-array[l])<=(array[r]-now))?
???{
??while(l>=0)????//先向磁道號(hào)減小方向訪問
??{
cout< ????????????????sum=sum+now-array[l];
????????????????now=array[l];
????????????????l=l-1;
??}
??now=array[0];
??for(j=r;j ??{??cout< ?????sum+=array[j]-now;
???? ?now=array[j];
??}
???}
???else???//先向磁道號(hào)增加方向訪問
???{
??while(r ??????????????{
?????????????????cout< ?????????????????sum+=array[r]-now;
?????????????????now=array[r];
?????????????????r=r+1;
??}
??now=array[m-1];?
??for(j=l;j>=0;j--)??//再向磁道號(hào)減小方向訪問
??{??cout< ?????sum+=now-array[j];
???? ?now=array[j];
??}
???}?
}
??}
????avg=sum/(m);
????cout< }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void?SCAN(int?array[]int?m)??//掃描算法
{?????int?temp;
??????int?k=1;
??????int?nowdlr;
??????int?ij;
??float?sum=0avg=0;
??????for(i=0;i ??????for(j=i+1;j ??{
????????if(array[i]>array[j])?//將磁道號(hào)從小到大排序
{
???????????temp=array[i];
???????????array[i]=array[j];
???????????array[j]=temp;
}
??}?
??????cout<<“請(qǐng)輸入當(dāng)前的磁道號(hào):“;//輸入當(dāng)前磁道號(hào)
??????cin>>now;
??cout<<“請(qǐng)輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向(1?表示向磁道
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????6057??2010-12-28?09:49??磁盤調(diào)度\DiskScheduling.cpp
?????文件?????212992??2010-12-28?09:41??磁盤調(diào)度\磁盤調(diào)度實(shí)驗(yàn)報(bào)告.doc
?????目錄??????????0??2010-12-28?10:05??磁盤調(diào)度
-----------?---------??----------?-----??----
???????????????219049????????????????????3
評(píng)論
共有 條評(píng)論