首页 > 编程知识 正文

批处理系统的作业调度c语言代码

时间:2023-05-05 22:28:12 阅读:275297 作者:4324

文章目录 01 - 批处理系统02 - 程序框架03 - 源码下载04 - 结果测试05 - 总结

01 - 批处理系统

  批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行,本例程的作业的优先级采用高响应比 P P P优先,其中作业的等待时间为 T w T_w Tw​,作业估计运行时间为 T r T_r Tr​,关系为: P = T w T r P =frac{ T_w}{T_r} P=Tr​Tw​​
  用C语言模拟一个批处理系统的运行

02 - 程序框架

  系统资源:主存64MB、磁带机4台和打印机2台(假设作业所需资源不会超过系统拥有资源,即免去检查这一步骤),程序主框架如下:

开始 初始化作业Set_Job_Values 开始作业调度Start_Job 结束

  Set_Job_Values()做作业的初始化工作,包括作业名称、作业长度、作业所需资源等等的随机生成,Start_Job()就开启了批处理的高响应比调度,可以细分为如下步骤:

1、后备队列中第一个作业先运行,退出队列,修改系统资源,输出作业名称,Print_Job_Name()2、系统运行时间+1,正在运行的作业运行时间+1,Up_Job_Running_Time()判断正在运行的作业中是否有结束,若结束,归还系统资源,Check_Job_Time()判断是否还存在作业在运行,若没有,结束程序,check_Job_Run()3、后备队列中所有作业的等待时间+1,Up_Job_Wait_Time()4、计算后备队列每个作业的响应度,Calculate_Job_Priority()5、选取出最高响应度的作业job,Select_Hight_Priority_Job()6、检查job所需资源是否满足若满足,退出队列,修改系统资源,输出作业名称,Print_Job_Name()若不满足,继续等待7、执行2 03 - 源码下载

  链接:百度网盘 提取码:jztn
  包含JBC.h、JBC.c和main.c,其实作业的数据结构如下:

typedef struct jcb{char name[4]; //作业名int length; //作业长度,所需主存大小int printer; //作业执行所需打印机的数量int tape; //作业执行所需磁带机的数量int runtime; //作业估计运行时间int waittime; //作业在系统中的等待时间 float pri; //动态优先级 int runningtime; //作业已经运行的时候}JCB; 04 - 结果测试

  编译运行main.c,得到10个作业的调度结果如下:

The job YZY is runningThe job YZY is end,using 8sThe job BCS is runningThe priority of BCS is 8.00The job BCS is end,using 1sThe job CGJ is runningThe priority of CGJ is 4.50The job CGJ is end,using 2sThe job JBZ is runningThe priority of JBZ is 3.67The job JBZ is end,using 3sThe job CLR is runningThe priority of CLR is 3.50The job CLR is end,using 4sThe job XQC is runningThe priority of XQC is 3.00The job RWX is runningThe priority of RWX is 2.71The job XQC is end,using 6sThe job PFX is runningThe priority of PFX is 3.43The job PGM is runningThe priority of PGM is 3.57The job RWX is end,using 7sThe job PFX is end,using 7sThe job PGM is end,using 7sThe job TSQ is runningThe priority of TSQ is 3.20The job TSQ is end,using 10s

  观测后部分的作业调度,RWX、PFX和PGM 作业相互竞争,系统根据作业的高响应比进行调度,作业能够有序完成

05 - 总结 模拟了批处理系统的高响应比作业调度作业最大,随着等待时间越长,就越会被执行作业越小,越会被执行作业数量的大小,资源数量都可以进行实际修改

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。