- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
操作系统试验汇报
學生學院计算机學院
专业班级计算机科學与技术3班
學号
學生姓名林虹
指导教師丁国芳
年12月15曰
目录
1试验一進程调度…………………… 1
2试验二银行家算法………………… 16
3试验三動态分辨别配方式的模拟……………… 20
4试验四仿真多种磁盘调度算法…………………..26
试验一進程调度
1.试验目的
编写并调试一种模拟的進程调度程序,分别采用“短進程优先”、“時间片轮转”、“高响应比优先”调度算法對随机产生的五個進程進行调度,并比较算法的平均周转時间。以加深對進程的概念及進程调度算法的理解。
2.试验规定
每個進程由一种進程控制块(PCB)表达,進程控制块可以包括如下信息:進程名、优先数(响应比)、抵达時间、需要运行時间(進程的長度)、已运行時间、進程状态等等(可以根据需要自已设定)。
由程序自動生成進程(包括需要的数据,要注意数据的合理范围),第一种進程抵达時间從0開始,其他進程抵达時间随机产生。
采用時间片轮转调度算法時,進程的运行時间以時间片為單位進行计算。
每個進程的状态可以是就绪W(Wait)、运行R(Run)、或完毕F(Finish)三种状态之一。
每進行一次调度,程序都要输出一次运行成果:正在运行的進程、就绪队列中的進程、完毕的進程以及各個進程的PCB,以便進行检查。
最终计算各调度算法的平均周转時间,并進行比较、分析。
3.试验内容
a.算法原理
(1)短進程优先调度算法
“短進程优先”调度算法的基本思想是把CPU分派給就绪队列中需要時间最短的進 程。
(2)時间片轮转算法
将系统中所有的就绪進程按照FCFS原则,排成一种队列。每次调度時将CPU 分派給队首進程,让其执行一种時间片。時间片的長度從几种ms到几百ms。在一种時 间片結束時,发生時钟中断。调度程序据此暂停目前進程的执行,将其送到就绪队列的 末尾,并通過上下文切换执行目前的队首進程。進程可以未使用完一种時间片,就出让 CPU。
(3)高响应比优先算法
HRRN调度方略同步考虑每個作业的等待時间長短和估计需要的执行時间長短,從中选出响应比最高的作业投入执行。
每個作业完毕後要打印该作业的開始运行時刻、完毕時刻、周转時间和带权周转時间,這一组作业完毕後要计算并打印這组作业的平均周转時间、带权平均周转時间。
b.程序流程图
c.重要数据构造
d.各程序阐明及关系
1.voidinput()输入進程函数
2.voidprint()打印進程函数
3.intmain()主函数调用
4.各函数代码
voidSJF()短進程优先函数
e运行成果截图
voidRR()短進程优先函数
运行成果截图
voidHRRN()高响应比优先函数
程序运行成果
4.成果分析与试验小結
作业调度本质与進程调度类似,不過多道的话,就要多考虑空间的容量了。單道的状况就不作分析了,對于多道调度,要考虑清晰,什么時候可以接纳新的作业進来;對于給定的空间来說,一次能让作业同步执行的数量应當是多少;根据算法,应當按照怎么样的先後次序选择等待的作业……
逐渐分析後,對于非抢占的CPU,一旦作业進入了执行状态,它的結束時间也就定了下来,一旦有作业結束,就會释放空间,释放之後就能立即选择新的作业進来。根据不一样算法,對等待队列也有不一样的排序成果,無论怎样,都按先後次序放入队列中,因此每次选择的時候,都要遍历一遍所有等待中的進程,假如這個作业满足空间需求,则放入CPU中执行,同步更新結束時间,否则则跳過這個作业,判断下一种作业,直到問询完所有等待的作业為止。不停反复上面的环节,直到所有的作业都执行完
因此模拟的時候,分别開了一种运行队列和一种等待队列,运行队列作為判断有哪個作业已經执行結束。
通過這個试验,對操作系统的作业调度已經有了更深一层的理解了,望後来能再接再厉。
试验二银行家算法
1.试验目的
用银行家算法防止死锁,实現系统合理分派资源,加深對進程同步及死锁理解。
2.试验规定
假定系统有3类资源A(10個)、B(15個)、C(12個),系有5個進程并发执行,進程调度采用時间片轮转调度算法。
每個進程由一种進程控制块(PCB)表达,進程控制块可以包括如下信息:進程名、需要的资源總数、已分派的资源数
文档评论(0)