【操作系统】磁盘调度算法

news2024/9/30 17:31:41

文章目录

  • 影响其访问的时间因素
  • 磁盘调度(移臂调度)
  • 常见的磁盘调度算法
    • 1、先来先服务算法(FCFS)
    • 2、最短寻道时间优先算法(SSTF)
    • 3、电梯调度算法(扫描算法SCAN)
    • 4、循环扫描算法(C-SCAN)
    • 5、N步扫描算法
    • 6、Linux磁盘调度算法


影响其访问的时间因素

读写一个磁盘块时,影响其访问的时间因素主要有三个方面:
寻道时间:磁头移动到指定磁道所需时间。
旋转延迟时间:等待指定扇区到达磁头下的旋转时间。
数据传输时间:数据在磁盘与内存之间的传输时间。

寻道时间占主导地位,所以减少平均寻道时间是改善系统性能的重要途径。

磁盘调度(移臂调度)

当多个磁盘I/O请求到来时,磁盘驱动程序需要安排I/O请求的处理顺序,这称为磁盘调度或移臂调度。

常见的磁盘调度算法

1、先来先服务算法(FCFS)

先来先服务算法根据磁道访问请求到来的先后顺序完成请求。

例:
假如系统先后到来对柱面12,80,5,60,95,20,86,35,72,55的访问请求,按照FCFS调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:12,80,5,60,95,20,86,35,72,55
磁头总共移动:80-12+80-5+95-5+95-20+86-20+86-35+72-35+72-55=479个磁道距离
响应一个请求平均需要移动:479/10=47.9个磁道(平均寻找长度)

优点:公平,简单;如果请求访问的磁道比较集中的话,算法性能很好;
缺点:很难优化寻道时间;如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间很长。

2、最短寻道时间优先算法(SSTF)

最短寻道时间优先算法总是优先满足距离磁头当前位置最近的访问请求。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55的,假定磁头位置当前在60号柱面。按照SSTF调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:60,55,72,80,86,95,35,20,12,5
磁头总共移动:60-55+95-55+95-5=135个磁道距离
响应一个请求平均需要移动:135/10=13.5个磁道(平均寻找长度)

优点:性能较好,平均寻道时间短;
缺点:可能产生“饥饿”现象。本例中,如果在处理95号磁道的访问请求时又来一个86号磁道的访问请求,处理86号磁道的访问请求时又来一个95号磁道的访问请求.如果有源源不断的86号、95号磁道的访问请求到来的话,35、20、12、5号磁道的访问请求就永远得不到满足,从而产生“饥饿”现象。

3、电梯调度算法(扫描算法SCAN)

SSTF算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。为了防止这个问题,可以规定,只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)
的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。

对于先后到达的磁盘访问请求,电梯调度算法首先选择移臂方向,磁臂在该方向上移动的过程中依次处理途经的各个访问请求,直到该方向上再无请求时,改变移臂方向,依次处理相反方向上遇到的各个请求。如果同一柱面上有多个请求,还需进行旋转优化。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55,假定磁头正从60号磁道开始,向磁道号增加方向移动。按照电梯调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:60,72,80,86,95,55,35,20,12,5
磁头总共移动:95-60+95-5=125个磁道距离
响应一个请求平均需要移动:125/10=12.5个磁道(平均寻找长度)

优点:性能较好,平均寻道时间较短,不会产生饥饿现象。
缺点:①只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了95号磁道的访问请求之后就不需要再往右移动磁头了。②SCAN算法对于各个位置磁道的响应频率不平均(如:假设此时磁头正在往右移动,且刚处理过55号磁道,那么下次处理55号磁道的请求就需要等磁头移动很长一段距离;而响应了95号磁道的请求之后,很快又可以再次响应95号磁道的请求了)

4、循环扫描算法(C-SCAN)

在该算法中,磁头仅在一个移动方向上提供访问服务。
磁臂从磁盘开始端柱面至结束端柱面移动的过程中依次处理途经请求,然后,直接返回开始端柱面重复进行,归途中并不响应请求。开始端与结束端柱面构成了一个循环。

