磁盘调度算法的实现讲课稿

磁盘调度算法的实现讲课稿
磁盘调度算法的实现讲课稿

磁盘调度算法的实现

一、实验目的:

通过模拟设计磁盘驱动调度程序,观察驱动调度程序的动态运行过程,理解和掌握磁盘驱动调度的职能,并比较各种算法的调度结果。

二、实验内容:

要求设计主界面能灵活选择某算法,且以下算法都要实现。

(1)先来先服务算法(FCFS)

(2)最短寻道时间优先算法(SSTF)

(3)扫描算法(SCAN)

(4)循环扫描算法(CSCAN)

三、实验步骤

(1)需求分析:

本设计中可在运行时随机产生一个请求序列,先把序列排序,以方便找到下一个要寻找的磁道。要求用户选择磁头移动方向,向里和向外移动用1和0表示,若输入值不为0或1,则报错。选择某种调度算法后,要求显示调度顺序和移动的总磁道数。

(2)详细设计:

void FCFS(int a[],int n);//先来先服务算法

void SSTF(int a[],int n);//最短寻道时间算法

void SCAN(int a[],int n);//扫描算法

void CSCAN(int a[],int n);//循环扫描算法

int main()

{

int n;//磁道的个数

int s;//功能号

cout<<"请输入磁道的个数:"<

cin>>n;

int *a=new int[n];

cout<<"生成随机磁道号..."<

srand((unsigned)time(NULL));

for(int i=0;i

{

a[i]=(rand()%100)+1;

cout<

}

cout<

while(1)

{ cout<

cout<<"1、先来先服务算法(FCFS)"<

cout<<"4、循环扫描算法(CSCAN)"<

cout<<"0、退出"<

cout<

cout<<"请选择功能号:";

cin>>s;

if(s>4)

{

cout<<"输入有误!"<

}

else

{

switch(s)

{ case 0: exit(0);break ;

case 1:FCFS(a,n); break;

case 2:SSTF(a, n);break;

case 3:SCAN(a, n);break;

case 4:CSCAN(a,n);break;

}

}

}

return 0;

}

实验源代码

#include

#include

using namespace std;

void FCFS(int a[],int n);

void SSTF(int a[],int n);

void SCAN(int a[],int n);

void CSCAN(int a[],int n);

int main()

{

int n;//磁道的个数

int s;//功能号

cout<<"请输入磁道的个数:"<

cin>>n;

int *a=new int[n];

cout<<"生成随机磁道号..."<

srand((unsigned)time(NULL));

for(int i=0;i

{

a[i]=(rand()%100)+1;

cout<

}

cout<

while(1)

{ cout<

cout<<"1、先来先服务算法(FCFS)"<

相关主题
相关文档
最新文档