磁盘调度算法

  来自不同进程的磁盘I/O请求构成一个随机分布的请求队列。磁盘I/O调度的主要目标就是减少请求队列对应的平均柱面定位时间
目前常用的磁盘调度算法有:

  1. 先来先服务FCFS
  2. 最短寻道时间优先SSTF
  3. 扫描(SCAN)算法
  4. 循环扫描(CSCAN)算法


  假设磁盘访问序列:98,183,37,122,14,124,65,67。移动臂的运动方向:沿磁道号递减的方向移动。
读写头起始位置:53
(1)安排磁头服务序列
(2)计算磁头移动总距离(道数)

1.先来先服务
  • 按访问请求到达的先后次序服务
  • 优点:简单,公平;
  • 缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利
    图解
    在这里插入图片描述
    安排磁头服务序列为:98,183 ,37,122,14,124,65,67
    磁头走过的总道数:(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=640
2. 最短寻道时间优先(SSF)
  • 优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先
  • 优点:改善了磁盘平均服务时间;
  • 缺点:造成某些访问请求长期等待得不到服务
    图解
    在这里插入图片描述
    安排磁头服务序列为:65,67 ,37,14,98,122,124,183
    磁头走过的总道数:(65-53)+(67-65)+(67-37)+(37-14)+(98-14)+(122-98)+(124-122)+(183-124)=236
3. 扫描算法(电梯算法)
  • 克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向
  • 具体做法:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复
    图解
    在这里插入图片描述
    安排磁头服务序列为:37,14, 65,67 , 98, 122, 124, 183
    磁头走过的总道数:(53-37)+(37-14)+(65-14)+(67-65)+(98-67)+(122-98)+(124-122)+(183-124)=208
4 .循环扫描调度算法
  • 也称单向扫描算法。
  • 电梯算法杜绝了饥饿,但当请求对磁道的分布是均匀时,磁头回头,近磁头端的请求很少(因为磁头刚经过),而远端请求较多,这些请求等待时间要长一些。
  • 总是从0号柱面开始向里扫描。移动臂到达最后个一个柱面后,立即带动读写磁头快速返回到0号柱面。返回时不为任何的等待访问者服务。返回后可再次进行扫描
    图解
    在这里插入图片描述
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
磁盘调度算法是操作系统中的重要组成部分,它负责决定磁盘上的数据访问顺序,以提高磁盘的访问效率。常见的磁盘调度算法包括先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)等。在JavaFX中,我们可以通过图形化界面来实现磁盘调度算法的可视化演示。 首先,我们可以利用JavaFX提供的Canvas类来创建一个模拟磁盘的可视化界面,用于展示磁盘上的数据分布以及磁头的移动情况。然后,通过JavaFX的事件响应机制,可以实现用户输入磁盘访问请求的功能,比如输入某个磁道的请求,然后演示磁头移动的过程。 接着,我们可以编写相应的Java代码来实现各种磁盘调度算法的逻辑。比如实现FCFS算法时,可以按照请求的先后顺序来访问磁道;而实现SSTF算法时,则需要动态地选择距离磁头最近的磁道进行访问;而SCAN算法则需要模拟磁头来回扫描磁道的移动过程。 最后,将磁盘模拟界面和各种调度算法的逻辑结合起来,通过JavaFX的界面刷新机制,实时展示磁头的移动轨迹和磁盘的访问顺序。这样用户就可以直观地了解不同调度算法对磁盘访问效率的影响,从而更好地理解操作系统中的磁盘调度原理。这样的可视化演示不仅可以帮助学生更好地学习磁盘调度算法,也为开发人员提供了一个直观的工具来优化磁盘访问性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ronghua_yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值