大纲
进程调度算法(CPU调度算法)
- 先来先服务调度算法
- 最短作业优先调度算法
- 高响应比优先调度算法
- 时间片轮转调度算法
- 最高优先级调度算法
页面置换算法
- 最佳页面置换算法
- 先进先出置换算法
- 最近最久未使用的置换算法
- 时钟页面置换算法
- 最不常用置换算法
磁盘调度算法
- 先来先服务算法
- 最短寻道时间优先算法
- 扫描算法(电梯调度算法)
- 循环扫描算法
- LOOK与C-LOOK算法
进程调度算法(CPU调度算法)
- 先来先服务调度算法
每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。
- 最短作业优先调度算法
优先选择运行时间最短的进程来运行,这有助于提高系统的吞吐量。
- 高响应比优先调度算法
每次进行进程调度时,先计算「响应比优先级」,然后把「响应比优先级」最高的进程投入运行.
优先权=(等待时间+要求服务时间)/要求服务时间
- 时间片轮转调度算法
每个进程被分配一个时间段,称为时间片(Quantum),即允许该进程在该时间段中运行。
- 最高优先级调度算法
从就绪队列中选择最高优先级的进程进行运行
1.静态优先级:创建进程时候,就已经确定了优先级了,然后整个运行时间优先级都不会变化;
2.动态优先级:根据进程的动态变化调整优先级,比如如果进程运行时间增加,则降低其优先级,如果进程等待时间(就绪队列的等待时间)增加,则升高其优先级,也就是随着时间的推移增加等待进程的优先级。
页面置换算法
缺页中断:
当 CPU 访问的页面不在物理内存时,便会产生一个缺页中断,请求操作系统将所缺页调入到物理内存。
找不到空闲页的话,就说明此时内存已满了,这时候,就需要「页面置换算法」选择一个物理页,如果该物理页有被修改过(脏页),则把它换出到磁盘,然后把该被置换出去的页表项的状态改成「无效的」,最后把正在访问的页面装入到这个物理页中。
- 最佳页面置换算法
最佳页面置换算法基本思路是,置换在「未来」最长时间不访问的页面。
但是实际系统中无法实现,因为程序访问页面时是动态的,我们是无法预知每个页面在「下一次」访问前的等待时间。
所以,最佳页面置换算法作用是为了衡量你的算法的效率,你的算法效率越接近该算法的效率,那么说明你的算法是高效的。
- 先进先出置换算法
选择在内存驻留时间很长的页面进行中置换
- 最近最久未使用的置换算法
选择最长时间没有被访问的页面进行置换
- 时钟页面置换算法
- 最不常用置换算法
当发生缺页中断时,选择「访问次数」最少的那个页面,并将其淘汰。
磁盘调度算法
磁盘调度算法的目的很简单,就是为了提高磁盘的访问性能,一般是通过优化磁盘的访问请求顺序来做到的。
- 先来先服务算法
先到来的请求,先被服务。
- 最短寻道时间优先算法
优先选择从当前磁头位置所需寻道时间最短的请求
- 扫描算法(电梯调度算法)
磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向,这就是扫描(Scan)算法。
- 循环扫描算法
只有磁头朝某个特定方向移动时,才处理磁道访问请求,而返回时直接快速移动至最靠边缘的磁道,也就是复位磁头,这个过程是很快的,并且返回中途不处理任何请求,该算法的特点,就是磁道只响应一个方向上的请求。
- LOOK
磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中会响应请求。
- C-LOOK算法
磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中不会响应请求。