作业调度设计报告(多道).doc

作业调度设计报告(多道).doc

ID:55618199

大小:118.00 KB

页数:17页

时间:2020-05-20

作业调度设计报告(多道).doc_第1页
作业调度设计报告(多道).doc_第2页
作业调度设计报告(多道).doc_第3页
作业调度设计报告(多道).doc_第4页
作业调度设计报告(多道).doc_第5页
资源描述:

《作业调度设计报告(多道).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、作业调度(多通道)课程设计报告一、目的要求:用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。二、详细设计:在多通道批处理系统中,作业的运行除了考虑作业之间的优先关系之外,还必须考虑系统能否为其所需的资源分配资源。因为在多通道批处理系统中同时有不只一道作业在CPU中运行,这样就会导致某个作业需要的资源正在被另一个作业占用,这样就会导致无法分配资源的作业进入等待状态,直到该资源被其它作业释放后才能重新激活。①、作业调度算法该作业调度系统的调度算法是基于优先级的调度算法。在作业提交后按预先设定的优先级的高低依次插入到就绪队列(ready),但

2、在系统运行过程中,除了考虑优先级外(即优先级高只是表明该作业能较先运行),同时还应该考虑该作业所需的资源是否能够被分配到。②、为作业分配资源在这里采用这样的方法判断资源能否分配:查看该作业运行所需的第一个资源,然后在系统资源中查看该资源是否还有空闲的,有则表示该资源可以插入到运行队列(run)中,准备在下一个时间片中运行。③、设置同时运行的最大并行度这里设置一个量maxrun,这个量是系统允许同时并行运行的作业数量,当运行队列中的作业数目达到最大值maxrun后,即使某作业所需的资源系统还有空闲的,也不再允许继续分配。④、作业模块每个作业由一个作业控制块JCB控制,

3、相关信息将在代码中将详细给出。⑤、所需资源模块每个作业的JCB模块中有个所需资源的链,其结构用needsource表示,相关信息将在代码中将详细给出。⑥、系统资源模块(systemsource)将系统拥有的各个资源及其的数目链成链,在系统运行过程中通过这个链就可以查询某作业需要的资源系统是否可以分配。每当为某作业分配了某个资源后,该资源的数目减1,而当某作业释放了某个资源后,该资源的数目又将加1。相关信息将在代码中将详细给出。三、调度算法流程图如下:结束开始初始化系统资源(将系统资源及数目链成链,以便查询)初始化所有JCB,使JCB按预定的优先级排成队列(syste

4、mtime=0)作业调度(函数为:attemper())查看调度情况(函数为:check();打印就绪队列,运行队列,等待队列中各个作业的信息)作业运行,将运行队列中的各个作业的所需的第一个资源撤消,查看等待队列,看是否有作业需要该资源,有则激活该作业,同时所需资源链needsource*source指针指向下一个资源。Systemtime加1运行队列中有作业的资源链*source为空?资源链为空,该作业已经运行完毕,打印所有完成的作业信息,并从run队列中撤消Ready=NULL?Run=NULL?计算并打印该组作业的平均周转时间和平均带权周转时间是是是否否否详细

5、过程见下图作业调度的详细过程如下:作业调度(函数为:attemper())运行队列(run)空?首先为运行队列中的作业分配资源(将不能分配资源的作业插入等待队列,同时当前并行运行的作业数runjcb加1)否Ready=NULL?运行作业数runjcb大于最大允许数maxrun?将ready队列中优先级高且能被分配资源的作业插入run队列是是否否一、程序代码如下:#include#include#include"conio.h"#defineGetSpace(type)(type*)malloc(sizeof(type))/

6、/空间分配函数#defineNULL0#definesourcenum8//系统拥有的各种同类资源数目#definemaxrun3//定义在CPU中能同时运行的作业总数charsyssourcename[sourcenum]={'A','B','C','D','E','F','G','H'};//系统资源名称intsournum[sourcenum]={1,1,1,1,1,1,1,1};//对应的系统资源数量intsystemtime=0;//系统时间,开始为零intrunjcb=0;//在运行队列中的作业数量,开始为零intJCBNum=0;//总的作业数intJ

7、CBTime=0;//总的周转时间floatJCBTime_1=0;//总的带权周转时间structsystemsource{//系统资源,包括名称和数量charname;intnumber;systemsource*link;}*systemsor;structneedsource{//作业所需资源链表结构charname;needsource*link;}*sourcelink;structjcb{//作业结构charname[10];//作业名称intptime;//提交时间intrtime;//开始运行时间intftime;//完成时间intsuper;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。