- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(时间管理)时间片轮转算
法
壹、实验目的
(1)于单处理器情况下按时间片轮转算法实现处理器调度,输出运行动态
变化过程。
(2)通过算法的实现加深了解处理器调度的工作。
二、实验内容
输入实现处理器调度的几个进程信息,任意确定壹组 “要求运行时间”,启
动所设计的处理器调度程序,显示逐次被选中进程的进程名以及进程控制块的
态变化过程。
三、 实验步骤
1 、任务分析:
时间片轮转的主要思想就是按顺序为每壹个进程壹次只分配壹个时间片的时间。
算法要完成的功能就是将各个进程按照时间片轮转运行的动态过程显示出来。时
间片轮转算法的主要实现过程是首先为每壹个进程创建壹个进程控制块,定义数
据结构,说明进程控制块所包含的内容,有进程名、进程所需运行时间、已运行
时间和进程的状态以及指针的信息。实现的过程即运用指针指向某壹个进程,判
断当前的进程是否是就绪状态 “r”,如果是,则为该进程分配壹个时间片,同时,
已运行时间加壹且要求运行的时间减壹,如此循环执行,当某壹个进程的所需要
运行的时间减少至 0 时,则将该进程的状态设置为 “e”。然后,将指针指向下壹
个未运行完成的进程,重复判断,直至所有的进程均运行结束。
2 、概要设计:
(1)所用数据结构及符号说明
typedefstructPCB{
charname[10];//进程名
structPCB*next;//循环链指针
intneed_time;//要求运行时间
intworked_time;//已运行时间,初始为0
charcondition;//进程状态,只有“就绪”和“结束”俩种状态
intflag;//进程结束标志,用于输出
}PCB;
PCB*front,*rear;//循环链队列的头指针和尾指针
intN;//N 为进程数
(2)主程序的流程图:
开始
输入进程数 N
为每个进程创建 PCB 并初
始化形成一个循环链队列
Y
运行时间+1 且剩余时间
-1
Y
将进程状态置为 ’e’ (完成)
N
所有进程是否完成
Y
结束
(3)程序说明:处理器调度总是选择指针指示的进程运行。由于本实验是
模拟处理器调度的功能,所以,对被选中的进程且不实际的启动运行,而是执行:
已运行时间+1 来模拟进程的壹次运行,表示进程已经运行过壹个单位的时间。
3 、详细设计
(1)首先每壹个进程用壹个进程控制块PCB 来代表。进程控制块的格式为:
进程名
指针
要求运行时间
已运行时间
状态
其中,进程名——作为进程的标识,如 Q1 、Q2 等。
指针——进程按顺序排成循环链队列,用指针指出下壹个进程的进程控制块
的首地址,最后壹个进程的指针指出第壹个进程的进程控制块首地址。
要求运行时间——假设进程需要运行的单位时间数。
已运行时间——假设进程已经运行的单位时间数,初始值为“0”。
状态——有俩种状态, “就绪”和 “结束” ,初始状态均为 “就绪” ,用
“R”表示。当壹个进程运行结束后,它的状态为“结束”,用“E”表示。
(2)每次运行所设计的处理器调度程序前,为每个进程任意确定它的 “要
求运行时间”。
把五个进程按顺序排成循环链
文档评论(0)