例:
柱面访问请求到来顺序为:12,80,5,60,95,20,86,35,72,55,规定磁头向柱面号增加的方向移动时才访问磁道。柱面编号为0~100。
假定磁头正从60号柱面开始,向柱面号增加方向移动。按照循环扫描(C-SCAN)调度算法处理该请求序列。
在这里插入图片描述
柱面访问序列:60,72,80,86,95,100,0,5,12,20,35,55
磁头总共移动:100-60+55-0=95个磁道距离
响应一个请求平均需要移动:95/10=9.5个磁道(平均寻找长度)

优点:比起SCAN来,对于各个位置磁道的响应频率很平均。
缺点:只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了95号磁道的访问请求之后就不需要再往右移动磁头了;并且,磁头返回时其实只需要返回到5号磁道即可,不需要返回到最边缘的磁道。

5、N步扫描算法

6、Linux磁盘调度算法


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Microsoft Office 2016 VOL版下载

链接都是VOL版,和零售版功能是一样的,只是激活方便一些,三个下载链接,第一个是Office就是包含了Word、Excel、PPT那些的,另外两个一个是Visio,一个是Project,如果不需要的话,只下载第…

【HTML5】复习(二)

HTML5复习二1.代码一2.代码二3.CSS的引入方式4.选择器5.form表单的一些属性6.内联7. 音频视频8. 滑块、搜索、数字、URL9. 表单补充1.代码一 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head>&…

声明式事务的属性之隔离级别

声明式事务的属性之隔离级别 ①介绍 数据库系统必须具有隔离并发运行各个事务的能力&#xff0c;使它们不会相互影响&#xff0c;避免各种并发问题。一个事务与其他事务隔离的程度称为隔离级别。SQL标准中规定了多种事务隔离级别&#xff0c;不同隔离级别对应不同的干扰程度&…

智能家居创意DIY之智能灯泡

一、什么是智能灯 传统的灯泡是通过手动打开和关闭开关来工作。有时&#xff0c;它们可以通过声控、触控、红外等方式进行控制&#xff0c;或者带有调光开关&#xff0c;让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块&#xff0c;可与手机、家庭智能助手、或其他智能…

12.29日报

今天完成了数据库TestMrl的增删改查四个接口的开发&#xff0c;测试。 测试接口getQRcodeandscene 遇到的问题及解决 不知道在mapper中的增删改方法返回值int的值&#xff0c;和含义&#xff0c;在调用方法时也没有定义int来接参&#xff0c;都是直接调用。于是我定义int i&…

富丽宝石在港交所招股书再次“失效”,于海洋为控股股东

12月30日&#xff0c;贝多财经从港交所披露易了解到&#xff0c;富丽宝石国际控股有限公司&#xff08;下称“富丽宝石”&#xff09;在港交所的上市申请已经“失效”&#xff0c;目前已无法正常查看或下载。在此之前&#xff0c;富丽宝石先后于2021年6月28日、2022年6月29日在…

ERROR: PostCSS received undefined instead of CSS string

ERROR: PostCSS received undefined instead of CSS string 开发项目a的时候用的node版本比较低&#xff0c;拿到b项目的时候提示版本过低&#xff0c;要升级下node&#xff0c;本来想跟新下node的&#xff0c;后面发现nvm&#xff0c;node版本控制器&#xff0c;简单说就是下载…

Python Django入门

一、路由系统 1、Mac命令行安装django 环境 pip install django3.2 2、创建django项目 选择django项目 不同的py文件功能了解 urls.py views.py 可以使用django命令创建项目 1、Mac命令行安装django 环境 pip install django3.2 2、创建django项目 选择django项目 不通py…

中科院ZJ系列压电参数d33系数特性测试装置设计详细介绍

中科院ZJ系列压电参数d33系数特性测试装置设计详细介绍 中科院ZJ系列压电参数d33系数特性测试装置设计详细介绍 一、前沿分析&#xff1a;目前市场上主流的D33系数测试仪主要是中科院的ZJ-3型精密D33系数测量仪&#xff0c;ZJ-4型宽量程压电D33测量仪和ZJ-6型D33/31/D15型综合…

如何通过企业微信、飞书、钉钉消息通知接收双因子认证动态密码?

