操作系统原理之磁盘调度

首先介绍主要的的四种磁头调度算法

(一)先来先服务算法(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半导体存储器的物理结构不需要考虑寻道时间和旋转时间延时,可直接按请求的先后顺序执行。

时间: 2024-08-05 23:13:42

操作系统原理之磁盘调度的相关文章

操作系统原理(二),进程、线程

Technorati 标签: 操作系统,原理 现代操作系统比如,Linux,Windows等,都是支持"多任务"的操作系统.所谓多任务,指的就是操作系统可以同时运行多个任务.也就是在同一台电脑上,可以同时上网.听歌.使用Word,在过去单核的CPU上都已经可以支持多任务,实现的方式是操作系统让各个任务轮流交替执行.,比如任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒,因为CPU执行速度非常块,我们感觉到所有任务都是并发处理. 到了多核CPU时代

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

漫谈怎样学习操作系统原理

本人学习计算机技术至今,对于怎样学习操作系统原理有一点自己的看法,如今写出来,希望对大家能有所助! 操作系统怎么学.首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的. 这是首要的问 题.不知道有没有人看过INTEL官方的CPU文档,总是分为应用级编程.系统级编程.指令集这三块.当中系统级编 程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编程手冊的应用级编程卷是2MB,系统卷却有6MB.就 连IA-32编程手冊上的系统卷部分也远比应用卷的要多.当然这些内容我还没有

磁盘调度-02

上节讲了磁盘的一些基本知识. 这一节我们就开始磁盘的真正调度,调度之前需要先说一个知识点. 磁盘参数: 1. 磁盘容量 = 磁头数 * 柱面数 * 扇区数 * 512bytes,固定的 2. 转速:转速决定读写512字节的速度 3. 平均访问时间:是指磁头从起始位置到到达目标磁道位置,并且从目标磁道上找到要读写的数据扇区所需的时间. 平均访问时间=平均寻道时间+平均等待时间. 4. 传输速率:传输速率分内部传输速率和外部传输速率.内部传输速率由磁盘转速和平均访问时间决定.外部传输速率即系统总线与

操作系统原理学习笔记--进程管理

标签: 数据结构primitive存储算法io作业 2012-09-01 16:50 6603人阅读 评论(1) 收藏 举报  分类: [OS](4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 进程管理 要点: 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 解决:几个经典问题 进程的引入 程序的顺序执行 源代码程序,目标程序和可执行程序 程序执行:编辑,编译,链接,执行 程序的结构:顺序,分支,循环结构 程序执行的特征:顺序性,封闭性,可再现性 程序并发

漫谈如何学习操作系统原理

本人学习计算机技术至今,对于如何学习操作系统原理有一点自己的看法,现在写出来,希望对大家能有所助! 操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的.这是首要的问 题.不知道有没有人看过INTEL官方的CPU文档,总是分为应用级编程.系统级编程.指令集这三块.其中系统级编 程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编程手册的应用级编程卷是2MB,系统卷却有6MB.就 连IA-32编程手册上的系统卷部分也远比应用卷的要多.当然这些内容我还没有看

操作系统原理之选择题

1. 下列选项中,操作系统提供给应用程序的接口是___A__. A.系统调用 B.中断 C.库函数 D.原语 系统调用是操作系统提供给编程人员的唯一接口.--<计算机操作系统教程> 2. 下列选项中,导致创建新进程的操作是___C___. I 用户登录成功 II 设备分配 III 启动程序执行 A.仅 I 和 II B.仅 II 和 III C.仅 I 和 III D.I . II 和 III 用户登录成功后,操作系统将启动与用户有关的初始程序,此时需要创建新的进程.启动程序执行时毫无疑问会启

操作系统原理2——OS结构

操作系统原理2——OS结构 计算机系统是由硬件系统和软件系统两部分组成, 操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个基本的了解,本章就是讲述计算机系统结构的基本知识. 本章的考核 知识点 是: 1.计算机系统的层次结构 2.硬件环境 3.操作系统结构 学习本章要求:了解计算机系统的结构,有关硬件的I/O中断和存储结构,硬件的保护措施:有关操作系统的结构,操作系统提供的使用接口. 重点 是:硬件环境和操作系统的结构 一

操作系统原理(转)

操作系统原理   我们每天都同操作系统打交道,了解一些操作系统原理上的知识是绝对有必要的,它可以让你了解操作系统内部是怎么工作的,为什么会出现这样那样的问题,为我们解决这些问题提供思路. 本文完全是为普通电脑用户写的,省略了所有难以理解的算法.原理,没有太多细节上的东西,只是针对普通电脑用户可能感兴趣的问题给出了实现思想.写这些东 西只是我的一相情愿,就怕我还是写得深了些,初学者读不懂.如果这10K文字能让你对操作系统有更深的了解,那也就不枉了这几个汗流浃背的夏日午后了. Q:什么是中断?A:中