操作系统中磁盘调度算法详解
磁盘调度算法
(1)先来先服务
(2)最短寻道时间优先
(3)电梯算法
(4)单向扫描调度算法
(1) 磁盘调度
当多个访盘请求在等待时,采用一定的策略,对这些请求的服务顺序调整安排,旨在降低平均磁盘服务时
间,达到公平、高效。
公平:一个I/0请求在有限时间内满足
高效:减少设备机械运动所带来的时间浪费
(2)磁盘调度考虑的问题:
一次访盘时间 =寻道时间+旋转延迟时间+存取时间
-减少寻道时间
-减少延迟时间
(3)磁盘调度算法
先来先服务:
:按访问请求到达的先后次序服务
优点:简单,公平;
缺点:
效率不高,相临两次请求可能会造成最内到
最外的柱面寻道,使磁头反复移动,增加了服务时间,
对机械也不利。
假设磁盘访问序列:
假设磁盘访问序列: 98,183, 37, 122, 14,124, 65,67
读写头起始位置: 53
访问顺序:
(53),98, 183, 37, 122,14, 124,65, 67
安排磁头服务序列
计算磁头移动总距离(道数)
最短寻道时间优先:
优先选择距当前磁头最近的访
问请求进行服务,主要考虑寻道优先.
优点:改善了磁盘平均服务时间;
缺点:造成某些访问请求长期等待得不到服务
假设磁盘访问序列: 98, 183, 37, 122, 14, 124,65, 67
读写头起始位置: 53
访问顺序: (53) ,65, 67,37, 14, 98, 122,124,183
电梯算法:
克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。
具体做法:
-当设备无访问请求时,磁头不动;当有访问请求时,
磁头按一个方向移动,在移动过程中对遇到的访问请求
进行服务,然后判断该方向上是否还有访问请求,如果
有则继续扫描;否则改变移动方向,并为经过的访问请
求服务,如此反复
假设磁盘访问序列: 98, 183, 37, 122,14,124,65, 67
读写头起始位置: 53
访问顺序(向大号移动) :
(53) , 65, 67, 98, 122, 124,183,37, 14
总道数: 299
访问顺序(向小号移动) :
(53) ,37, 14, 65,67, 98,122, 124, 183
总道数:208
单向扫描调度算法:
总是从0号磁道开始向里扫描
按照各自所要访问的磁道位置的次序去选择访问者
移动臂到达最后个一个磁道后,立即带动读写磁头
快速返回到0号磁道
返回时不为任何的等待访问者服务
返回后可再次进行扫描
假设磁盘访问序列: 98, 183, 37, 122, 14,124, 65, 67
读写头起始位置: 53
访问顺序: (53) ,65, 67, 98,122, 124, 183,(0) ,14, 37
操作系统中磁盘调度算法详解相关推荐
- 操作系统中的虚拟内存详解
https://blog.csdn.net/dan15188387481/article/details/49536317 操作系统中的内存管理技术是十分复杂的.现在的操作系统基本都使用逻辑地址和物理 ...
- 操作系统中的概念详解
文章目录 前言 一.操作系统的基础概念介绍 1.并行与并发 2.用户态与内核态 3.执行流 二.内存管理 1.Java程序员眼中的内存 2.线性地址和物理地址 3.进程间通信 三.研究操作系统实现时, ...
- 操作系统之银行家算法—详解流程及案例数据
操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...
- 网络IO和磁盘IO详解
网络IO和磁盘IO详解 1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O.在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓 ...
- linux磁盘分区什么意思,linux 磁盘分区详解
<linux 磁盘分区详解>由会员分享,可在线阅读,更多相关<linux 磁盘分区详解(31页珍藏版)>请在人人文库网上搜索. 1.系统引导过程和硬盘分区结构讨论作者:章节来源 ...
- 处理机调度算法详解----作业调度
处理机调度算法详解----作业调度 在之前的理论篇中,我们也介绍了处理机调度的层次,不同的操作系统也会根据自己的设计目标来配置不同层次的调度算法,并且因为调度算法众多,如果全部糅杂在一起来讲,会让 ...
- python中的GIL详解
python中的GIL详解 参考Python-- GIL 锁简述 GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就 ...
- Linux操作系统上lsof命令详解
Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...
- oracle数据库中索值,Oracle数据库中的索引详解
Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...
最新文章
- 计算机技术在职研究生学校,计算机技术在职研究生招生2020
- NYOJ 659 判断三角形
- Web前端求职时都会被问到的Redis面试题分享
- 2能不用cuda_洗洁精不用花钱买,自己在家2毛钱能做一大瓶,效果比买的还好!...
- layui的table实现,strust2+layui+jsp
- Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)
- process id linux,userdel:user* is currently used by process id
- pickle.dump()和pickle.load()进行文件操作
- java.lang.Exception: Test class should have exactly one public constructor
- cvFloodFill() 漫水填充算法
- 东北大学金工实习理论考试重点
- 怎么确定服务器是否支持ipmi,如何获取服务器的IPMI地址?
- 什么是线性同余法c语言,C语言线性同余法产生随机数
- GreenSock (TweenMax) 动画案例(一)
- mac用什么软件测试硬盘好坏,Mac怎么测试硬盘速度?
- 打印机可以打印不能扫描怎么弄_惠普打印机可以复印不能扫描怎么操作
- android app隐藏图标不见了,Android 10如何隐藏应用图标
- 使用乘法表计算GF(2^8)中的乘法
- 为什么五笔输入法打字那么快,现在使用的人却越来越少了?
- storyboard(故事版)新手教程 图文详解 2.为无约束的故事版添加约束