如题:2020年8月
分析:
课本已经顺完一遍了,还剩78天了,加油
看到此题,还是有些懵,什么是周转时间?是不是就是运行时间呢?另一个疑问是题目告诉是从0时刻同时进入就绪,没有说是到底是哪个先来的,这个如何处理?
1、周转时间的概念?P108
从一个批处理进程提交时刻开始直到该进程完成时刻为止的统计平均时间。“小就是好的”。周转时间体现的是性能。所以不是运行时间,提交时间题目说了,都是从0时刻开始
2、关于进程调度算法???
先来先服务: First-Come Fist-Served(FCFS)
进程按照请求处理器的顺序使用处理器。进入系统后,立即开始,运行它所期望的运行时间,不会中断该进程。其他进程安排到队尾。
知道这些第一问就可以填上了。还要明白,哪个先来的问题?一般按题目给出的顺序就行,这其实不是考察的重点。
开始时间与提交时间是不一样的,开始时间 等同于 响应时间(进程未运行到下次被选中运行的时间间隔,响应时间体现了交互性,响应时间越短,交互性越好),所以开始时间可以认为是上一个进程的完成时间。
完成时间=开始时间+执行时间(这个好理解)
周转时间:根据定义是从提交时间(题目给出都是从0开始)到完成时间总时间,当前进程的周转时间其实就是完成时间
平均周转时间:各进程周转时间之和 / 等待进程的个数
执行时间 | 优先级数 | 开始时间 | 完成时间 | 周转时间 | 平均周转时间 | |
P1 | 5 | 3 | 0 | 5 | 5 | 5 |
P2 | 7 | 2 | 5 | 5+7=12 | 12 | 17/2=8.5 |
P3 | 3 | 1 | 12 | 12+3=15 | 15 | 32/3=10.67 |
P4 | 8 | 4 | 15 | 23 | 23 | 13.75 |
P5 | 10 | 5 | 23 | 33 | 33 | 17.6 |
最高优先级算法:Highest Priority First(HPF)
每次把处理机分配给就绪队列中优先级最高的进程。第一问,可以说与优先级无关,第二问就得依优先级的高低来运行了。还是按照上面给出的计算方法填就可以。
执行时间 | 优先级数 | 开始时间 | 完成时间 | 周转时间 | 平均周转时间 | |
P1 | 5 | 3 | 10 | 15 | 15 | 10.3 |
P2 | 7 | 2 | 3 | 10 | 13 | 8 |
P3 | 3 | 1 | 0 | 3 | 3 | 3 |
P4 | 8 | 4 | 15 | 23 | 23 | 13.25 |
P5 | 10 | 5 | 23 | 33 | 33 | 17.4 |
其他书中所涉及的算法:
短进程优先算法:Shortest Job First(SJF):
从就绪队列中选出一个估计运行时间最短的进程,反处理机分配给它。
最短剩余时间优先算法:Shortest Remaining Time Next (SRTN)
上个算法的抢占式版本,总是选择其剩余运行时间最短的那个进程运行。
最高响应比优先算法(Highest Respinse Rate First HRRF):
介于先来先服务和最短进程优先算法的折中算法。能较好的适应长短进程混合的系统,使得调度性能指标趋于合理。
原理:每次都选择响应比最高的进程投入运行。
简化一下:响应比 = 1 + 等待时间/预计运行时间。
注意:当一个选择的进程运行完成,其他未运行的程序的等待时间会发生变化,需要重新计算响应比。
轮转算法:Round-Robin (RR):
即嵌入式或单片机常用的时间片轮转思想是一样的,诸进程轮流运行一个时间片。
多级反馈队列算法:
综合了先进先出、时间片轮转和可抢占式最高优先级算法的一种调度算法。
思想要点:
1、设置了调度队列:按优先级别设置若干个就绪队列。不同的优先级队列有不同的时间片
2、同一队列之内有调度原则,按先进先出调度
3、不同队列之间的调度原则。总是先调度高一级的队列,高一级队列用完时间片后,进入次一级进程调度。
4、进程优先级调整原则。等待进程唤醒后进入相同优先级队列,若高于正在执行的进程,会发生抢占
总结:了解这些后,这类题型还是相对较容易的,基本就是送分题。
扩展:
衡量进程处理的三个指标:吞吐量、周转时间、处理器利用率。
吞吐量:系统每小时完成的进程数量