第五章 磁盘移臂调度算法

合集下载

操作系统——移动臂调度算法的实现

操作系统——移动臂调度算法的实现

南京工程学院上机实验报告课程名称:操作系统实验项目名称:移动臂调度算法的实现学生班级:学生学号:学生姓名:指导教师:实验时间:实验地点:信息楼专业机房实验成绩评定:2016-2017-1学期一、实验目的及内容掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当的数据结构和算法,模拟实现移动臂调度算法;要求至少模拟实现一种磁盘移臂调度算法;二、实验相关知识简介磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小;因此,磁盘移臂调度要尽量减少磁盘移动臂移动的距离;磁盘移臂调度算法很多,常用的也有好几种,一个好的磁盘调度算法,不仅要使磁盘寻找时间最小,同时,还要避免移动臂频繁地改变移动方向,因为频繁的改向不仅使时间增加,还容易损耗机械部件;常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单向扫描、双向扫描调度算法等;三、解决问题思路及关键程序代码分析一最短寻找时间优先调度算法简介最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务,跟请求者的请求时间先后顺序无关;这种算法具有比先来先服务更好的性能;但是该算法可能会出现请求者被“饿死”的情况,当靠近磁头的请求源源不断地到来,这会使早来的但离磁头较远的请求长时间得不到服务;该算法的优点是可以得到较短的平均响应时间,有较好的吞吐量;该算法的缺点是缺乏公平性,对中间磁道的访问比较“照顾”,对两端磁道访问比较“疏远”,相应时间的变化幅度较大;该算法与先来先服务算法一样,都会导致移动臂频繁改向;二算法模拟1. 对算法设计进行说明该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻道时间最短;当选择了某个离当前磁头所在磁道最近的磁道,下一轮的当前磁道便改成了上一轮的最近磁道,并且把这个最近的磁道从请求序列取消,直到请求序列中不再有请求的磁道;2. 关键代码分析import java.io.;import java.util.;public class{private static int maxsize = 100;private static int Disc = new int maxsize; //请求序列private static int count;//要访问的磁道数private static int disc; //当前磁道号private static int perTime;//移过每个柱面需要时间private static int Distance=0;//总寻道长度private static int FindTime;//查找时间private static double AvgDistance;//平均寻道长度public Suanfa int disc,int count,int perTime,int Disc{this.disc=disc;this.count=count;this.perTime=perTime;forint i=0;i<Disc.length;i++Disci=Disci;}public void input{System.out.print"请输入当前磁道号:";Scanner s1=new ScannerSystem.in;disc=s1.nextInt;System.out.print"请输入要访问的磁道数:";Scanner s2=new ScannerSystem.in;count=s2.nextInt;System.out.print"请输入移过每个柱面需要的时间:";Scanner s3=new ScannerSystem.in;perTime=s3.nextInt;System.out.print"请输入磁盘请求序列以空格隔开:";Scanner s4=new ScannerSystem.in;forint i=0;i<count;i++Disc i=s4.nextInt;}public void Delete int arr,int n{forint i=n;i<arr.length-1;i++arri=arri+1;}public void running{int j=0,count1=count;int min;int discc=disc;int Discc=new int count;while j<count{int num=0;min=Disc0>=discc Disc0-discc:discc-Disc0;forint i=0;i<count1;i++{if Disc i>=discc&&Disc i-discc<min||Disc i<discc&&discc-Disc i<min {min=Disc i>=discc Disc i-discc:discc-Disc i;num=i;}}Disccj++=Disc num;Distance+=min;discc=Disc num;Delete Disc,num;count1--;}AvgDistance=double Distance/count;FindTime=perTimeDistance;System.out.print"\n服务序列:"+disc+" ";forint i=0;i<count;i++System.out.printDiscci+" ";System.out.println"\n总寻道长度:"+Distance;System.out.println"平均寻道长度:"+AvgDistance;System.out.println"寻道时间:"+FindTime+"ms";}public static void mainString args{System.out.println"----------最短寻找时间优先算法----------";Suanfa Suanfa=new Suanfa disc,count,perTime,Disc;Suanfa.input;Suanfa.running;}}四、运行结果程序的运行结果如图所示:五、体会与提高通过本次的实验设计,把教材中的理论知识转化为实践,在一定程度上深了我对读者-写者这类经典的同步问题的理解,同时也提高了我的动手编程和独立思考的能力;虽然在分析问题的过程中,遇到了很多的疑惑与不解,。

磁盘调度算法

磁盘调度算法
引言
文件系统的物理基础是磁盘存储设备。所以, 文件系统的物理基础是磁盘存储设备。所以, 磁盘存储器的服务效率很重要, 磁盘存储器的服务效率很重要,为了提高文件 系统的性能,我们必须对磁盘进行合理的管理 系统的性能, 、调度,对磁盘调度算法进行优化。 调度,对磁盘调度算法进行优化。
第五章 磁盘存储器管理
第五章 磁盘存储器管理
2012-5-2
17
总结: 总结:
1. 先来先服务 . 2. 最短寻道时间优先 最短寻道时间优先(SSF) 3. 扫描算法(电梯算法) 扫描算法(电梯算法) 4 .循环扫描调度算法 循环扫描调度算法
5. N-Step-SCAN和FSCAN调度算法 了解 和 调度算法(了解 调度算法 了解)
第五章 磁盘存储器管理 2012-5-2 4
1. 先来先服务 .
按访问请求到达的先后次序服务 优点:简单,公平; 优点:简单,公平; 缺点:效率不高, 缺点:效率不高,相邻两次请求可 能会造成最内到最外的柱面寻道, 能会造成最内到最外的柱面寻道,使 磁头反复移动,增加了服务时间, 磁头反复移动,增加了服务时间,对 机械也不利
第五章 磁盘存储器管理 2012-5-2 5

假设磁盘访问序列: , 假设磁盘访问序列:98,183,37,122, , , , 14,124,65,67。移动臂的运动方向:沿 , , , 。移动臂的运动方向: 磁道号递减的方向移动。 磁道号递减的方向移动。 读写头起始位置: 读写头起始位置:53 1) (1)安排磁头服务序列 (2)计算磁头移动总距离(道数) )计算磁头移动总距离(道数)
课后任务: 课后任务:为了更好的掌握本节课所学的内 请大家完成书后习题6的第 小题。 的第12小题 容。请大家完成书后习题 的第 小题。

