操作系统-磁盘调度算法
2021/10/22 1:40:51
本文主要是介绍操作系统-磁盘调度算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、一次磁盘读写所需要的的时间
以机械硬盘为例,一次磁盘读写所需要的的时间由三部分组成:寻道时间、延迟时间、传输时间。
- 寻道时间:磁头移动到数据所在磁道所需的时间。每个磁道耗时m,总共需要跨越的磁道数n,耗时为Ts = s + m*n.(s为机械臂启动时间)
- 延迟时间:旋转磁头定位到数据所在扇区的时间。设r为磁盘转速,则延迟平均时间为 (1/r)*(1/2)
- 传输时间:从磁盘读出或者写入磁盘所需的时间。设每个磁道上的字节数为N.则所花时间为(1/r)*(b/N)
二、磁盘调度算法
传输时间和延迟时间都与磁盘的转速有关,所以我们无法优化这两个值。不同的磁盘调度算法的寻道时间有很大差异,也就决定了各个磁盘调度算法的优劣。所以磁盘调度算法优化的是寻道时间。
主要有以下几种算法:
2.1 先来先服务(FCFS)
根据服务请求的先后顺序调度
2.2 最短寻找时间优先(SSTF)
优先处理与磁头接近位置的磁道,可以保证每次寻道时间最短,但整体不一定(类似贪心算法,只选择眼前最优解,不考虑整体)
2.3 扫描算法
SSTF算法存在饥饿现象。为了解决这个问题,规定磁头只有移动到最外侧磁道,才可以往内侧移动。这就是扫描算法,也叫电梯算法
2.4 LOOK算法
扫描算法需要到最边上才返回。LOOK算法是为了解决这个问题。如果磁头移动方向上已经没有别的磁道了,可以立即返回。(边移动,边观察)
2.5 循环扫描算法(C-SCAN)
SCAN算法对于磁道各个位置的响应不平均,C-SCAN规定只有磁头朝某个方向移动才处理请求。而返回时直接快速移动到起始端而不进行任何处理请求。
2.6 C-LOOK算法
解决循环扫描算法必须到边上才返回的问题。C-LOOK算法规定如果某个方向上没有要处理的磁道,立即返回另一端的第一个需要被访问的磁道。
这篇关于操作系统-磁盘调度算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法