91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

c語言,運行成功,比較基礎,單道批處理系統作業調度模擬程序:采用先來先服務(FCFS),最短作業優先(SJF)和響應比高者優先(HRN)三種作業調度算法

資源截圖

代碼片段和文件信息

#include
#include
#include
#include

#define?LENGTH?sizeof(struct?job)

struct?job
{
int?name;??//作業名?
int?subtime;??//作業提交時刻(例如到達食堂的時刻)?
int?runtime;??//作業所需運行時間(預估)
//char?resource;??//所需資源
char?state;??//作業狀態:W?就緒,R?運行,F?完成?
int?Tb;???//作業運行開始時刻(例如開始吃飯的時刻)
int?Tc;???//作業運行完成時刻(例如吃飯完成的時刻)
int?Ti;???//周轉時間(完成時刻-提交時刻)
float?Rp;???//后備作業響應比:Rp=(Tc-subtime)/runtime響應比可以看成帶權周轉時間的預期??
float?Wi;????//帶權周轉時間?(周轉時間/運行時間)?Wi=(Tc-subtime)/(Tc-Tb)?
struct?job?*?next;??//后續作業?
};
int?choose=0subt=0;//選擇三種優先方式中的一種、最新作業提交時刻?
struct?job?*head*temp;
struct?job?*p1*p2;
//待執行作業數、已運行作業數、作業數、總周轉時間、運行完成時刻之和、運行開始時刻之和?
int?len=0rlen=0num=0allTi=0allTc=0allTb=0;??
int?main()
{
void?input();?//輸入作業信息
void?sort2();??//對隊列中的作業進行排序,按作業運行時間由低到高?
void?sort3();??//對隊列中的作業進行排序,按響應比由高到低?
void?run();?//運行head指向的作業?
void?printfinish();?//打印運行完成的作業?
void?printend();????//打印平均周轉時間:allTi/num、帶權平均周轉時間:allTi/(allTc-allTb)
char?ch;
printf(“請輸入1-31=FCFS,2=SJF3=HRN:“);
scanf(“%d“&choose);
input();
printf(“\n請輸入c了解作業運行情況\n“);
--len;
++rlen;
while(len>=0)
{
ch=getchar();
if(ch==‘c‘&&len==0)
{
system(“cls“);
printf(“待執行作業個數:%d\n“len);
printf(“已執行作業個數:%d\n“rlen);
run();
printend();
break;
}
if(ch==‘c‘)
{
system(“cls“);
printf(“待執行作業個數:%d\n“len);
printf(“已執行作業個數:%d\n“rlen);
if(choose==1)?
{

}
if(choose==2)?
{
sort2();
}
if(choose==3)?
{
sort3();
}

run();
printfinish();
printf(“\n請輸入c繼續運行\n“);
}
}

return?0;
}

void?input()??//輸入作業信息
{
srand(time(0));
char?ch;
for(;;)
{
printf(“\n請輸入c繼續輸入作業信息,輸入f結束輸入作業信息\n“);
ch=getchar();
if(ch==‘f‘)?break;
if(ch==‘c‘)
{
if(len==0)
{
head=p1=(struct?job?*)malloc(LENGTH);
p1->name=len+1;
p1->subtime=0;
p1->runtime=rand()%5+1;
p1->state=‘W‘;
p1->Tb=0;
p1->Tc=0;
p1->Ti=p1->Tc-p1->subtime;
p1->Rp=0;
p1->Wi=0;
printf(“**********job%d**********\n“++len);
printf(“name=%d\n“p1->name);
printf(“subtime=%d\n“p1->subtime);
printf(“runtime=%d\n“p1->runtime);
printf(“state=%c\n“p1->state);
printf(“Tb=%d\n“p1->Tb);
printf(“Tc=%d\n“p1->Tc);
printf(“Ti=%d\n“p1->Ti);
printf(“Rp=%f\n“p1->Rp);
printf(“Wi=%f\n“p1->Wi);
num=len;

}
else
{
p2=(struct?job?*)malloc(LENGTH);
p2->name=len+1;
p2->subtime=0;
p2->runtime=rand()%5+1;
p2->state=‘W‘;
p2->Tb=0;
p2->Tc=0;
p2->Ti=p2->Tc-p2->subtime;
p2->Rp=0;
p2->Wi=0;
printf(“**********job%d**********\n“++len);
printf(“name=%d\n“p2->name);
printf(“subtime=%d\n“p2->subtime);
printf(“runtime=%d\n“p2->runtime);
printf(“state=%c\n“p2->state);
printf(“Tb=%d\n“p2->Tb);
printf(“Tc=%d\n“p2->Tc);
printf(“Ti=%d\n“p2->Ti);
printf(“Rp=%f\n“p

評論

共有 條評論