操作系统原理之磁盘调度
首先介绍主要的的四种磁头调度算法
(一)先来先服务算法(FCFS)
1、算法思想:按访问请求到达的先后次序服务。
2、优点:简单,公平。
3、缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。
4、例子:
假设磁盘访问序列:98,183,37,122,14,124,65,67。读写头起始位置:53。求:磁头服务序列和磁头移动总距离(道数)。
由题意和先来先服务算法的思想,得到下图所示的磁头移动轨迹。由此:
磁头服务序列为:98,183,37,122,14,124,65,67
磁头移动总距离=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁道)
(二)最短寻道时间优先算法(SSTF)
1、算法思想:优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。
2、优点:改善了磁盘平均服务时间。
3、缺点:造成某些访问请求长期等待得不到服务。
4、例子:对上例的磁盘访问序列,可得磁头移动的轨迹如下图。请同学自己给出磁头服务序列并计算磁头移动总距离。
(三) 扫描算法(电梯算法)(SCAN)
1、算法思想:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。如下图所示:
扫描算法(电梯算法)的磁头移动轨迹
2、优点:克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。
3、例子:下图是一个示例。请同学自己写出一个可能的磁盘访问序列,并计算磁头移动总距离。
扫描算法图例
(四)单向扫描调度算法(CSCAN)
算法思想:
1、总是从0号柱面开始向里扫描。
2、按照各自所要访问的柱面位置的次序去选择访问者。
3、移动臂到达最后一个柱面后,立即带动读写磁头快速返回到0号柱面。
4、返回时不为任何的等待访问者服务。
5、返回后可再次进行扫描。
下面是作业题目及解法:
1. 若干个等待访问磁盘者依次要访问的柱面为 20,44,40,4,80,12,76,假设每移动一个柱面需要3ms时间,移动臂当前位于40号柱面,磁头正向磁道好增加的方向移动,
请按 FCFS, SSTF, SCAN 算法分别计算为完成上述访问总共花费的寻找时间。
(1)FCFS算法:
移动臂的移动次序为
40 → 20 → 44 → 40 → 4 → 80 → 12 → 76
移动的柱面数 = 20 +24+4+36+76+68+64=292
共花费 3×292=876毫秒
(2)SSTF算法:
移动臂的移动次序为
40 → 44 → 20 → 12 → 4 → 76 → 80
移动的柱面数 = 4+24+8+8+72+4=120
共花费 3×120=360毫秒
(3)SCAN算法:
移动臂的移动次序为
40 → 44 → 76 → 80 → 20 → 12 → 4
移动的柱面数 = 4+32+4+60+8+8=116
共花费 3×116=348毫秒
2.假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘的空闲状态
⑴请说明在上述条件如何进行磁盘块空闲状态的管理。
⑵设某单面磁盘的旋转速度为每分钟6000转,每个磁道有100个扇区,相临磁道间的平均移动的时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号的请求队列为50,90,30,120对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这个扇区点共需要多少时间?需要给出计算过程。
(3)如果将磁盘替换为随机访问的 Flash 半导体存储器(如 U 盘、 SSD 等),是否有比 CSCAN 更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并 说明理由;若无,说明理由。
(1). 2KB = 2*1024*8bit = 16384bit。因此可以使用位图法进行磁盘块空闲状态管理,每1bit表示一个磁盘块是否空闲。
(2). 每分钟6000转,转一圈的时间为0.01s,通过一个扇区的时间为0.0001s。 则平均旋转延迟时间为0.01/2 = 5ms, 平均平均读取时间为0.1ms。
根据CSCAN算法,被访问的磁道号顺序为100 ,120 , 30, 50 , 90,因此,寻道用去的总时间为:(20 + 90 + 20 + 40)* 1ms = 170ms
总共要随机读取四个扇区,用去的时间为:(0.01*0.5 + 0.0001)*4 = 0.0204s = 20.4ms
所以,读完这个扇区点共需要 170ms + 20.4ms = 190.4ms。
(3)采用FCFS调度策略更高效。随机访问的FLASH半导体存储器的物理结构不需要考虑寻道时间和旋转时间延时,可直接按请求的先后顺序执行。
转载于:https://www.cnblogs.com/tjulym/p/5003655.html
操作系统原理之磁盘调度相关推荐
- 操作系统实验4—磁盘调度
操作系统实验4-磁盘调度 文章目录 操作系统实验4-磁盘调度 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个磁盘调度程序,模拟操作系统对磁盘的调度. 实验目的: 本实 ...
- 【2021/7/19更新】【梳理】简明操作系统原理 第十二章 机械硬盘 磁盘I / O的调度(docx)
配套教材: Operating Systems: Three Easy Pieces Remzi H. Arpaci-Dusseau Andrea C. Arpaci-Dusseau Peter Re ...
- 【操作系统原理及Linux实践】 四cpu调度scheduling
课程: 操作系统原理及Linux实践 cpu调度 调度算法 先来先服务算法(FCFS) Round robin 时间片轮转 最短作业优先 优先级调度算法
- 操作系统之磁盘调度——SCAN实例讲解
操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...
- 操作系统磁盘调度_磁盘调度| 操作系统
操作系统磁盘调度 磁盘调度 (Disk Scheduling) One of the major duties of the operating is that, to use the hardwar ...
- 操作系统原理,交互式系统常见的调度算法,时间片轮转RR,虚拟轮转VRR,最高优先级调度,优先级反转问题与应对
操作系统原理,交互式系统常见的调度算法,时间片轮转RR,虚拟轮转VRR,最高优先级调度,优先级反转问题与应对 一.交互式系统中采用的调度算法: 1.时间片轮转调度RR,round robin 2.最高 ...
- 模拟磁盘调度 课程设计(操作系统 C语言)
(乾坤未定,你我皆是黑马!) 期末用了大概一周的时间完成了操作系统的课程设计,本来是随便选的一个题目,(因为上课的时候隐隐约约有点印象)然后仔细研究一下发现里面的算法还是挺简单的!然后额外加了一些附加 ...
- 操作系统----磁盘调度(电梯调度算法)
一.实验内容 模拟电梯调度算法,实现对磁盘的调度. 二.实验目的 磁盘是一种高速.大量旋转型.可直接存取的存储设备.它作为计算机系统的辅助存储器,负担着繁重的输入输出任务,在多道程序设计系统中,往往同 ...
- 计算机四级操作系统原理知识汇总,2015年全国计算机四级《操作系统原理》考试内容...
2015年全国计算机四级<操作系统原理>考试内容 一.操作系统概述 1.操作系统基本概念.特征.分类 2.操作系统主要功能 3.操作系统发展演化过程,典型操作系统 4.操作系统结构设计,典 ...
最新文章
- kdd cup 2019
- Controller类的方法上的RequestMapping一定要写在Controller类里吗?
- 浅谈网络游戏《天龙X部》的文件加密格式
- Sequential 顺序模型和 Model 模型【TensorFlow2入门手册】
- 获取Docker中容器的信息
- python哈夫曼编码注意_Python 算法(2) 哈夫曼编码 Huffman Encoding
- Apache TomEE(和Tomcat)的自签名证书
- C语言的细小知识点整理
- hive(3)HiveQL数据定义
- JAVA_返回一个数值的相反数的几种方式.
- 允许其他网络用户通过此计算机的internet连接来连_「Azure云」什么是Azure虚拟网络?...
- python右对齐函数_Python这68个内置函数,建议你吃透!
- 【转】使用spring @Scheduled注解执行定时任务
- 愤怒!竟然还有学校还在教 Java 的 Swing
- Win11添加日语输入法的教程
- Linux debian安装DBeaver连接MySQL8、导入和导出数据库详细教程
- 计算机网络-CSMA/CD协议
- 2015计算机职称水平考试,2015计算机职称等级考试技巧汇总.doc
- 天将降大任于斯人,必先灭其QQ……后必过CPA也!
- 使用第三方短信服务商云片发送短信(php样例)