当前位置: 首页 > news >正文

1.2.7存储结构-磁盘管理:磁盘移臂调度算法、先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)、循环扫描(CSCAN)

1.2.7存储结构-磁盘管理:磁盘移臂调度算法、先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)、循环扫描(CSCAN)

  • 先来先服务(FCFS)
  • 最短寻道时间优先(SSTF)
  • 扫描算法(SCAN)
  • 循环扫描(CSCAN)
  • 例如

磁盘数据块的存取,耗时由两方面组成。

  • 一方面是垂直的寻道时间,
  • 一方面是旋转延长时间。

而这两个动作,旋转延迟实际上是保持匀速固定方向来转动的,这是计算机硬件自带的硬件特性,并没有任何规律可言,只有其中垂直寻道是可以产生移臂调度调度算法的区别,这个调度的过程我们称作移臂调度。

在移臂调度调度算法中,可以分为几种

  • 先来先服务(FCFS)
  • 最短寻道时间优先(SSTF)
  • 扫描算法(SCAN)
  • 循环扫描(CSCAN)

先来先服务(FCFS)

先来先服务(FCFS),意味着申请的顺序对应处理申请的顺序,谁先申请就先处理谁的,跟排队一样。这种算法比较简单,在效率上而言,相对来说没有较大的提高。

最短寻道时间优先(SSTF)

最短寻到时间优先(SSTF),这种算法在软考里比其他算法考的较多。这种算法是考虑每一次当前距离最短的是哪一个申请,谁离的比较近,就先响应谁。这种情况相比而言,在效率上是有所提高的。

扫描算法(SCAN)

扫描算法(SCAN),也叫做电梯算法。坐电梯是分不同的楼层,以及不同的方向上或下,在做电梯的过程当中,我们在不同的楼层去按向上或向下的按钮,我们会发现在整个不同楼层的位置上,比如固定的方向上,如电梯在上来的时候,经过的所有的提交的请求,都会去进行相应,然后当电梯到达最高层之后,我们又会让电梯反向移动,再将中间碰到的所有申请响应一遍。这种就是电梯算法,也叫做扫描算法。这种扫描的过程是一个双向扫描的过程,自内向外或者自外向内两个方向都可以,当前位于哪个方向上,题目一般都会告知。

循环扫描(CSCAN)

这种循环的过程是一个单向的过程,类似于在移动的过程中固定了某一个方向,比如固定由内到外,那么到达最高层并不会反向处理其它的进程,而是回到最外层再次进行相同方向的扫描。

以上四种算法而言,它所描述的都是磁头移动的过程,在这个磁头移动的过程当中,像最短寻道的话,如果离它比较近的磁头方向是在反向上,是有可能立即调整磁头的移动方向的,在电梯算法当中,也有可能去调整访问方向,针对移臂调度而言,考试中经常是通过判断访问序列是否符合某种算法。

例如

假设磁盘臂位于15号柱面,进程的请求序列如下表表示,如果采用最短移臂调度算法,那么系统的响应序列应为(B)。

请求序列柱面号磁头号扇区号
1289
1965
2396
19105
1284
28310
  • A:①②③④⑤⑥
  • B:⑤①②④③⑥
  • C:②③④⑤①⑥
  • D:④②③⑤①⑥

题目并没有告知磁道号,但是再磁盘当中,磁盘和柱面的含义其实差不多,因此由磁盘臂位于15号柱面,15相当于是磁道号。在这类问题中只需要区分磁道判断就可以,同一个磁道有多个扇区的话,先响应谁都是可以的。

12号磁道:①⑤
19号磁道:②④
23号磁道:③
28号磁道:⑥

由此可知,距离15号磁道最近的是12,然后是19,然后是23,然后是28.
因此①⑤或者⑤①在最前面,所以选B。

http://www.lryc.cn/news/13646.html

相关文章:

  • 2022年AI顶级论文 —生成模型之年(上)
  • Linux下程序调试的方法【GDB】GDB相关命令和基础操作(命令收藏)
  • 使用frp配置内网机器访问
  • 简述7个流行的强化学习算法及代码实现!
  • 朗润国际期货招商:地方政府工作报告中对于促进消费
  • 前端性能优化的一些技巧(90% chatGpt生成)
  • [软件工程导论(第六版)]第8章 维护(复习笔记)
  • Python - 绘制人体生物节律
  • 【NVMEM子系统】二、NVMEM驱动框架
  • 小波神经网络(WNN)的实现(Python,附源码及数据集)
  • 商标干货!所有企业都值得收藏!
  • 4次迭代,让我的 Client 优化 100倍!泄漏一个 人人可用的极品方案!
  • 并查集(高级数据结构)-蓝桥杯
  • 你是真的“C”——C语言详解求两个正数最小公倍数的3种境界
  • 【java】Spring Cloud --Feign Client超时时间配置以及单独给某接口设置超时时间方法
  • spark代码
  • 利用OpenCV的函数equalizeHist()对图像作直方图均衡化处理
  • 星河智联Android开发
  • 【C++】关联式容器——map和set的使用
  • Promise的实现原理
  • 【MFC】数据库操作——ODBC(20)
  • 旺店通与金蝶云星空对接集成采购入库单接口
  • Linux基础-学会使用命令帮助
  • MyBatis 之四(动态SQL之 if、trim、where、set、foreach 标签)
  • PAT (Advanced Level) Practice 1006 Sign In and Sign Out
  • Android入门第64天-MVVM下瀑布流界面的完美实现-使用RecyclerView
  • Windows PowerShell中成功进入conda虚拟环境
  • 【C++】类与对象理解和学习(中)
  • 每日英语学习(11)大英复习单词和翻译
  • x79主板M.2无法识别固态硬盘