网站大量收购独家精品文档,联系QQ:2885784924

操作系统作业调度实验报告-多道批处理.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统作业调度实验报告-多道批处理

计算机 学院 计算机科学与技术 专业 07 班 姓名 学号 教师评定_________________ 实验题目 作业调度 一、实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。二、实验内容和要求为单道批处理系统设计一个作业调度程序(1)、编写并调试一个单道处理系统的作业调度模拟程序。(2)、作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)的调度算法。 (3)、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。(4)、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。(5)、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。三、实验设计方案及原理假设在单道批处理环境下有四个作业JOB1、JOB2、JOB3、JOB4,已知它们进入系统的时间、估计运行时间。分别采用先来先服务(FCFS),最短作业优先(SJF)调度算法,计算出作业的平均周转时间和带权的平均周转时间 。作业的周转时间:=p-ftime-p-atime 作业的平均周转时间:=全部进程的周转时间/进程个数 作业的带权周转时间: =p-ttime/p-ntime 作业的平均带权周转时间:W=先来先服务调度算法(FCFS):每次调度都是从后备作业队列中,选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,这每次调度是从就绪队列中,选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件阻赛后,才放弃处理机。最短作业优先(SJF):每次从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。 2.多道作业调度算法 五、给出程序中源程序名和执行程序名: 源程序名:FCFS and SJF,执行程序名:fcfs and sjf.cpp 源程序名:DUODAO 执行程序名:duodao.cpp 六、程序清单 1.FCFS和SJF算法 #include stdio.h #include stdlib.h #include conio.h #define getpch(type) (type*)malloc(sizeof(type)) struct jcb{ char name[10]; char state; int atime;//作业到达时间 int btime;//作业开始运行时间 int ftime;//作业完成时间 int ntime;//作业估计运行时间 int rtime;//作业执行时间 int ttime;//周转时间 float wtime;//带权周转时间(周转时间/估计运行时间) struct jcb* link; }*ready=NULL, *p;//ready指向队头,p指向正被调度的作业 typedef struct jcb JCB; int T=0; //初始化时间量 float total;//记录所有作业的总时间 double weight;//记录所有作业的带权周转时间 void sort() /* 建立对作业进行到达时间排列函数*/ { JCB *first, *second; int insert=0; if((ready==NULL)||((p-atime)(ready-atime))) /*作业到达时间最短的,插入队首*/ { p-link=ready; ready=p; T=p-atime; //更改时间量 } else /* 作业比较到达时间,插入适当的位置中*/ { first=ready; second=f

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档