第5章设备管理1.单项选择题(1)通过硬件和软件的功能扩充,把原来b...b

第5章设备管理1.单项选择题(1)通过硬件和软件的功能扩充,把原来b...b

第5章设备管理1.单项选择题(1)通过硬件和软件的功能扩充,把原来独占的设备改造成若干用户共享的设备,这种设备称为( )。

A.存储设备B.系统设备C.虚拟设备D.用户设备(2)( )是操作系统中采用的以空间换时间的技术。

A.通道技术B.SPOOLing技术C.覆盖技术D.虚拟存储技术(3)CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用( )。

A.虚拟技术B.通道技术C.并行技术D.缓冲技术(4)关于设备管理和文件管理这二者的关系,下面说法中正确的是( )。

A.设备管理是文件系统的基础,文件管理是设备管理的一部分B.文件系统为用户提供按名存取服务,实现逻辑文件与物理文件C.文件管理和设备管理是操作系统的两个完全独立的功能,二者不存在任何关系D.设备管理与文件系统密切相关,文件系统是设备管理的基础,设备管理必须依赖文件管理才能最终完成相应的功能(5)在下面的4个选项中,不属于设备管理的功能是( )。

A.实现虚拟设备B.实现外围设备的分配与回收C.实现按名存取D.实现外围设备的启动(6)打印机是( )。

A.独占设备B.共享设备C.有时是独占设备,有时是共享设备D.常用的字符输出设备(7)对输入/输出设备,输入/输出操作的信息传输单位为( );对存储型设备,输入/输出操作的信息是以( )为单位传输的。

A.字节,字B.字符,字C.位,块D.字符,块(8)下面关于计算机外围设备的说法中错误的是( )。

A.输入/输出型设备负责主存与外围设备间的信息传递,信息传输单位是字符B.存储类型设备一般属于共享设备,而输入/输出型设备则属于独占设备C.计算机外围设备可以分为存储型设备和输入/输出型设备D.存储型设备可以作为主存的扩充,信息传输以块为单位(9)当两个进程访问同一柱面,同一扇区,不同磁道的时候( )。

