第1页,共21页,星期日,2025年,2月5日摘要:
磁臂调度是指当同时有多个访盘要求时在等待时,对这些要求的顺序的确定安排或调整,旨在减少平均磁盘服务时间.磁臂调度由操作系统中的磁盘设备驱动完成,相应的算法称为磁臂调度算法;磁臂调度算法包括两个方面的考虑:首先要根据这些要求所访问的磁道按照某种标准对这些要求排序,旨在减少寻道时间,称为磁臂调度,仅在移动头磁盘中采用;其次对同一磁道多个要求扇区顺序排列,旨在减少延迟时间,称为扇区排队,仅在无控制器磁道缓冲的系统中采用;关键词:扫描调度,先向右再向左,移动磁道数第2页,共21页,星期日,2025年,2月5日一.设计的背景介绍
1.扫描调度(SCANScheduling)算法介绍:磁头总是单向移动的,但到达盘边缘则改变方向,磁头移动中为途中的所有请求服务。在下例中,磁头最初向右移动,则SCAN算法产生的顺序是65,67,98,122,124,183,37,14,如下图所示。如果一个请求到达时其要访问的磁道刚好在磁头移动前方,则该请求立即得到服务,反之如果刚好在磁头后,则要等到磁头返回以后再得到响应.第3页,共21页,星期日,2025年,2月5日第4页,共21页,星期日,2025年,2月5日第5页,共21页,星期日,2025年,2月5日第6页,共21页,星期日,2025年,2月5日2.2数据文件格式说明
(1)文件格式如下:track_numbers:10current_location:90track_serial:141833712465122679888888其中track_numbers:是代表请求访盘的磁道总数current_location:是代表当前磁头所在的磁道号;track_serial:申请访盘的磁道序列;第7页,共21页,星期日,2025年,2月5日2.3数据结构定义
?typedefstruct{//定义序列的结构体,其中data为磁道号,flag为访问状态标志 intdata;//磁道号 intflag;//标志}node;第8页,共21页,星期日,2025年,2月5日2.4总体流程图写出要访问的磁道的数据结构,该结构包括磁道号data和状态访问标志flag。另外,定义要访问的磁道数track_numbers,当前磁头所在的磁道号current_location和一个动态数组serial用来存放要访问的磁道,其大小等于要访问的磁道数读取文件,并将待访问的磁道序列号存入serial中。并定义一个排序的子函数以供扫描算法使用。该函数按从小到大进行排序第9页,共21页,星期日,2025年,2月5日用SWITCH语句来实现五种不同的选择:按数字1:FCFS的调度;数字2:扫描算法的调度;数字3:最短路径优先算法的调度;数字5:结束程序,将返回到重新开始调度的界面;除此之外的其他任何按键都将显示选择无效的提示。每做完一种选择都可自动清除界面。5号功能:当改变数据文件后,不须重新编译程序根据界面上的提示,选择相应的功能第10页,共21页,星期日,2025年,2月5日三.算法的实现第11页,共21页,星期日,2025年,2月5日第12页,共21页,星期日,2025年,2月5日第13页,共21页,星期日,2025年,2月5日 第14页,共21页,星期日,2025年,2月5日第15页,共21页,星期日,2025年,2月5日