操作系统中常见算法

一、五种进程调度算法

1、时间片轮转调度算法(RR):给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。

2、先来先服务调度算法(FCFS):根据进程到达的先后顺序执行进程,不考虑等待时间和执行时间,会产生饥饿现象。属于非抢占式调度,优点是公平,实现简单;缺点是不利于短作业。

3、优先级调度算法(HPF):在进程等待队列中选择优先级最高的来执行。

4、多级反馈队列调度算法:将时间片轮转与优先级调度相结合,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转。优点是兼顾长短作业,有较好的响应时间,可行性强,适用于各种作业环境。

5、高响应比优先调度算法:根据“响应比=(进程执行时间+进程等待时间)/ 进程执行时间”这个公式得到的响应比来进行调度。高响应比优先算法在等待时间相同的情况下,作业执行的时间越短,响应比越高,满足段任务优先,同时响应比会随着等待时间增加而变大,优先级会提高,能够避免饥饿现象。优点是兼顾长短作业,缺点是计算响应比开销大,适用于批处理系统。

二、五种可变分区存储管理算法

a. 最先适应分配算法。从未分配区的开始位置开始扫描,在找到的第一个能满足长度要求的空闲区上分配存储空间。 
b. 下次适应分配算法。从未分配区上次扫描结束处开始顺序查找,在找到的第一个能满足长度要求的空闲区上分配存储空间。 
c. 最优适应分配算法。扫描整个未分配区,选择能满足用户进程要求的最小分区分配存储空间。 
d. 最坏适应分配算法。扫描整个未分配区,选择能满足用户进程要求的最大分区分配存储空间。 
e. 快速适应分配算法。为经常用到的长度的空闲区设立单独的空闲区链表。

三、页面置换算法

全局页面替换策略(页面替换算法的作用范围是整个系统,不考虑进程的属主): 

a. 最佳页面替换算法(Optimal Replacement, OPT)。 淘汰不再访问的页或者距现在最长时间后才访问的页。 
b. 先进先出页面替换算法(First in First Out Replacement, FIFO)。淘汰在内存中驻留时间最长的页。 
c. 最近最少使用页面替换算法(Least Recently Used Replacement, LRU)。 淘汰最近一段时间内最久未被使用的页面。 
d. 第二次机会页面替换算法(Second Chance Replacement, SCR)。 首先检查FIFO页面队列中的队首,这是最早进入内存的页面,如果其“引用位”为0,那么它最早进入且未被引用,此页被淘汰。如果其“引用位”为1,说明虽然它最早进内存,但最近仍在使用,于是将“引用位”清零,并把这个页面移到队尾,把它看做新调入的页面,再给它一次机会。 
e. 时钟页面替换算法(Clock Policy Replacement, Clock)。与SCR算法思路一致。只是用循环队列来构造页面队列,队列指针指向可能被淘汰的页面。如果队列指针指向的页的“引用位”为1,则将其置为0,同时队列指针指向下一个页。

局部页面替换算法(页面替换算法的作用局限于进程自身,要为进程维护称为工作集的一组页面): 
a. 局部最佳页面替换算法(Local Minimum Replacement, MIN)。 在t时刻时,若页面P在未来(t, t+delta)时间段内未被引用,则它被淘汰。 
b. 工作集置换算法。 在t时刻时,若页面P在未来(t-delta, t)时间段内未被引用,则它被淘汰。 
c. 模拟工作集替换算法。 
d. 缺页频率替换算法

四、磁道(柱面)的搜索定位算法

a. 先来先服务算法(First Come First Server algorithm, FCFS)。 
b. 最短查找时间优先算法: 总是执行查找时间最短的请求。 
c. 扫描算法: 移动臂来回的扫过所有柱面,扫描处遇到I/O请求便进行处理。 
d. 分步扫描算法: 将I/O请求分为长度为N的子队列,按FIFO算法依次处理每个队列,而每个子队列采用扫描算法,处理完一个后再服务下一个队列。 
e. 电梯调度算法

猜你喜欢

转载自blog.csdn.net/u011702479/article/details/82111106
今日推荐