xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

該程序?qū)崿F(xiàn)作業(yè)調(diào)度的SRTF算法,只要輸入進程號,到達時間,運行所需時間即可,輸出的是一條時間軸和對應(yīng)的一條進程運行流程,表示一個時間點里哪個進程在運行。 很簡單,看了就知道~

資源截圖

代碼片段和文件信息

#include
#define?N?3//進程個數(shù),可以任意修改,這里設(shè)置為3個進程
int?time=0;//時間軸
int?sumTime=0;
void?init();
void?orderByReachTime();
int?search_Shortest_Remain_Job();
void?update(int);
int?finishOrNot();
void?SRTF();
void?show();
struct?JobStruct
{
int?reachTime;//到達時間???
int?remainTime;//剩余時間
int?needTime;//需要運行的總時間
int?No;//進程號
int?flag;//標志位,1標示已做完該作業(yè),0標示未做完,初始化為0
}Job[N];
void?init()//輸入結(jié)構(gòu)體數(shù)組Job[]數(shù)據(jù)
{
printf(“Process ReachTime NeedTime\n“);
for(int?i=0;i {
scanf(“%d%d%d“&Job[i].No&Job[i].reachTime&Job[i].needTime);
Job[i].remainTime=Job[i].needTime;//剛開始時剩余時間=所需時間
Job[i].flag=0;
sumTime+=Job[i].needTime;
}
}
void?orderByReachTime()//按到達時間先后排序數(shù)組
{
for(int?i=0;i for(int?j=i+1;j {
if(Job[i].reachTime>Job[j].reachTime)//按到達時間升序排序
{
struct?JobStruct?temp=Job[i];
Job[i]=Job[j];
Job[j]=temp;
}
}
}
int?search_Shortest_Remain_Job()//尋找最短剩余時間的作業(yè)的下標并返回下標
{
int?index=-1;
int?remain=32767;
for(int?i=0;i {
if(Job[i].flag==0)
{
if(time>=Job[i].reachTime)//該作業(yè)已到達,可以對其進行判斷
{
if(Job[i].remainTime {
remain=Job[i].remainTime;
index=i;

}
}
}
}
return?index;//返回最短剩余時間的作業(yè)的下標
}
void?update(int?index)//被調(diào)度的作業(yè)剩余時間減1,時間軸加1參數(shù)index為被調(diào)度的作業(yè)的下標
{
if(index==-1)
{
printf(“%d “index);
time++;
//return;
}
else
{
printf(“%d “index);
Job[index].remainTime--;
if(Job[index].remainTime==0)//如果作業(yè)剩余時間為0,說明作業(yè)已做完,置標志位為1
{
Job[index].flag=1;
}
time++;
}
}
int?finishOrNot()//判斷數(shù)組中是否還有沒完成的作業(yè),有則返回1,否則返回0
{
for(int?i=0;i {
if(Job[i].flag==0)
{
return?1;//說明此時還有作業(yè)未做完
}
}
return?0;
}
void?SRTF()//最短剩余時間優(yōu)先算法?Shortest?Remaining?Time?First
{
init();
show();
printf(“Process:“);
while(finishOrNot())
{
int?index=search_Shortest_Remain_Job();//返回最少剩余時間的作業(yè)的下標
update(index);
//display();
}
}
void?show()
{
printf(“Time “);
for(int?i=0;i //點,每個時間片對應(yīng)的是主存中正在運行的一個進程號
{
printf(“%d “i);
}
printf(“\n“);
}
void?main()
{
SRTF();
printf(“\n“);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2499??2009-12-27?10:02??SRTF作業(yè)調(diào)度算法\SRTF.cpp

?????目錄??????????0??2009-12-27?10:11??SRTF作業(yè)調(diào)度算法

-----------?---------??----------?-----??----

?????????????????2499????????????????????2


評論

共有 條評論