操作系统常见调度算法一举拿下~

大纲

进程调度算法(CPU调度算法)

  • 先来先服务调度算法
  • 最短作业优先调度算法
  • 高响应比优先调度算法
  • 时间片轮转调度算法
  • 最高优先级调度算法

页面置换算法

  • 最佳页面置换算法
  • 先进先出置换算法
  • 最近最久未使用的置换算法
  • 时钟页面置换算法
  • 最不常用置换算法

磁盘调度算法

  • 先来先服务算法
  • 最短寻道时间优先算法
  • 扫描算法(电梯调度算法)
  • 循环扫描算法
  • LOOK与C-LOOK算法

进程调度算法(CPU调度算法)

  • 先来先服务调度算法

每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。

  • 最短作业优先调度算法

优先选择运行时间最短的进程来运行,这有助于提高系统的吞吐量。

  • 高响应比优先调度算法

每次进行进程调度时,先计算「响应比优先级」,然后把「响应比优先级」最高的进程投入运行.
优先权=(等待时间+要求服务时间)/要求服务时间

  • 时间片轮转调度算法

每个进程被分配一个时间段,称为时间片(Quantum),即允许该进程在该时间段中运行。

  • 最高优先级调度算法

从就绪队列中选择最高优先级的进程进行运行
1.静态优先级:创建进程时候,就已经确定了优先级了,然后整个运行时间优先级都不会变化;
2.动态优先级:根据进程的动态变化调整优先级,比如如果进程运行时间增加,则降低其优先级,如果进程等待时间(就绪队列的等待时间)增加,则升高其优先级,也就是随着时间的推移增加等待进程的优先级。

页面置换算法

缺页中断:
当 CPU 访问的页面不在物理内存时,便会产生一个缺页中断,请求操作系统将所缺页调入到物理内存。

找不到空闲页的话,就说明此时内存已满了,这时候,就需要「页面置换算法」选择一个物理页,如果该物理页有被修改过(脏页),则把它换出到磁盘,然后把该被置换出去的页表项的状态改成「无效的」,最后把正在访问的页面装入到这个物理页中。

  • 最佳页面置换算法

最佳页面置换算法基本思路是,置换在「未来」最长时间不访问的页面。
但是实际系统中无法实现,因为程序访问页面时是动态的,我们是无法预知每个页面在「下一次」访问前的等待时间。
所以,最佳页面置换算法作用是为了衡量你的算法的效率,你的算法效率越接近该算法的效率,那么说明你的算法是高效的。

  • 先进先出置换算法

选择在内存驻留时间很长的页面进行中置换

  • 最近最久未使用的置换算法

选择最长时间没有被访问的页面进行置换

  • 时钟页面置换算法
  • 最不常用置换算法

当发生缺页中断时,选择「访问次数」最少的那个页面,并将其淘汰。

磁盘调度算法

磁盘调度算法的目的很简单,就是为了提高磁盘的访问性能,一般是通过优化磁盘的访问请求顺序来做到的。

  • 先来先服务算法

先到来的请求,先被服务。

  • 最短寻道时间优先算法

优先选择从当前磁头位置所需寻道时间最短的请求

  • 扫描算法(电梯调度算法)

磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向,这就是扫描(Scan)算法。

  • 循环扫描算法

只有磁头朝某个特定方向移动时,才处理磁道访问请求,而返回时直接快速移动至最靠边缘的磁道,也就是复位磁头,这个过程是很快的,并且返回中途不处理任何请求,该算法的特点,就是磁道只响应一个方向上的请求。

  • LOOK

磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中会响应请求。

  • C-LOOK算法

磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中不会响应请求。

猜你喜欢

转载自blog.csdn.net/AIJXB/article/details/115349697