收藏 分享(赏)

操作系统课程设计报告进程调度.doc

上传人:精品资料 文档编号:8660641 上传时间:2019-07-07 格式:DOC 页数:26 大小:515.45KB
下载 相关 举报
操作系统课程设计报告进程调度.doc_第1页
第1页 / 共26页
操作系统课程设计报告进程调度.doc_第2页
第2页 / 共26页
操作系统课程设计报告进程调度.doc_第3页
第3页 / 共26页
操作系统课程设计报告进程调度.doc_第4页
第4页 / 共26页
操作系统课程设计报告进程调度.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、前言操作系统(Operating System,简称 OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配

2、资源,如:划分 CPU 时间,内存空间的开辟,调用打印机等。操作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如系统软件和应用软件等。操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。本次课程设计我们将对上学期所学的知识进行系统的应用,而达到巩固知识的作用1目录1 问题概述 22 需求分析

3、23 概要设计 .23.1 主要功能 .23.2 模块功能结构 33.3 软硬件环境 33.4 数据结构设计 .34 详细设计 .44.1“先来先服务(FCFS)调度算法” 44.2“短进程调度算法(SPF)” .64.3“高响应比优先调度算法” 84.4“优先级调度(非抢占式)算法” .105 系统测试及调试 .125.1 测试 .125.2 调试过程中遇到的问题 .136 心得体会 .147 参考文献 .158 附录 .1621 问题概述编写一个进程调度程序,允许多个进程并发执行。采取多种进程调度算法(先来先服务(FCFS)调度算法,短进程调度算法(SPF),高响应比优先调度算法,优先级调

4、度(非抢占式)算法)。分析比较各个算法的优缺点。2 需求分析进程调度的功能是记录系统中所有进程的执行情况、从就绪态队列中选择一个进程,进行进程上下文的切换。采取不同的算法根据外部环境及条件进行进程的切换。3 概要设计3.1 主要功能进程调度的功能是记录系统中所有进程的执行情况、从就绪态队列中选择一个进程,进行进程上下文的切换。采用先来先服务(FCFS)调度算法,短进程调度算法(SPF),高响应比优先调度算法,优先级调度(非抢占式)算法进行进程的切换。33.2 模块功能结构图 3.2 系统结构图3.3 软硬件环境本程序所适用的计算机系统软硬件环境要求为:硬件环境: Pentium III 500

5、 以上 内存:256M 软件环境: Linux Windows 7 应用软件: Dev-C+ 3.4 数据结构设计struct PCB_structchar name10; /进程名称int priority; /优先级 int number; /进程编号float come_T; /到达时间float run_begin_T; /开始运行时间主界面1进程信息输入2先来先服务算法3短进程调度算法4高响应比优先调度算法5优先级调度算法0退出4float run_end_T; /结束运行时间float run_T; /运行时间int order; /运行次序 int run_flag; /调度标志

6、 PCBMAX;4 详细设计4.1“先来先服务(FCFS)调度算法”4.1.1 具体方法 先来先服务算法是按照进程到达先后次序来进行调度。进入该函数后读取每个进程控制块 PCB 中的到达时间 come_T 从 come_T 最早的开始运行,依次运行完毕。记录开始运行时间run_begin_T 和结束运行时间 run_end_T,并记录运行次序。最后调用调度结果输出函数,输出进程信息和平均周转时间和平均带权周转时间。4.1.2 运行结果图 4.1.2“先来先服务调度算法”运行结果图54.1.3 系统流程图图 4.1.3“先来先服务(FCFS)调度算法”64.2“短进程调度算法(SPF )” 4.

7、2.1 具体方法 短进程调度算法是指对短进程优先调度的算法,这里进程的长短是以进程要求运行的时间的长短来衡量。进入该函数后读取每个进程控制块中的到达时间 come_T,选取最早的,若时间相同则选运行时间最短的进程进行调度,记录开始运行时间 run_begin_T 和结束运行时间 run_end_T,并记录运行次序。一个进程运行完成后,在查看在此进程运行时间内到达的进程,选取运行时间最短的运行,依次重复,直至所有进程运行完毕,最后调用调度结果输出函数,输出进程信息和平均周转时间和平均带权周转时间。 4.2.2 运行结果图 4.2.2“短进程调度算法”运行结果图74.2.3 系统流程图图 4.2.

8、3 短进程调度算法(SPF )流程图84.3“高响应比优先调度算法”4.3.1 具体方法 响应比高者进程优先的算法,响应比的定义是指 R=(已等待时间+服务要求时间)/要求服务时间。实际上,高响应比优先调度算法是先来先服务调度算法和短作业优先调度算法的综合调度算法。进入该函数后读取每个进程控制块中的到达时间 come_T,选取最早的,记录开始运行时间 run_begin_T 和结束运行时间run_end_T,并记录运行次序。运行结束后,在查看在此进程运行时间内到达的进程,选取响应比最高的进程运行,依次重复,直至所有进程运行完毕,最后调用调度结果输出函数,输出进程信息和平均周转时间和平均带权周转

9、时间。 4.3.2 运行结果图 4.3.2“高响应比优先调度算法”运行结果图94.3.3 系统流程图图 4.3.3“高响应比优先调度算法”流程图104.4“优先级调度(非抢占式)算法”4.4.1 具体方法 优先级调度算法也成优先权调度算法,本次采用非抢占式优先级算法,在进程输入时确定进程的优先级,数字越大优先级别越高。进入该函数后读取每个进程控制块中的到达时间 come_T,选取最早的,若时间相同则选优先级别高的的进程进行调度,记录开始运行时间 run_begin_T 和结束运行时间 run_end_T,并记录运行次序。一个进程运行完成后,在查看在此进程运行时间内到达的进程,选取优先级别高者的

10、进程运行,依次重复,直至所有进程运行完毕,最后调用调度结果输出函数,输出进程信息和平均周转时间和平均带权周转时间。 114.4.2 执行结果图 4.4.2“优先级调度(非抢占式)算法”运行结果图124.4.3 系统流程图图 4.4.3“优先级调度(非抢占式)算法”流程图135 系统测试及调试 5.1 测试5.1.1 实际测试数据表 5.1.1 实际测试数据5.1.2 预期结果表 5.1.2 预期结果数据5.1.3 实际运行结果表 5.1.3 实际运行结果数据145.1.4 测试结论分析在这组测试数据中,当进程采用短进程调度优先时,平均带全周转时间最短,效率最好。但由于进程的数据不同,我们可以采

11、用不同的调度算法,应视情况而选取最佳的调度算法。5.2 调试过程中遇到的问题5.2.1 算法切换时的参数初始化问题因为该程要实现进程调度中几种主要的算法的调度演示,并计算周转时间进行比较,那么就需要在一组进程上调用不同的算法,并可重复使用该数组。但是当从一个算法转换到另一个算法的时候,涉及到一些关键变量的初始化问题。一开始我并没有注意到这个问题,导致运行下一个算法时,因经过一次调度后,所有进程的状态都为执行完毕,所以第二次以及往后都不能得出正确的结论。经过多次测试后,在每个算法的子函数中加入,状态初始化语句,使得程序能以正常运行,得出正确的数据。5.2.2 输出数据时显示不全且乱输出是开始时做

12、的函数,然而就遇到了挺烦的困难,因为每个进程的数据项多且杂,输出后不挨个对着看根本不知道谁是谁,百度了很多个案例后决定每个数据输出时严格控制格式,采用|将其分隔。使其看上去更加严谨,美观。其实很多小细节也要处理好才能更好体现出这个系统的优点。156 心得体会通过这次课程设计,使我更加扎实的掌握了有关操作系统方面的知识,特别是进程以及各种调度算法。进程调度虽然是在系统内部的低级调度,但进程调度的优劣直接影响作业调度的性能。反映作业调度优劣的周转时间和平均周转时间只在某种程度上反映了进程调度的性能,例如,其执行时间部分中实际上包含有进程等待(包括就绪状态时的等待)时间,而进程等待时间的多少是要依靠

13、进程调度策略和等待事件何时发生等来决定的。因此,进程调度性能的商量是操作系统设计的一个重要指标。所以进程调度的重要性也是不可忽视的。这次的课程设计从选题到完成程序到最后写出课设报告,中间遇到了很多大大小小的问题,但是经过多方努力都得以解决,虽然它并不是一个完善的系统,还存在着这样那样的问题,但是已经进我的努力去完善它。遇到问题时一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事。最后,感谢老师的帮助及悉心的指导,感谢同学们的相互帮助,没有他们我自己也不可能完成此次在项目中的任务,更加让我明白了一个团队的重要性,以及个人力量

14、的单薄。总而言之,还是谢谢大家的互帮互助,而完成这个项目,完成这次课设!167 参考文献1王红.操作系统原理及应用Linux.第二版.北京:中国水利水电出版社,2005.2王红.操作系统实训(Linux)习题解答、例题解析、实验指导.第二版.北京:中国水利水电出版社,2008.3孟静.操作系统原理教程.北京:清华大学出版社,2000.4周苏、金海溶. 操作系统原理实验.北京: 科学出版社,2000.178 附录 #include#include#includeusing namespace std; /这样命名空间 std 内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。#d

15、efine MAX 10struct PCB_structchar name10; /进程名称int number; /进程编号int priority; /优先级 float come_T; /到达时间float run_begin_T; /开始运行时间float run_end_T; /开始结束时间float run_T; /运行时间int order; /运行次序 int run_flag; /调度标志 PCBMAX,pcb; int counter; /实际生成进程个数 void FCFS(); /先来先服务算法 void SPF(); /短进程调度算法void HRRN(); /高响

16、应比优先调度算法 void PRI(); /优先级调度(非抢占式)算法 void Input(); /进程输入 void Output(); /调度结果输出 int main(void)int option;while(1)printf(“nn *进程调度管理*“); printf(“nn *1 进程信息输入 “);printf(“nn *2 采用 先来先服务算法 进行进程调度 并输出“);printf(“nn *3 采用 短进程调度算法 进行进程调度 并输出“);printf(“nn *4 采用 高响应比优先调度算法 进行进程调度 并输出“);18printf(“nn *5 采用 优先级调度

17、(非抢占式)算法 进行进程调度 并输出 “);printf(“nn *0 退出 “);printf(“nn 请选择:“);scanf(“%d“,switch(option)case 0:printf(“运行结束,再见“);exit(0);break;case 1:Input();break;case 2:printf(“n *对进程按先来先服务调度:nn“);FCFS();Output();break;case 3:printf(“n *对进程按短进程调度:nn“);SPF();Output();break;case 4:printf(“n *对进程按高响应比优先调度:nn“);HRRN();

18、Output();break;case 5:printf(“n *对进程按优先级调度(非抢占式)调度:nn“);PRI();Output();break;default:printf(“n *输入错误! 请重新输入: “); void Input()19int i;printf(“n *请输入即将运行的进程的个数:“);scanf(“%d“,for(i=0;iPCBj+e_T)pcb=PCBj;PCBj=PCBj+1;PCBj+1=pcb; /根据到达时间对进程进行排序 time=0;for(i=0;imax_response_rate) max_response_rate=response_rate;number=j;if(timePCBi.priority)max=PCBj.priority;i=j;j+;/运行第一个进程 number=i;if(timemax)max=PCBj.priority;number=j;PCBnumber.run_begin_T=time;PCBnumber.run_end_T=PCBnumber.run_begin_T+PCBnumber.run_T;PCBnumber.run_flag=1;time=PCBnumber.run_end_T;temp+;PCBnumber.order=temp;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报