浅谈磁盘存储器的性能和调度

1.先来先服务
根据进程请求访问磁盘的先后次序进行调度
优点:简单、公平
缺点:效率低,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加平均寻道时间。

2.最短寻道时间优先
要求访问的磁道距离最近,以使得每次的寻道时间最短,但是这种算法不能保证平均寻道时间最短。
优点:磁盘的平均寻道时间最小
缺点:进程“饥饿”现象,有时会造成当前磁道距离远的访问请求长期等待得不到服务(不公平)。一共10个进程,9个集中在一块,剩下的1个距离较远,就会导致这一个进程迟迟不能执行。

3.基于扫描的磁盘调度算法
(1)扫描算法
磁盘由外到内编号逐渐变大
SSTF算法的实质是基于优先级的调度算法,可能会导致优先级低的新进程所要访问的磁道与当前磁头的位置始终较近,使原本较远的进程一直得不到满足的进程发生“饥饿”现象。
扫描算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。
例如:
当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象

(2)循环扫描算法
SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,因此,广泛应用在大中小型机器和网络中的磁盘调度。
问题:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完成于外面的所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大推迟。
循环扫描算法是对扫描算法的改进。磁头单向移动(如向外),移动到最外磁道后立即返回最里面要访问的磁道,构成循环扫描。(如从小到大,再由大到小)

(3)NStepSCAN和FSCAN调度算法
NStepSCAN算法
在SSTF、SCAN及CSCAN几种调度算法中,都有可能出现磁臂停留在某处不动的情况。例如有一个或几个进程对某一磁道较高的访问频率,即这个进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂黏着”。
NStepSCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按照SCAN算法,对一个队列处理完毕后,再处理其他队列,这样就可以避免出现黏着现象。当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能,当N=1时,N步SCAN算法便蜕化为FCFS算法。

FSCAN算法
FSCAN算法实质上是对N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列,一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,将新出现的所有请求磁盘I/O的进程放入等待处理的请求队列,这样,所有的新请求都将被推迟到下一次扫描时处理。

磁盘高速缓存
利用内存中的存储空间来暂存从磁盘上读出的一系列盘块中的信息,这里的高速缓存是一组在逻辑上属于磁盘,物理上是驻留在内存中的盘块。
高速缓存是在内存中可以分为两种形式,第一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存,其大小是固定的,不会受到应用程序的影响,第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时共享,此时的高速缓存大小不再固定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天津 唐秙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值