进程调度程序毕业设计(论文)报告.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文档。上传文档
查看更多
课程设计报告 一、课程设计的目的和要求 1、目的 进程调度是处理机管理的核心内容。本设计要求用C语言编写和调试一个简单的进程调度程序。通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。 2、要求 1)进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。 2)每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 3)进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 4)每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 5)就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 6)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 7)重复以上过程,直到所有进程都完成为止。 二、课程设计环境要求 1、硬件环境 联想系列电脑 Intel(R) Pentium(R)Dual CPUGHz 内存1G 2、软件环境 Microsoft Windows Xp Professional版本2002 装有Turbo C2.0软件 三、设计任务介绍及系统需求分析 1、设计任务的介绍 根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言编写程序代码,然后进行上机调试、修改、进行连接、测试,写出设计总结报告。 2、系统需求分析 在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度(又称高级调度或长程调度)和进程调度(又称低级调度或短程调度)两个过程后方能获得处理机;对于终端型作业,则通常只需经过进程调度即可获得处理机。在较完善的操作系统中,为提高内存的利用率,往往还设置了中级调度(又称中程调度)。对于上述的每一级调度,又都可采用不同的调度方式和调度算法。 在本程序设计中要掌握的是进程调度的其中两种调度算法的应用。一个是最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),另一个是先来先服务算法。 最高优先数优先调度算法(即把处理机分配给优先数最高的进程)的基本思想是把分配给就绪队列中优先数最高的进程。采用动态优先数,即优先数在创建进程时给定一个初始值,当进程获得一次后其优先数就减少1、概要设计 b.先来先服务调度算法: 2、数据结构设计 (1)最高优先数优先调度算法: typedef struct pcb /*定义结构体数组,内部包含进程的信息*/ { char name[10]; /*定义进程名*/ int super; /*定义到达时间*/ int needtime; /*定义进程需要运行的时间*/ int runtime; /*定义进程已用CPU时间*/ char state; /*定义进程的运行状态*/ struct pcb* link; /*进程块的后继指针,用于连接进程队列*/ }PCB; (2)先来先服务调度算法: typedef struct pcb /*定义结构体数组,内部包含进程的信息*/ { char name[10]; /*定义进程名*/ int arrivetime; /*定义到达时间*/ int needtime; /*定义进程需要运行的时间*/ int runtime; /*定义进程已用CPU时间*/ char state; /*定义进程的运行状态*/ struct pcb* link; /*进程块的后继指针,用于连接进程队列*/ }PCB; 3、函数功能描述 (1)最高优先数优先调度算法: a.main()主函数:

文档评论(0)

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

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

1亿VIP精品文档

相关文档