进程调度算法
- 先来先服务调度算法:每次从就绪队列选择最先进⼊队列的进程,然后⼀直运⾏,直到进程退出或被阻塞,才会继续从队列中选择第⼀个进程接着运⾏。
- 最短作业优先调度算法:优先选择运⾏时间最短的进程来运行。
- 高响应比优先调度算法:权衡短作业和长作业,计算响应比优先级,将响应比优先级高的进程先投入运行。 优先权 = (等待时间+要求服务时间)/ 要求服务时间
- 时间片轮转调度算法:每个进程都被分配一个时间段,称为时间片,允许进程在该时间片中运行。时间片长度一般为20ms~50ms.
- 最高优先级调度算法:对于多用户计算机系统,希望能从就绪队列中选择最高优先级的进程运行。静态优先级和动态优先级。
- 多级反馈队列调度算法:时间片轮转和最高优先级算法的综合发展。
内存页面置换算法
缺页异常:缺页中断,在指令执行中产生和处理中断,中断返回后到该指令的开始处重新执行。
功能:当出现缺页异常时,需要调入新页面,但是此时内存已满时,选择被置换的物理页面(选择一个物理页面换出到磁盘,然后把需要访问的页面换入到物理页)
- 最佳页面置换算法(OPT):置换在未来最长时间不访问的页面。
- 先进先出置换算法(FIFO):选择在内存驻留时间很长的页面进行置换。
- 最近最久未使用的置换算法(LRU):发生缺页时,选择最长时间没有被访问的页面进行置换。
- 时钟页面置换算法(Lock):把所有的页面都保存在一个类似钟面的环形链表中,一个表指针指向最老的页面,当发生缺页中断时,首先检查表指针指向的页面,当它访问位是0时,就淘汰该页面,并把性的页面插入这个位置,并将表指针前移动一个位置;如果访问位是1就清除访问微,并把表指针前移动一个位置,重复这个过程,直到找到一个访问位为0的页面为止。
- 最不常用算法(LFU):发生缺页中断时,选择访问次数最少的那个页面,并将其淘汰。
磁盘调度算法
目的:提高磁盘的访问性能
- 先来先去服务:先到来的请求,先被服务。
- 最短寻道时间优先:优先选择从当前磁头位置所需寻道时间最短的请求。【可能会产生饥饿:磁头在小区域来回移动】
- 扫描算法(scan):磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向
- 循环扫描算法(c-scan):只有磁头朝着某个特定方向移动是,才处理磁道访问请求,而返回时直接快速移动至最靠边缘的磁道,返回时不处理任何请求。【只响应一个方向的请求】
- LOOK与C-LOOK算法:优化的地方是磁头在移动到最远的请求位置,然后立即反向移动。【反向移动的途中不响应请求】Look是scan的优化,c-look是c-scan的优化。