操作系统实验报告-王宇辰 -作业调度.docVIP

操作系统实验报告-王宇辰 -作业调度.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实验 -作业调度 ? ? ? 专业班级: 计算机1101班 姓 名: 王宇辰 学 号: 20 指导教师: 曾应员 一、实验目的: (1)理解什么是作业:每个用户请求计算机的一个计算任务叫做一个作业。 (2)作业的执行有几个步骤:一个作业从开始执行到得出结果要经历若干步。 (3)什么是作业控制方式:用户向系统提出作业加工的方式称作业控制方式。 (4)作业控制方式有那几种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。 (5)作业调度的作用:通过模拟作业调度的实现,了解作业调度在操作系统中的作用。 二、实验内容: (1):设计一个小系统(能够通过小系统中作业的调度了解多道操作系统中作业执行)。 (2):通过小系统的模拟,分析多道系统的作业执行。 (3):提出系统中作业的调度的改进措施,以提高作业的执行效率,提高多道操作系统的处理能力。 三、流程图如下: 四、源程序如下: #include stdio.h #include stdlib.h #include time.h #define Max 100 //最大作业数 #define MEMLENGTH 180 #define RECORDERNUM 16 typedef struct JCB //作业控制块 { int UserID; //用户名 int JobID; //作业名 char status; //状态 float RunTime; //运行时间 int ApplyMem; //申请主存大小 int ApplyRecorder;//申请磁带数 struct JCB * next; }JCB; void JTinit(JCB * p)//构造一个空的 { p-next=(JCB *)malloc(sizeof(JCB)); p-next-next=NULL; p-UserID=p-JobID=NULL; } void JTinsert(JCB * jt,JCB * j) //插入 { JCB * p; for(p=jt;p-next!=NULL;p=p-next); p-next=j; j-next=NULL; } int JTdel(JCB * jt,JCB * j) //删除 { JCB * p; if(j==NULL)return 0; p=jt-next; if(p==NULL)return 0; for(;p-next!=NULLp-next!=j;p=p-next); if(p-next==NULL)return 0; p-next=j-next; return 1; } JCB * JTfind(JCB * jcb,char status) //查找 { JCB * p; if(jcb==NULL) return NULL;//若作业控制块为空,返回NULL for(p=jcb-next;p!=NULLp-status!=status;p=p-next); return p; } void JTrelease(JCB * jt) //释放 { JCB * p; JCB * q; p=jt-next; if(p==NULL)return; for(q=p-next;q!=NULL;p=q,q=q-next) free(p); } JCB jt; int memory=MEMLENGTH; int recorder=RECORDERNUM; int num,num1; int m; int e=0; int runnum=0; void stop(int n)//运行该函数大概需要n/100秒,用来模拟作业执行时间 { int i=0,j,m; for(;i=2650;i++) { for(j=0;jn;j++) { m=1000; while(m){m--;} } } } void run() { JCB * ep,* pd; void recover();//函数声明 if(num0)//若作业表中有尚未选中的作业 { ep=JTfind(jt,s); pd=ep; if(m==2) { while((pd=JTfind(pd,s))!=NULL) if(ep-RunTime=pd-RunTime) ep=pd; } while(num0epmemory=ep-ApplyMem

文档评论(0)

chqs52 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档