A.一定要先读磁头号小的B.一定要先读磁头号大的C.任意选择一个先访问,另一个等下次扇区转到磁头下时再访问D.两个同时读出来(10)为了减少移动臂进行移动花费时间,文件是按( )依次存放的。

移臂调度算法

移臂调度算法

移臂调度算法移臂调度算法一、实验目的作为操作系统的辅助存储器,用来存放文件的磁盘是一类高速大容量旋转型存储设备,在繁重的I/O设备负载下,同时会有若干传输请求来到并等待处理,系统必须采用一种调度策略,能够按最佳次序执行要求访问的诸多请求,这叫做驱动调度,所使用的算法叫做驱动调度算法。

驱动调度算法能减少为若干I/O请求服务所需消耗的总时间,从而提高系统效率。

对于磁盘设备,在启动之前按驱动调度策略对访问的请求优化其排序十分必要。

除了使旋转圈数达到最少的调度策略外,还应考虑使移动臂的移动时间最短的调度策略。

二、实验要求书写实验报告,应该包括以下几项内容:(1)实验题目;(2)程序中使用的数据结构及主要符号说明;(3)程序流程图和带有注释的源程序;(4)执行程序名,并打印程序运行时的初值和运行结果;(5)通过实验后的收获与体会及对实验的改进意见和见解。

三、程序及主要符号说明(1)先来先服务(FCFS)这是一种简单的磁盘调度算法。

它根据进程请求访问磁盘的先后次序进行调度。

此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。

但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。

(2)最短寻道时间优先(SSTF)该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。

(3)扫描算法(SCAN)SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。

例如,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。

这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。

这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。

由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。

第五章_磁盘移臂调度算法

第五章_磁盘移臂调度算法

例1:假定某移动磁盘上,处理了访问56号柱面的请 求后,现在正在70号柱面上读信息,目前有下面的请 求访问磁盘柱面的序列: 73, 68, 100, 120, 60, 108, 8, 50 请写出下列各小题的响应的次序及移动的柱面数。 ⑴用最短查找时间优先算法 ⑵电梯调度算法 解: ⑴ 用SSTF,响应的次序为 70、68、73、60、50、8、100、108、120 移动的柱面数:2+5+13+10+42+92+8+12=184 ⑵ 用电梯调度算法,响应的次序为 70、73、100、108、120、68、60、50、8 移动的柱面数:3+27+8+12+52+8+10+42=162
ቤተ መጻሕፍቲ ባይዱ
当前磁道=100
例:假定磁盘共有40个柱面,当前磁头正 在第11道服务,等待服务的进程有6个,它们请 求的柱面分别是:1, 36, 16, 34, 9 和 12 (以请求 时间先后为序)。
按FCFS算法: 移动为:11 1 36 16 34 9 12 总移动柱面数:10+35+20+18+25+3 = 111
5.4.1 磁盘移臂调度
磁盘是对被多个进程共享的设备。当有多个进 程都请求访问磁盘时,应采用一种适当的调度算法, 以使各进程对磁盘的平均访问(主要是寻道)时间 最小。由于在访问磁盘的时间中、主要是寻道时间, 因此,磁盘调度的目标应是使磁盘的平均寻道时间 最少。 常用的磁盘调度算法有: ⑴ 先来先服务; ⑵ 最短寻道时间优先; ⑶ 扫描算法; ⑷ 循环扫描算法 等.
按按此策略完成 这组I/O操作需移动 磁头的总距离为642 磁道。

操作系统第5章_设备管理习题及答案

操作系统第5章_设备管理习题及答案

第六章设备管理习题及答案一、填空题1.磁带是一种①的设备,它最适合的存取方法是②。

磁盘是一种③的设备,磁盘在转动时经过读/写磁头所形成的圆形轨迹称为④。

【答案】①顺序存取,②顺序存取,③直接存取,④磁道(或柱面)【解析】顺序存取的设备只有在前面的物理块被存取访问过之后,才能存取后续物理块的内容。

如果按随机方式或按键存取方式存取磁带上的文件信息的话,其效率反而会更低,所以顺序存取方法更能发挥磁带这种设备的效率。

磁盘设备是一种典型的直接存取设备,它允许文件系统直接存取磁盘上的任意物理块。

2.从资源分配的角度看,可以把设备分为①设备和②设备;打印机是一种典型的③设备,而磁盘是一种④设备。

