课程的设计的报告操作系统.docxVIP

  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文档。上传文档
查看更多
操作系统课程设计报告XX大学计算机科学与教育软件学院计算机系 12级计算机专业*班(学号:1200002***)(班内序号:36)2015年1月8日一、设计目的学习完《操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强动手能力。二、设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:两人一组,每组从所给题目中任选一个(如自拟题目,需经指导教师同意),每个学生必须独立完成课程设计,不能相互抄袭,同组者文档不能相同;设计完成后,将所完成的工作交由指导教师检查;要求写出一份详细的设计报告。三、设计内容课题、处理机调度程序:选择一个调度算法,实现处理机调度。设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。四、设计要求1)进程调度算法包括:时间片轮转法,短作业优先算法,动态优先级算法。2)可选择进程数量3)本程序包括三种算法,用C语言实现,执行时在主界面选择算法(可用函数实现)(进程数,运行时间,优先数由随机函数产生)执行,显示结果。五、设计思路及算法思想1、建立循环链。节点情况如下:struct pcb{ char id; //进程标识数 int arrive_time; //进程的到达时间 int run_time; //进程运行时间 int priority; //进程优先级数int finish_time; //进程完成时间int cycling_time; //进程周转时间float right_cycling_time;//带权周转时间int backup_run_time; //备份进程运行时间int back_priority; //备份进程优先级数 struct pcb *next;};注:进程运行在具体调度算法里会改变(减到零),在输出时需要数出运行时间所以要备份。优先级数同理。2、通过循环链循环输出,按具体的算法输出响应的节点。1)程序的总体结构如下图1.0 创建(进程)循环链,初始化循环链(输入进程的相关信息),选择进程调度算法退出,执行所选择的调度算法(输出调度结果),销毁循环链。图1.02)设计实现算法的主要思想如下图1.1设置控制循环条件,进程运行时间不为零,执行进程,该进程运行时间减一(短作业优先法的进程运行时间减至零),控制条件清零,指向下一进程,该进程运行时间为零,控制条件加一。图1.12.1)时间片轮转算法详细设计如下图1.2进程循环占用时间片,当运行时间为0退出循环。图1.22.2)动态优先法详细设计如下图1.3优先级最高的进程用完一个时间片,运行时间减1,优先级加1,再执行优先级最高的进程。图1.32.3)短作业优先法详细设计如下图1.4运行时间最短的进程先执行完,再执行下一个运行时间最短的进程。图1.4六、程序设计的输出结果1)时间片轮转法图1.52)动态优先法图1.63)短作业优先法图1.7七、程序代码#includestdio.h#includemalloc.h#includetime.h#includestdlib.h #define N 5struct pcb{ char id; //进程标识数 int arrive_time; //进程的到达时间 int run_time; //进程运行时间 int priority; //进程优先级数int finish_time; //进程完成时间int cycling_time; //进程周转时间float right_cycling_time;//带权周转时间int backup_run_time; //备份进程运行时间int back_priority; //备份进程优先级数 struct pcb *next;};pcb *creat_process(int); //创建进程void show_pcb(pcb *,int); //输出进程信息void delete_pcb(pcb *);//删除链表void Round_Robin(pcb *,int); //时间片轮转法void Shortest_Job_First(pcb *,int); //短作业优先法vo

文档评论(0)

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

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

1亿VIP精品文档

相关文档