磁盘调度算法(FCFS,SSTF,SCAN)

本文介绍了磁盘调度中的三种算法:先来先服务(FCFS)、最短寻道时间优先(SSTF)以及电梯调度(SCAN)算法,并通过代码实现展示了它们的工作原理及移动次数计算。通过对随机生成的磁道位置进行模拟,分析了不同算法的性能特点。
摘要由CSDN通过智能技术生成
#include<bits/stdc++.h>
using namespace std;
int a[2000]; //磁道位置 
int n; //磁道数量 
int begin;  //初始位置 
void init()
{
	srand(time(0));
	n=(rand()%20)+1; // 0-1000
	for(int i=0;i<n;i++)
	a[i]=(rand()%20)+1; //0-1000
	begin= (rand()%20)+1; 
}
int abs(int x)
{
	return x<0?-x:x;
}
int er_fen(int b[],int x)
{
	int l=0,r=n-1;
	//printf("r=%d\n",r);
	while(l<=r)
	{
		int mid=(l+r)>>1;
		if(b[mid]>x)
		{
			r=mid-1;
		}
		else
		l=mid+1;
	}
	//printf("! %d %d %d\n",x,l,r);
	return r;
}
void FCFS() //先来先服务 
{
	int sum=0;
	printf("路径:\n");
	printf("%d",begin);
	int t=begin;   //为了不改变起始点 
	for(int i=0;i<n;i++)  
	{
		sum+=abs(t-a[i]);
		printf(" --> %d",a[i]);
		t=a[i];
	}
	printf("\n");
	printf("总移动数: %d\n",sum);
} 
void SSTF() //用二分搜索优化  时间复杂度 O(nlogn) 
{
	int sum=0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值