从 0 号柱面开始向里道扫描,按照各自所要访问的柱面位置的次序去选择访
问者。在移动臂到达最后一个柱面后,立即快速返回到 0 号柱面,返回时不
为任何的访问者等待服务。在返回到 0 号柱面后,再次进行扫描。
对上述相同的例子采用单向扫描调度算法的执行次序
由于该例中已假定读写的当前位置在 50 号柱面,所以,指示了从 50 号
柱面继续向里扫描,依次为 61、99、130、148、159、199 各柱面的访问者服
务,此时移动臂已经是最内的柱面,于是立即返回到 0 号柱面,重新扫描,
依次为 15、32 号柱面的访问者服务。
4、CSCAN(循环扫描)调度
当磁头刚从里向外移动而越过了某一磁道进,恰好又有一进程请求访问此
磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完所有
要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。为
减少这种延迟,CSCAN 算法规定磁头单向移动。
二、部分代码
#include "stdio.h"
#include "math.h"
FCFS()
{ /*先来先服务*/
int nowtrack,totalnum,i; /*totalnum 为磁道总数,nowtrack 为当前磁道*/
int *Track;
int num=0;
printf("\nPlease input now Track num:");
scanf("%d",&nowtrack);
printf("\nPlease input total num:");
scanf("%d",&totalnum);
Track=(int *)malloc(totalnum*sizeof(int)); /*动态数组,申请空间*/