第一范文网 - 专业文章范例文档资料分享平台

计算机操作系统课程设计源代码《通用处理机调度演示程序源代码》

来源:用户分享 时间:2025/7/23 6:12:56 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

}

//按到达时间排序

void sort(struct zgxyb *p,int N) { int i,j;

for(i=0;i<=N-1;i++) for(j=0;j<=i;j++)

if(p[i].arrivetime

struct zgxyb temp; temp=p[i]; p[i]=p[j]; p[j]=temp; } }

//yun xing jieduan

void deal(struct zgxyb *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N) { int k;

for(k=0;k<=N-1;k++) {

if(k==0) {

p[k].starttime=p[k].arrivetime;

p[k].finishtime=p[k].arrivetime+p[k].servicetime;} else {

p[k].starttime=p[k-1].finishtime;

p[k].finishtime=p[k-1].finishtime+p[k].servicetime;} }

for(k=0;k<=N-1;k++) {

p[k].zztime=p[k].finishtime-p[k].arrivetime;

p[k].dqzztime=p[k].zztime/p[k].servicetime; } }

void ZGXYB(struct zgxyb *p,int N) { float

arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0; int m,i,n,follow,k; float max;

struct zgxyb temp; sort(p,N);

for(m=0;m

if(m==0)

p[m].finishtime=p[m].arrivetime+p[m].servicetime; else

p[m].finishtime=p[m-1].finishtime+p[m].servicetime; i=0;

for(n=m+1;n<=N-1;n++) {

if(p[n].arrivetime<=p[m].finishtime) i++; }

max=(p[m].finishtime-p[m+1].arrivetime)/p[m+1].servicetime; follow=m+1;

for(k=m+1;k

if(max<=(p[m].finishtime-p[k+1].arrivetime)/p[k+1].servicetime) {

max=(p[m].finishtime-p[k+1].arrivetime)/p[k+1].servicetime;

follow=k+1; }

}

temp=p[m+1]; p[m+1]=p[follow]; p[follow]=temp; }

deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N); Print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N); }

//主函数

void main() {

printf(\ ------------------欢迎您使用本系统---------------\\n\

printf(\ --------------12软工3班 陈宇锋 谈泽宇------------\\n\printf(\ -- 1 使用短作业优先算法 --\\n\int option;

printf(\ -- 2 使用时间片轮转算法 --\\n\ printf(\ -- 3 使用先来先服务算法 --\\n\ printf(\ -- 4 使用静态优先权优先算法 --\\n\ printf(\ -- 5 使用高响应比调度算法 --\\n\

printf(\ -- 0 退出 --\\n\printf(\ -------------------------------------------------\\n\

scanf(\switch(option) { case 0:

printf(\运行结束。\\n\break;

case 1:

printf(\ --------------12软工3班 陈宇锋 谈泽宇------------\\n\

printf(\ 短作业优先调度算法模拟 \\n\

printf(\ ----------------------------------------------\\n\

Pinput();

SJF(); sh: Poutput(); break;

case 2:

printf(\ --------------欢迎使用时间片轮转算法------------\\n\ printf(\请输入要创建的进程数目:\\n\ scanf(\ TimeCreate(); RoundRun(); Output(); break;

case 3:

printf(\ --------------12软工3班 陈宇锋 谈泽宇------------\\n\

printf(\ 先来先服务算法模拟 \\n\

printf(\ ----------------------------------------------\\n\ getInfo(); p=head1; fcfs(); break;

case 4: Menu(); break;

case 5:

printf(\ --------------12软工3班 陈宇锋 谈泽宇------------\\n\ printf(\ ------------------高响应比调度算法---------------\\n\ printf(\ ----------------------------------------------\\n\ printf(\输入进程的个数:\\n\ scanf(\ input(a,N); c=a;

ZGXYB(c,N); break; } }

计算机操作系统课程设计源代码《通用处理机调度演示程序源代码》.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2c9lt7wr8z9pugm7qnnb9acj39qq6000eh9_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top