磁盘调度(先来先服务算法)

选用简单算法先来先服务算法,模拟实现磁盘调度,在程序中采用输入访问序列,磁头位置默认为53,因为是先来先服务算法所以不考虑其他因素,只考虑访问序列的先后顺序,就是你输入的访问序列就是最后磁盘调度的结果(磁头一次访问的磁道号顺序),这里也不对磁盘调度的具体内容做详细介绍,自己可查阅相关资料进行参考。

已下使我自己的简单实现的代码,因为不涉及很难的知识点,在最后的计算磁头移动的总道数的时候需要考虑上一次和本次寻道的道数的大小,并根据大的减去小的(或者直接使用绝对值运行进行减法工作)。

import java.util.*;
public class Disk_test {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int poistion;
		System.out.println("请输入磁盘访问数目:");
		int num = sc.nextInt();
		System.out.println("请输入磁盘访问序列:");
		Disk[] d1 = new Disk[8];
		for(int i = 0;i
   
   
    
    = d1[i-1].getPoision()){
				sum = sum + d1[i].getPoision()-d1[i-1].getPoision();
			}else{
				sum = sum + d1[i-1].getPoision()-d1[i].getPoision();
			}
		}
		System.out.println();
		System.out.println("磁头走过的总道数:"+sum);

	}

}

class Disk {
	//选择先来先服务
	private int poision;  //磁盘访问序列
	private int Nowpoision = 53;
	
	
	
	public Disk(int poision) {
		super();
		this.poision = poision;
	}
	public int getPoision() {
		return poision;
	}
	public void setPoision(int poision) {
		this.poision = poision;
	}
	public int getNowpoision() {
		return Nowpoision;
	}
	public void setNowpoision(int nowpoision) {
		Nowpoision = nowpoision;
	}
	
	
}

   
   



这里的数字是我自己瞎写的,可以具体的要求自己编写。在类Disk中默认磁头位置已经设为53,当然你也可以根据具体情况进行设置。这就是这个简单的算法的实现,自己
也没有在代码中有很详细的注释,还是希望读者对这段简单的代码自己进行阅读,并且希望理解它,并最终对其升级,书写更高级一点的算法。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值