进程调度算法设计报告材料.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案 精彩文档 操作系统课程设计报告 题目: 进程调度算法 院 系: 信息学院 班 级: 信管11-2 姓 名: 王裕辰 学 号: 1101051024 指导教师: 赵 华 一、概述 本次设计的程序主要功能是模拟CPU的进程调度过程,实现先来先服务调度算法、短作业优先调度算法、非抢占优先权调度算法、时间片轮转法四个进程调度算法,并根据输入的数据和相应的调度算法计算每个进程的调度结果,对四个算法的平均周转时间进行比较和评价。 本程序主要解决的是CPU的四种进程调度算法的评价和比较问题,包括平均周转时间和平均等待时间。通过这四种调度算法的比较,有利于加深对四种算法的理解,使用户能够更好、更快的运用四种调度算法。 二、设计的基本概念和原理 1、基本概念 到达时间:指进程到达CPU的时间点。 服务时间:指进程需要CPU执行的时间长度。 完成时间:指进程执行完成的时间。 周转时间:指进程从到达到执行完成所经过的时间。 带权周转时间:进程的周转时间与服务时间的比值,用于反映长短进程的差别。 平均周转时间:指一个调度算法中所有进程的周转时间的平均值。用于衡量不同调度算法对相同进程的调度性能。 平均带权周转时间:指一个调度算法中所有进程的带权周转时间的平均值。用于比较调度算法对不同进程的调度性能。 2、基本原理 FCFS调度算法 按照进程的到达时间从小到大进行排序,放入就绪队列中,每次调度都是从就绪队列中选择对头的进程进入内存,运行此程序至完成,然后继续从就绪队列中再次调入一个进程,运行,结束。重复上述过程直到就绪队列中所有进程全部运行完成。 SPF调度算法 从就绪队列中选出一个服务时间最短的进程,将其调入内存,将CPU分配给它,使它立即执行并一直执行到完成,然后再从当前就绪队列中选出一个服务时间最短的进程,调入内存执行到完成。重复此过程直到所有进程全部执行完成。 非抢占高优先权优先调度算法 从就绪队列中选出一个优先权最高的进程,将其调入内存,并为其分配CPU,该进程一直执行直至完成。然后再次重复上述过程。 基于时间片的轮转调度算法 将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并执行一个时间片。当执行的时间片用完,调度进程便停止该进程的执行,并将它送往就绪队列的末尾,然后再把CPU分配给就绪队列中新的队首进程,同时也让它执行一个时间片。 三、总体设计 本程序才用了结构化程序设计方法,首先将进程抽象为一个类,用用户所输入的每个进程的信息来把每个对象来初始化。然后分块地调用不同的函数实现不同的调度算法。 本程序包括以下三个模块: 预定义及进程类定义模块 定义程序所用到的头文件和常量。定义进程类的类成员,成员函数以及进程的构造函数和析构函数。 主程序模块 包括以下五个步骤 = 1 \* GB3 ① 选择进程调度算法 = 2 \* GB3 ② 输入进程相关信息 = 3 \* GB3 ③ 调用所选的进程调度算法 = 4 \* GB3 ④ 计算每个进程的完成时间、周转时间、带权周转时间 = 5 \* GB3 ⑤ 输出每个进程的时间参数,计算并输出所选算法的平均周转时间和平均带权周转时间 其它函数模块 定义了四种调度算法和程序中调用的其他函数。 程序流程图: 四、详细设计 每个模块的代码及分析如下: 1、预定义及进程类定义模块 #include stdafx.h #include iostream #include string #include iomanip #define MAX 100 //进程的最大数量 class Process{ private: int arritime,sevtime,finitime,zhtime,sevtime1,priority;//arritime---到达时间,sevtime、sevtime1--服务时间,finitime---完成时间,zhtime---周转时间,priority---优先权 double qtime;// 带权周转时间 public: string pname;// 进程名 Process()//无参构造函数,用于构造对象数组 { arritime=0; sevtime=0; sevtime1=0; finitime=0; zhtime=0; qtime=0; priority=0; } int getarritime(){return arritime;}//返回到达时间 int getsevtime(){return sevtime;}//返回服务时间时间 int getsevtime1()

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档