【答案】①独享,②共享,③独享,④共享【解析】独享设备:为了保证传递信息的连贯性,通常这类设备一经分配给某个作业,就在作业整个运行期间都为它独占。

多数的低速设备都属于独享设备。

共享设备:是指允许若干个用户同时共享使用的设备。

3.虚拟设备是通过①技术,把②变成能为若干用户③的设备。

【答案】①SPOOLING,②独享,③共享【解析】虚拟设备的提出是为了把原为独享的设备改造成便于共享的设备,以提高设备的利用率。

这种改造就是通过SPOOLING技术来实现的。

SPOOLING可以译为外围设备同时联机操作的意思。

4.UNIX系统中,所有的输入/输出设备都被看成是①。

它们在使用形式上与②相同,但它们的使用是和设备管理程序紧密相连的。

【答案】①特殊文件,②普通文件【解析】在一些操作系统中,常常把设备也看成是文件。

这样的好处是:用户可以用统一的观点去使用设备,并处理存放在设备上的信息。

从这个意义上来说,文件系统在用户和外设之间提供了一个接口。

5.系统中,象键盘、终端、打印机等以①为单位组织和处理信息的设备称为②;而磁盘、磁带等以③为单位组织和处理信息的设备称为④。

【答案】①字符,②字符设备,③块,④块设备6.一个进程只有获得了①、②和所需设备三者之后,才具备了进行I/O操作的物质条件。

操作系统-第五章

操作系统-第五章
D.由用户给出的设备编号是设备的绝对号
3.在移臂调度算法中()算法可能会随时改变移动臂的移动方向。
A.电梯调度B.先来先服务
C.双向扫描D.最短寻找时间优先
4.SPOOLING是对脱机I/O方式的模拟,SPOOLING系统中的输出井是对脱机输出中的()的模拟,输出程序是对脱机输出中的()进行模拟。
A.内存输出缓冲区B.磁盘
8.用户编制程序时使用的设备与系统分配的实际设备无关,把这种特性称为()
9.执行一次磁盘输入输出操作所花的时间分成寻找时间、延迟时间和()三个部分。
10.磁盘的驱动调度主要分成移臂调度和()两种。
11.磁盘上的一个物理块由三个参数来定位,首先把移动臂移动并定位在不同盘面上具有相同编号的磁道位置,表示该位置的参数称()
一、单项选择题
1.绘图仪是
A.独占设备B.共享设备
C.有时是独占设备,有时是共享设备D.常用的字符输出设备
2.共享设备是指那些()的设备。
A.任意时刻都可以同时为多个用户服务
B.可以为多个用户服务
C.只能为一个用户服务
D.一个作业还没有撤离就可以为另一个作业同时服务,但每个时刻只为一个用户服务
3.共享型设备是可被多个用户作业同时使用的设备,其中"同时"的含义是()
18.设磁盘的转速为3000转/分,盘面划分成10个扇区,则读取一个扇区的时间为( )
A.20ms B.3ms C.2ms D.1ms
19.一个含6个盘片的双面硬盘,盘片每面有100个磁道,则该硬盘的柱面数为
A.12B.250C.100D.1200
20.当两个进程访问同一柱面、同一扇区、不同磁道的时候()
A.主存B.通道C.磁盘D.寄存器

操作系统-磁盘的驱动调度

操作系统-磁盘的驱动调度

0、磁盘的驱动调度有“移臂调度”和“旋转调度”两部分组成。

常用的移臂调度算法有:先来先服务算法最短寻找时间优先算法电梯调度算法单向扫描算法。

(要注意题目要求的是哪种算法,求总移动距离还是平均移动距离)假设柱面的编号从0到199。

例如,如果现在读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。

(1).先来先服务调度算法当53号柱面上的操作结束后,访问柱面的次序为98,183,37,122,14,124,65,67。

读写磁头总共移动了640个柱面的距离。

(从53开始,每次移动距离之和,平均移动距离是640/8=80个柱面)(2).最短寻找时间优先调度算法现在当53号柱面的操作结束后,访问次序为65、67、37、14,98,122,124,183。

读写磁头总共移动了236个柱面的距离。

(从53开始,每次找距离当前最近的进行移动)(3) 电梯调度算法由于该算法是与移动臂的方向有关,所以,应分两种情况来讨论。

