#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int *Init(int arr[])
{
int i = 0;
srand((unsigned int)time(0));
for (i = 0; i < 15; i++)
{
arr[i] = rand() % 200 + 1;
printf("%d ", arr[i]);
}
printf("\n");
return arr;
}
void two_part(int arr[])
{
int i = 0;
int j = 0;
int k = 0;
int sum = 0;
int a[15];
int b[15];
int num = 100; //当前磁头在100号磁道上
a[0] = 100;
b[0] = 100;
for (i = 0; i < 15; i++)
{
for (j = 1; j < 15 - i; j++)
{
if (arr[j] < arr[j - 1])
{
int tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
}
}
}
i = 0;
j = 0;
for (i = 0; i < 15; i++)
{
if (arr[i] >= num)
{
a[j+1] = arr[i];
j++;
}
else
{
b[k+1] = arr[i];
k++;
}
}
printf("访问序列:\n");
for (i = 1; i <= j; i++)
{
printf("%d ", a[i]);
}
for (i = k; i >0; i--)
{
printf("%d ", b[i]);
}
sum = ((a[j]-100)*2+(100- b[1]))/15;
printf("平均寻道长度:%d", sum);
}
int main()
{
int arr[15] = { 0 };
int *ret=Init(arr);
two_part(ret);
getchar();
return 0;
}【操作系统】C语言模拟操作系统实现磁盘调度算法——电梯调度算法
最新推荐文章于 2021-12-05 20:59:10 发布
本文通过C语言实现了一个简单的磁盘调度算法模拟程序。该程序首先初始化一个包含15个随机磁道请求的数组,然后使用扫描算法(两部分算法)来确定磁头移动的顺序并计算平均寻道长度。

6841

被折叠的 条评论
为什么被折叠?



