作业进程调度算设计与实现操作系统实验报告.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文档。上传文档
查看更多
作业进程调度算设计与实现操作系统实验报告

实 验 报 告计算机操作系统 作业/进程调度算法设计与实现课程名称 计算机操作系统 作业/进程调度算法设计与实现实验项目 实验仪器 院  系 计算机学院 专  业 计算机科学与技术 班级/学号 计0503 / 29 2007-11学生姓名 杨天心 2007-11实验日期 成  绩 指导老师 实验二 作业/进程调度算法设计与实现一.实验目的调度是操作系统的主要功能,本实验通过自行设计实现的调度程序,使同学们加深对作业/进程调度功能的理解,从而掌握操作系统的基本原理。同时还可以提高同学们的编程能力。二.实验要求用C语言编制按优先级调度三个进程的调度程序,其中要求进程的优先级随着运行时间的延长而降低,但却随着等待时间的延长而升高。三.实验方法内容(一)算法设计的思路设计进程控制块为以下结构:struct PRO﹛char id; /*进程的id号,可以表示为a, b, c */int pri; /*进程的初始优先级*/int p; /*等待进程可以动态增加的优先级量*/int s; /*运行进程应该动态减少的优先级量*/int status; /*表示进程的状态,0为等待,1为运行*/﹜A={‘a’,2,1,1,0},B={‘b’,1,1,1,0}, C={‘c’,0,1,1,0}; 要求接管时钟中断:INT 1Ch使用到的C语言函数为:getvect(intno) /*获得intno的中断向量*/(要求保存在一个全局变量中)setvect(intno,time) /*设置intno的中断向量为函数time的入口地址*/ 在自己编制的新的时钟中断处理程序中,完成进程优先级的修改;并记录被中断的次数。Void interrupt time( ) {if(A.status==1) A.pri=A.pri-A.s;else A.pri=A.pri+A.p;……..…….xx++; } 编制函数select( ),其功能是从三个进程中选择优先级最高的进程,并将其状态设置为运行,其余设置为等待。并返回运行进程的序号供主程序选择运行。编制函数int prime (int n),功能是判断n是否为素数,如果是素数,返回n;否则返回0。该函数是三个进程的执行过程。主程序框架如下:main ( ){ int a[3]={100,100,100}; int I, j, k, u, v, w=0, x=0, y=0; char c; /*获得时钟中断向量*/ /*设置新的中断向量*/ ………..while(xx300) /*xx是全局变量,用于记录时钟中断的次数;用循环来模拟三个进程的运行过程*/ {u=select ( ); /*调度一次*/switch (u){case0: a[0]++; if(a[0]10000) a[0]=100; v=prime(a[0]); if(v) {gotoxy(2,4); printf(“a %6d %6d”, v, w++);} break;case1:…………………..case2:…………………..}}/*恢复时钟中断*/}(二)题目理解说明: 从实验的题目可以看出本次实验的内容是在已经给定的结构上对程序进行补充完善。 通过对已给程序的分析,只需要完成时钟中断处理函数time(),进程选择程序select(),求素数函数prime()以及主函数中switch语句部分的程序编制即可。(三)算法的功能框架流程图Main()Main()Time()Select()CBA中断到达时Prim()选择进程(四)此算法中用到的数据结构:进程实体结构,模拟PCB:struct PRO{char id; /*进程id号 */int pri; //进程优先级int p; /*优先级递增量*/int s; /*优先级递减量*/int status; //进程状态}(五)主要常量变量:INTR:存放中断号1ch的常量Xx:存放中断次数的全局变量Oldhandler:指向原中断处理程序的向量a[3]:对素数进行操作的数组空间(六)主要模块:1.中断处理函数void interrupt time(...)接

文档评论(0)

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

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

1亿VIP精品文档

相关文档