《操作系统原》课程设计.docVIP

  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文档。上传文档
查看更多
《操作系统原》课程设计

《操作系统原理》课程设计 课题名称:进程调度算法 姓 名: 班 级: 学 号: 课程设计起止时间:2005年1月2日——2005年1月7日 指导教师: 成绩: 课程设计任务书 《操作系统原理》课程设计任务书(同学填写) 设计题目:进程调度算法 任务下达时间:2005年1月2日 任务完成时间:2005年1月7日 指导教师: 指导教师评语(教师填写) 一、所得结果: 二、存在问题: 成绩 评阅人 进程调度算法 一、设计说明 该程序实现了进程的创建,且对该进程队列进行动态优先权抢占式和时间片轮转算法的调度。 二、详细设计 1. 流程图 开 始 开 始 select select 选择a 选择a num num 选择b 选择b num num 选择1选择1 选择1 选择1 创建进程创建进程 创建进程 创建进程 执行动态优先权算法选择2选择2执行时间片算法 执行动态优先权算法 选择2 选择2 执行时间片算法 退出选择3选择3退出 退出 选择3 选择3 退出 结 束 结 束 2. 程序运行环境 Turbo C 2.0 3. 变量的名称、作用及含义说明 链表结构process,整型变量name表示进程名称,整型变量prior表示优先数,整型变量needtime表示需要执行时间,整型变量CPUtime表示CPU执行时间,整型变量runtime表示进程执行时间,整型变量state表示运行状态(1:ready, 2:execute, 3:finish)。 4. 各主要模块的功能表述 [ 子函数 ] ① Createp() 用来创建新进程,其中的整型变量n表示需要创建的进程个数; ② PrintP1(h) 用来打印输出时间片轮转算法的创建进程和运行进程的各变量值; ③ Finish(h) 用来判断某个进程是否执行完; ④ Find(h) 用来查找该进程队列中优先数最大的进程; ⑤ PrintP2(h) 用来打印输出动态优先权抢占式算法的创建进程和运行进程的各变量值; ⑥ ExecuteP_prio(h) 执行动态优先权抢占式进程调度算法; ⑦ ExecuteP_time(h) 执行时间片轮转进程调度算法; [ 主函数 ] main()中使用字符变量select表示a和b中的一个字母,整型变量num表示1至3中的一个数,用双层switch语句实现各模块功能。 5. 程序源代码 #includestdio.h #includeconio.h #includestdlib.h #includedos.h #define NULL 0 #define Max_Pri 100 struct Process { int name; int prio; int needtime; int piecetime; int CPUtime; int runtime; int state; struct Process *next; }; typedef struct Process process; /**************************************/ process *CreateP() { process *h,*t,*p; int i,a; int ct=0; for(i=0;i5;i++) { t=(process *)malloc(sizeof(process)); printf(\n Enter the name of process:); scanf(%d,a); printf(\nEnter the CPUtime of process:); scanf(%d,ct); t-name=a; t-CPUtime=ct; t-runtime=0; t-prio=100-t-CPUtime; t-needtime=t-CPUtime; t-piecetime=t-CPUtime/2+t-CPUtime%2; t-state=1; if(i==0) { h=t; p=t; } else { p-next=t; p=p-next; } } p-next=NULL; return h; } /**************************************/ void PrintP1(process*h) { process*t; t=h; printf(

文档评论(0)

138****7331 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档