操作系统中常用算法总结

操作系统中常用算法总结

一.动态分区分配算法:

1.首次适应算法(最先适应算法):按照分区的先后次序,从头开始查找,找到符合要求的第一个分区
2.循环首次适应算法(下次适应算法):按照分区的先后次序,从上次已分配的分区起查找(到达最后一个分区时再回到开头),以此找到符合要求的第一个分区
3.最佳适应算法:寻找大小与要求相差最小的空闲分区,从个别来看,外碎片较小,但是从整体来看,会形成较多外碎片,较大的空闲分区可以保留
4.最坏适应算法:寻找最大的空闲分区

二.页面置换算法:

1.随机置换算法
2.先进先出算法(FIFO):有Belady现象(分配的页面数增多,缺页率反而提高)
3.最近最久未使用算法(LRU):淘汰最近一段时间较久未被访问的页面
4.时钟页面置换算法(Clock Policy):它是LRU和FIFO算法的折中
5.最佳置换算法(OPT):淘汰“未来不再使用的”或者“离当前最远位置出现的”页面,这是一种理想情况,是实际执行中无法预知的,因而不能实现,可以用做性能评价的依据

三.调度算法

1.先来先服务算法(FCFS):按照作业的先后次序进行调度

最简单的调度算法,对于短作业不利(平均周转时间延长),非抢占式

处理过程:
(1)按照作业提交的先后次序,分配CPU执行;
(2)当前作业占用CPU,直到执行完或阻塞(如申请I/O)让出CPU;
(3)作业被唤醒后(如I/O执行完成),不立即恢复执行,等待当前作业让出CPU后才可恢复执行。

2.短作业优先算法(SJF):按照作业的长短顺序进行调度,短作业优先

对FCFS算法的改进,目的是减少平均周转时间,非抢占式

优点:
(1)相比于FCFS改善平均周转时间和平均带权周转时间;
(2)缩短作业的等待时间;
(3)提高系统的吞吐量。
缺点:
(1)对于长作业不利,可能长时间得不到执行;
(2)难以准确估计作业(进程)的执行时间,从而影响调度性能;
(3)未能依据作业的紧迫程度来划分执行的优先级。

3.最短剩余时间优先(SRT):允许比当前剩余时间更短的进程来抢占

短作业优先算法的变形,也称为抢占式的短作业优先算法,抢占时机为新作业加入队列时

4.最高响应比优先算法(HRRN):从就绪队列中选出响应比最高的作业投入执行

FCFS和SJF的折中

(1)响应比=(等待时间W+要求执行时间T)/(要求执行时间T)
(2)优点:既考虑了短作业,也考虑了先后顺序
(3)缺点:每次调度要调用响应比计算,增加了系统开销

5.基于优先数的调度算法(HPF):用户提交作业时,根据急迫程度规定适当的优先数,作业调度程序根据JCB优先数决定进入内存顺序

欢迎各位批评指正!

猜你喜欢

转载自blog.csdn.net/qq_38233258/article/details/86680840