使用宁盾双因子认证H5令牌的用户每次登录时要切回到企业微信、飞书、钉钉工作台中&#xff0c;找到H5令牌小程序&#xff0c;点进去看动态码。记住或复制动态码后再切回登录界面输入验证。 路径合理&#xff0c;但实际使用场景下不够便捷。用户体验能否再优化&#xff1f; 这个…

Rockchip RK3566 Camera点亮

一.camera名词解释 在现代移动设备中&#xff0c;常用一种接口用来连接SOC和LCD和Camera,这种接口就是MIPI 其中SOC和LCD连接叫 DSI&#xff08;DisplayCommandSet&#xff09;,SOC和Camera连接叫CSI&#xff08;DisplaySerialInterface&#xff09;。 二.camera数据通路 一般…

collect2.exe: error: ld returned 1 exit status分析与解决

这里写自定义目录标题1、问题描述2、分析3、解决办法4、总结5、码字不易&#xff0c;点赞&#xff01;&#xff01;&#xff01;1、问题描述 Windows下进行网络编程&#xff0c;devc&#xff0c;运行.cpp程序时报如下错&#xff1a; [Error] ld returned 1 exit status报错图…

WebCollector

1.WebCollector简介 WebCollector也是一个基于Java的开源网络爬虫框架&#xff0c;其支持多线程、深度采集、URL维护及结构化数据抽取等。WebCollector项目的源码可以在GitHub上进行下载。相比于Crawler4j&#xff0c;WebCollector的可扩展性和适用性更强&#xff0c;如可以实现…

Labelme分割标注的使用(非常好)

博客转自于: Labelme分割标注软件使用 1. Labelme的使用 这里建议大家按照我提供的目录格式事先准备好数据&#xff0c;然后在该根目录下启动labelme&#xff08;注意启动目录位子&#xff0c;因为标注json文件中存储的图片路径都是以该目录作为相对路径的&#xff09; ├─…

Live800:降低客服成本,你必须了解的事

无论是售前咨询还是售后服务&#xff0c;咨询客服都是客户的“必经之路”&#xff0c;因此客服又被称为企业形象的“代言”、品牌美誉的“前台”、企业文化的一面“镜子”。 然而网友关于客服的吐槽&#xff0c;我们不时可以见到&#xff0c;有的客服答非所问&#xff0c;对产品…

一次明白 JDBC,ORM,JPA,SpringDataJPA 之间的关系

java持久层框架访问数据库一般有两种方式&#xff1a; 以SQL为核心&#xff0c;封装JDBC操作&#xff0c;如&#xff1a;MyBatis以java实体类为核心&#xff0c;将实体类和数据库表之间映射的ORM框架&#xff0c;比如&#xff1a;Spring Data JPA和Hibernate 接下来就是详细的…

blender指定地图影像数据作为背景

qgis导出一个层刚好温和 然后 切换到shading 默认只有表面化 bsdf 点击添加 图片纹理 选择图片&#xff0c;然后把那个颜色拦截到基础色就ok了&#xff0c;操作方法和ue类似 image.pnguv editing必须进入编辑模式 方可操作&#xff0c;如果要刚好铺满整个框&#xff0c;要开启那…

Django 学习 Day10

1.聚合查询 聚合查询是指对一个数据表中的一个字段的数据进行部分或全部的统计查询。差Book数据表中的全部书的平均价格、查询所有书的总数等都需要使用聚合查询。 聚合查询分为&#xff1a; &#xff08;1&#xff09;整表聚合 聚合函数的导入&#xff1a; from django.db.…

Qt QFileSystemModel类详解

文章目录一.QFileSystemModel类属性信号函数二.使用说明一.QFileSystemModel类 属性 nameFilterDisables : bool 此属性保存未通过名称筛选器的文件是隐藏还是禁用&#xff0c;默认值为trueoptions : Options 此属性包含影响模型的各种选项&#xff0c;默认情况下&#xff0c…

索引排序内部流程

select 查询字段是不是索引覆盖&#xff0c;覆盖到了就直接内存中排序&#xff0c;输出结果&#xff0c; 如果索引没有覆盖查询字段&#xff0c;计算select的字段释放超过单行所有字段总和限制&#xff0c;超过限制就进行双路排序&#xff0c;否则就使用单路排序 双路排序&…