c 语言仿真各种磁盘调度算法,磁盘调度算法的仿真.doc

磁盘调度算法的仿真

磁盘调度算法模拟

实验目的

磁盘是可供多个进程共享的设备,当有多个进程都要求访问磁盘是,应采用一种最佳调度算法,以使各进程对磁盘的平均访问时间最小。目前最成用的磁盘调度算法有先来先服务(FCFS),最短寻道时间优先(SSTF),以及扫描算法(SCAN)。通过本实验可以加深理解有关磁盘调度的目标,并体会和了解最短寻道时间优先算法和扫描算法的具体实施办法。

实验内容

1 从100#磁道开始,被访问的磁道号分别为:55,58,39,18,90,160,150,38,184。

2 要求用最短寻道时间优先算法的和扫描算法实现磁盘调度。

3 记录下每访问一个磁道磁头移动的磁道数,并计算平均寻道长度(平均移动磁道数)。

实验要求

分别用两种算法实现磁盘调度。在实验结果分析中,将比较结果以列表的形式表现出来。用数组(或链表)TR[ ]存储待访问磁道号,将每次磁头移动磁道数用数组AR[ ]存储。输出结果应如下例:(注意空格)

150

50

160

10

184

24

18

166

38

20

39

1

55

16

58

3

90

32

平均寻道长度:35.8

编程工具:

C、Java、VC或其它可视化语言

平台任选

实现代码:

#include

#include

void main()

{

int mark;

int num;

int number;

int numb;

int i,j,k,m;

int TR[9] = {55, 58, 39, 18, 90, 160, 150, 38, 184};

int a[10];

int b[10];

float sum1=0,sum2=0;

float avg1,avg2;

printf("最短寻道时间算法\n");

printf("(从100号磁道开始)\n");

num=100;

number=100;

for(i=0;i<9;i++)

{

numb=abs(num-TR[0]);

for(j=0;j<9;j++)

{

if(numb>=abs(num-TR[j]))

{

numb=abs(num-TR[j]);

number=TR[j];

mark=j;

}

}

TR[mark]=1000;

printf("%d %d\n",number,abs(num-number));

sum1=sum1+(abs(num-number));

num=number;

}

avg1=sum1/9;

printf("最短寻道时间算法平均长度为:%4.2f\n",avg1);

printf("扫描算法\n");

printf("(从100号磁道开始)\n");

num=100;

number=100;

TR[0]=55;

TR[1]=58;

TR[2]=39;

TR[3]=18;

TR[4]=90;

TR[5]=160;

TR[6]=150;

TR[7]=38;

TR[8]=184;

k=0;

m=0;

for( i=0;i<9;i++)

{

if(TR[i]>num)

{

a[k]=TR[i];

k++;

}

}

for( i=0;i<9;i++)

{

if(TR[i]

{

b[m]=TR[i];

m++;

}

}

for(i=0;i

{

numb=abs(num-a[0]);

for(j=0;j

{

if(numb>=abs(num-a[j]))

{

numb=abs(num-a[j]);

number=a[j];

mark=j;

}

}

a[mark]=1000;

printf("%d %d\n",number,abs(num-number));

sum2=sum2+(abs(num-number));

num=number;

}

for(i=0;i

{

numb=abs(num-b[0]);

for(j=0;j

{

if(numb>=abs(num-b[j]))

{

numb=abs(num-b[j]);

number=b[j];

mark=j;

}

}

b[mark]=1000;

printf("%d %d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值