logo资料库

进程调度程序设计—课程设计.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
实验项目名称:进程调度程序设计 实验学时: 同组学生姓名: 实验日期: 批改教师: 实验地点: 实验成绩: 批改时间:
一、 课程设计目的 进程调度是处理机管理的核心内容。本设计要求用 C 语言编写和调试一个进程调度程 序。通过设计本程序可以通过本课程设计可以达成如下目标: 1、深刻理解进程与进程控制块的关系,进程控制块的组成; 2、深刻理解进程的组织方法; 3、掌握调度算法和先来先服务进程调度算法 4、锻炼独立分析问题、解决问题的能力; 二、 课程设计任务、要求: 任务:设计一个单处理机多任务环境下的优先数高者优先进程调度程序,具体如下: 1.进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的 进程)和先来先服务算法。 2.每个进程有一个进程控制块( PCB)表示。进程控制块至少包含如下信息:进程名、 优先数、到达时间、需要运行时间、已用 CPU 时间、进程状态等等。 3.进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程 的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 4.每个进程的状态可以是就绪 W(Wait)、运行 R(Run)、或完成 F(Finish)三种状 态之一。 5.就绪进程获得 CPU 后都只能运行一个时间片。用已占用 CPU 时间加 1 来表示。如 果运行一个时间片后,进程的已占用 CPU 时间已达到所需要的运行时间,则撤消该进程, 如果运行一个时间片后进程的已占用 CPU 时间还未达所需要的运行时间,也就是进程还需 要继续运行,此时应将进程的优先数减 1(即降低一级),然后把它插入就绪队列等待 CPU。 6.每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便 进行检查。 7.重复以上过程,直到所要进程都完成为止。 要求:每人独立完成设计,要求程序结构清晰,功能完备,代码可读性好。 三、 设计方法: 1、对进程调度程序的功能进行分析,根据功能将其分解成多个子模块; 2、设计并给出主控模块程序流程图及各子模块程序流程图; 3、根据流程图编制主程序代码及各子程序代码。 4、设计完成后,进行运行调试。 5、程序运行成功后,进行某些功能测试,选择有实用性、特殊性的数据进行录入调试, 使设计进一步得到改进并完善。 6、打印出程序运行结果,并对结果进行分析,验证程序设计的正确性。 1
四、 概要设计 主控模块程序流程图: 五、 详细设计 1.进程调度程序的模块及功能 1)模块:根据需要将该进程调度算法设计分为一个主模块(main())与七个子 模块(sort()、input()、space()、disp()、check()、running()以及 destroy()) 2)各子模块流程图及功能: 各子模块功能: sort() input() 建立进程控制块函数 int space() 计算进程的数量 disp(PCB * pr)建立进程显示函数,用于显示当前进程 check() 建立进程查看函数 destroy() 建立进程撤消函数(进程运行结束,撤消进程) running() 建立进程就绪函数(进程运行时间到,置就绪状态 建立对进程进行优先级排列函数
流程图: 子模块 Input(): 子模块 Sort(): 子模块 Space(): 3
子模块 Check(): 子模块 Disp(): 子模块 Running(): 4
子模块 Destroy(): 六、 调试与测试 5
6
7
分享到:
收藏