(i)移动臂先向外移。

当前正在53号柱面执行操作的读写磁头是移动臂由里向外(向0号柱面方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为37、14,65,67,98,122,124,183。

读写磁头共移动了208个柱面的距离。

(ii)移动臂先向里移。

当前正在53号柱面执行操作的读写磁头是移动臂由外向里(向柱面号增大方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为65、67,98,122,124,183、37,14柱面的访问者服务。

读写磁头共移动了299个柱面的距离。

(总之象电梯一样,移动一个来回完成所有访问)(4).单向扫描调度算法方向是从外向里扫描,即从0柱面开始,访问的柱面次序为:65,67,98,122,124,183,14,37 读写磁头一共移动了12+2+31+24+2+59+14+231. 一个磁盘组有100个柱面,每柱面8个磁道,每磁道8个扇区,现有一个文件含5000个记录,每记录与扇区大小相等,在磁盘组上顺序存放(从0面0道0扇区开始),问(1)第3468个记录的物理位置(2)第56个柱面上第7磁道第5扇区对应的块号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例 : 假定磁盘共有40个柱面,当前磁头正 在第11道服务,等待服务的进程有6个,它们请 求的柱面分别是:1, 36, 16, 34, 9 和 12 。 按SSTF算法: 算法: 算法 移动为:11 → 12 → 9 → 16 → 1 → 34 → 36 总移动柱面数:1+3+7+15+法) 算法( 三、扫描 算法 电梯调度算法) 具体做法: 当设备无访问请求时, 磁头不动; 具体做法 : 当设备无访问请求时 , 磁头不动 ; 当有访问请求时, 磁头按一个方向移动, 当有访问请求时 , 磁头按一个方向移动 , 在移动过 程中对遇到的访问请求进行服务, 程中对遇到的访问请求进行服务 , 然后判断该方向 上是否还有访问请求, 如果有则继续扫描; 上是否还有访问请求 , 如果有则继续扫描 ; 否则改 变移动方向,并为经过的访问请求服务,如此反复. 变移动方向,并为经过的访问请求服务,如此反复.
5.4.1 磁盘移臂调度 磁盘是对被多个进程共享的设备。当有多个进 磁盘是对被多个进程共享的设备。 程都请求访问磁盘时,应采用一种适当的调度算法, 程都请求访问磁盘时,应采用一种适当的调度算法, 以使各进程对磁盘的平均访问(主要是寻道) 以使各进程对磁盘的平均访问(主要是寻道)时间 最小。由于在访问磁盘的时间中、主要是寻道时间, 最小。由于在访问磁盘的时间中、主要是寻道时间, 因此, 因此,磁盘调度的目标应是使磁盘的平均寻道时间 最少。 最少。 常用的磁盘调度算法有: 常用的磁盘调度算法有: 先来先服务; ⑴ 先来先服务; ⑵ 最短寻道时间优先; 最短寻道时间优先; 扫描算法; ⑶ 扫描算法; ⑷ 循环扫描算法 等.
2 FSCAN算法 算法 FSCAN算法实质上是 算法实质上是 算法实质上是N-Step-SCAN算法 算法 的简化。 的简化。它只将磁盘请求访问队列分成两个 子队列。 子队列。 一是当前所有请求磁盘I/O的进程形成的 一是当前所有请求磁盘 的进程形成的 队列,由磁盘调度按SCAN算法进行处理 算法进行处理。 队列,由磁盘调度按SCAN算法进行处理。 另一个队列则是在扫描期间, 另一个队列则是在扫描期间,新出现的 所有请求磁盘I/O进程的队列 进程的队列, 所有请求磁盘 进程的队列,把它们排入另 一个等待处理的请求队列。 一个等待处理的请求队列。 这样, 这样,所有的新请求都将被推迟到下一 次扫描时处理。 次扫描时处理。
例 : 假定磁盘共有40个柱面,当前磁头正 在第11道服务,等待服务的进程有6个,它们请 求的柱面分别是:1, 36, 16, 34, 9 和 12 (以请求 时间先后为序)。 按FCFS算法: 算法: 算法 移动为:11 → 1 → 36 → 16 → 34 → 9 → 12 总移动柱面数:10+35+20+18+25+3 = 111
当前磁道=100
其中进程是按其发出 进程号 磁道号 移动距离(磁道数) 请求的先后顺序排列的。 请求的先后顺序排列的。 4 19 81 9 376 357 采用的是FCFS调度策略。 调度策略。 采用的是 调度策略 23 205 171 完成这组I/O操作需移动 完成这组 操作需移动 7 134 71 磁道。 磁头的总距离为1604磁道。 磁头的总距离为 磁道 34 18 116 22 56 38 优点:公平、简单, 优点:公平、简单,且 14 192 136 每个进程的请求都能依次 3 396 204 32 29 367 得到处理, 得到处理,不会出现某进 17 3 26 程的请求长期得不到满足 12 19 16 29 40 21 的情况。 的情况。 磁头移动的总距离=1604 (磁道) 缺点: 缺点:与后面讲的几种 调度算法相比,其平均寻道距离较大。 调度算法相比,其平均寻道距离较大。故此算法仅 适用于请求磁盘上的进程数较少的场合。 适用于请求磁盘上的进程数较少的场合。
先来先服务FCFS 一、先来先服务
(First-Come, First-Served)
这是一种最简单的磁盘调度算法。它根 这是一种最简单的磁盘调度算法。 据进程请求访问磁盘的先后次序进行调度。 据进程请求访问磁盘的先后次序进行调度。 在任何时候,都有许多I/O请求在排队等 在任何时候,都有许多 请求在排队等 每次当调用进程从磁盘读出时, 待。每次当调用进程从磁盘读出时,首先要 把磁头定位到它所要求的正确磁道上。 把磁头定位到它所要求的正确磁道上。移动 磁头所需时间取决于磁头必须移动多远的距 下页表是一作用于等待的I/O进程请求其 离。下页表是一作用于等待的 进程请求其 要求读出的磁道的分布情况。 要求读出的磁道的分布情况。
由此可知总的柱面移动数为61, 明显地优于FCFS。
思考:假设磁盘访问序列: 思考:假设磁盘访问序列: 98, 183, 37, 122, 14, 124, 65, 67 读写头起始位置: 读写头起始位置:53 试安排磁头服务序列,并计算磁头移动总距离(道数 道数) 试安排磁头服务序列,并计算磁头移动总距离 道数
思考:假设磁盘访问序列: 思考:假设磁盘访问序列: 98, 183, 37, 122, 14, 124, 65, 67 读写头起始位置: 读写头起始位置:53 试安排磁头服务序列,并计算磁头移动总距离(道数 道数) 试安排磁头服务序列,并计算磁头移动总距离 道数
最短寻道时间优先SSTF 二、最短寻道时间优先 (Shortset Seek Time First) 当前磁道=100 第一种改进方法是: 第一种改进方法是: 进程号 磁道号 移动距离(磁道数) 最短寻找时间优先(SSTF) 最短寻找时间优先 7 134 34 14 192 58 的调度方法。采用这种调 的调度方法。 23 205 13 度策略, 度策略,每当启动一个新 22 56 149 29 40 16 操作时, 的磁盘 I/O操作时,首先 操作时 32 29 11 查看这个等待请求的挂起 4 19 10 12 19 0 队列, 队列,找出其中寻找时间 34 18 1 最短的进程。 最短的进程。 17 3 15 按此策略完成这组I/O 按此策略完成这组 9 376 373 3 396 20 操作需移动磁头的总距离 磁头移动的总距离=700 (磁道) 磁道。 如右图所示) 磁道 如右图所示 为700磁道。(如右图所示
按按此策略完成 这组I/O操作需移动 这组 操作需移动 磁头的总距离为642 磁头的总距离为 磁道。 磁道。
当前磁道=100 移动方向=IN(向里) 进程号 磁道号 移动距离(磁道数) 7 134 34 14 192 58 23 205 13 9 376 171 3 396 20 17 3 393 34 18 15 12 19 1 4 19 0 32 29 10 29 40 11 22 56 16 磁头移动的总距离=642 (磁道)
例 : 假定磁盘共有40个柱面,当前磁头正 在第11道服务,等待服务的进程有6个,它们请 求的柱面分别是:1, 36, 16, 34, 9 和 12 。 算法: 按SCAN算法: 算法 移动为:11 → 12 → 16 → 34 → 36 → 9 → 1 总移动柱面数:1+4+18+2+27+8 = 60 尽管此例的平均寻道时间电梯算法优于SSF算法, 但一般而言SSTF算法下平均寻道时间要优于电梯算法。 从效率和公平性考虑,目前较多采用电梯调度算法。
该策略隐含有一个难以捉摸的问题: 该策略隐含有一个难以捉摸的问题:这 就是有些进程将会“饿死” 就是有些进程将会“饿死”。如假定在进程 9(要求读出磁道 上的信息 的请求得到服 要求读出磁道376上的信息 上的信息)的请求得到服 要求读出磁道 务之前的某段时间,系统又收到一个请求流, 务之前的某段时间,系统又收到一个请求流, 而且这些请求 些请求所要求移动的磁道数均小于 而且这些请求所要求移动的磁道数均小于 376所移动的距离,因而进程 和进程 永远 所移动的距离, 和进程3永远 所移动的距离 因而进程9和进程 得不到服务。 得不到服务。 优点:改善了磁盘平均服务时间; 优点:改善了磁盘平均服务时间; 缺点: 缺点:造成某些访问请求长期等待得不 到服务
CSCAN的优缺点 的优缺点 的讨论作为一个习题留 给读者
调度算法( 五、N-Step-SCAN和FSCAN调度算法(不考) 和 调度算法 不考) 1 N-Step-SCAN算法 算法 几种调度算法中, 在 SSTF、SCAN及CSCAN几种调度算法中, 、 及 几种调度算法中 都可能出现磁臂停留在某处不动的情况。 都可能出现磁臂停留在某处不动的情况。 例如, 例如,有一个或几个进程对某一磁道有着较高 的访问频率, 的访问频率,即他们反复请求对某一磁道进行 I/O, , 从而垄断了整个磁盘设备。我们把这一现象称为磁 从而垄断了整个磁盘设备。我们把这一现象称为磁 臂粘着(Armstickiness)。在高密度盘上更容易出现此 臂粘着 。 情况。 情况。 N-Step-SCAN是将磁盘请求队列分成若干个 是将磁盘请求队列分成若干个 长度为N的子队列 的子队列, 长度为 的子队列,对一个队列处理完后又处理另一 个队列,这样可避免出现粘着现象。 个队列,这样可避免出现粘着现象。 很大时, 的性能, 当N很大时,会使 很大时 会使N-Step-SCAN的性能,接近于 的性能 SCAN算法的性能;当 N=1时, N-Step-SCAN算法 算法的性能; 算法的性能 时 算法 退化为FCFS算法。 算法。 退化为 算法
思考:假设磁盘访问序列: 思考:假设磁盘访问序列: 98, 183, 37, 122, 14, 124, 65, 67 读写头起始位置: 读写头起始位置:53 试安排磁头服务序列,并计算磁头移动总距离(道数 道数) 试安排磁头服务序列,并计算磁头移动总距离 道数
循环扫描算法CSAN(Circular SCAN)(不考) 四、循环扫描算法 (不考) SCAN算法存在这样的问题:当磁头刚从里向外 算法存在这样的问题: 算法存在这样的问题 移动过某一磁道时、恰有进程请求访问此磁道, 移动过某一磁道时、恰有进程请求访问此磁道,这 时该进程必须等待,待磁头从里向外. 时该进程必须等待,待磁头从里向外.然后再从外 向里扫描完所有要访问的磁道后、 向里扫描完所有要访问的磁道后、才处理该进程的 请求,致使该进程的请求被严重地推迟。为了减少 请求,致使该进程的请求被严重地推迟。 这种延迟, 这种延迟, SSTF的另一个修改版本是循环扫描法 的另一个修改版本是循环扫描法 (CSAN)。 该算法规定磁头单向移动。例如,只自里 。 该算法规定磁头单向移动。例如, 向外移动,当磁头移到最外的被访问磁道时, 向外移动,当磁头移到最外的被访问磁道时,磁头 立即返回到最里的欲访磁道, 立即返回到最里的欲访磁道,即将最小磁道号紧接 着最大磁道号构成循环,进行扫描。即一个在磁道0 着最大磁道号构成循环,进行扫描。即一个在磁道 上的I/O请求 将在磁道400上请求之后马上可以得 请求, 上的 请求,将在磁道 上请求之后马上可以得 到满足。 到满足。
相关文档
最新文档