【系统架构设计师】计算机组成与体系结构 ⑩ ( 磁盘管理 | 磁盘移臂调度算法 | 先来先服务算法 | 最短寻道时间优先 | 扫描算法 | 循环扫描算法 )

文章目录

  • 一、磁盘移臂调度算法
    • 1、磁盘移臂调度算法简介
    • 2、先来先服务算法
    • 3、最短寻道时间优先
    • 4、扫描算法
    • 5、循环扫描算法
  • 二、最短寻道时间优先算法示例






一、磁盘移臂调度算法




1、磁盘移臂调度算法简介


磁盘 数据块读取 的 性能 主要由

  • 寻道时间
  • 旋转延时

决定 ;

旋转延时 是 硬盘的 盘面 持续保持匀速旋转 实现的 , 这是 硬盘 本身的硬件特性 , 该延时没有规律 ;

磁头的寻道时间 , 是可以使用算法进行优化的 , 该算法称为 " 移臂调度算法 " ,

" 磁盘移臂调度算法 " 在 磁盘调度器 Disk Scheduler 中实现 , 用于 用于优化磁盘访问时间 , 以最小化 磁头移动时间 和 优化磁盘 访问顺序 ;


" 磁盘移臂调度算法 " 有如下几种 :

  • 先来先服务 , FCFS , First Come First Served
  • 最短寻道时间优先 , SSTF , Shortest Seek Time First
  • 电梯算法 Elevator Algorithm / 扫描算法 SCAN
  • 循环扫描算法 , C-SCAN , Circular SCAN

2、先来先服务算法


先来先服务 , FCFS , First Come First Served , 谁先申请 , 就先让谁访问磁盘数据 , 这是最简单的磁盘调度算法 , 按照请求到达的顺序依次处理 ;

先来先服务 FCFS 算法 的 缺点是 磁头在磁盘上无规律地移动 , 造成平均等待时间较长 , 效率很低 ;


下面是 先来先服务 FCFS 算法 示例 ,

左侧的 ① ② ③ ~ ⑨ 是 申请的 顺序序号 ,

初始状态下 , 磁头位于 100 号磁道 ;

第 ① 个数据请求 , 申请访问 55 号磁道 , 根据 先来先服务 的 算法原则 , 先为 申请 ① 服务 , 需要从 100 号磁道 移动到 55 号磁道 , 移动了 45 个磁道 ;

第 ② 个数据请求 , 申请访问 58 号磁道 , 当前处于 55 号磁道 , 移动 3 个磁道 , 去访问 58 号磁道 ;

最终访问完 ① ~ ⑨ 这 9 个数据请求 , 平均每个数据请求 寻道长度为 55.3 个 ;

在这里插入图片描述


3、最短寻道时间优先


最短寻道时间优先 , SSTF , Shortest Seek Time First , 每次选择 最靠近当前磁头位置的请求 进行处理 , 以最小化寻道时间 ;

最短寻道时间优先 SSTF 算法 相比于 先来先服务算法 在效率上是有提升的 ;

最短寻道时间优先 SSTF 算法的 缺点是 可能会因为 频繁访问某些区域 而 导致其他区域的请求 长时间等待 , 可能产生饥饿现象 ;


下面的案例是 最短寻道时间优先 算法示例 :

初始位置时 100 号磁道 ,

先后出现了 ① ~ ⑨ 九个数据访问请求 , 磁头寻道 并不会按照 请求顺序 进行寻道 ,

而是按照 磁道 距离进行 寻道 ;

离 初始位置 100 号磁道 , 最近的 被访问磁道号 是 90 , 那么优先访问 90 号磁道 , 跨越 10 个磁道 , 访问完毕后 , 处于 90 号磁道位置 ;

距离 90 号磁道 最近的是 58 号磁道 , 跨越 32 个磁道 , 访问完毕后 , 处于 58 号磁道位置 ;

距离 58 号磁道 最近的请求是 55 号磁道 , 跨越 3 个磁道 , 访问完毕后 , 处于 55 号磁道 ;

以此类推 …

访问完 最后一个数据后 , 9 个寻道平均寻道个数是 27.5 个磁道 ;

在这里插入图片描述


4、扫描算法


扫描算法 SCAN 又叫做 电梯算法 Elevator Algorithm ;

扫描算法 SCAN 的运行机制是 模拟电梯的运行方式 , 沿着一个方向移动磁头 , 直到遇到 最边缘的请求 , 然后改变方向移动 ;

扫描算法 SCAN 适合处理相对均匀分布的请求 , 能有效减少平均等待时间 ;


5、循环扫描算法


循环扫描算法 , C-SCAN , Circular SCAN , 沿着一个方向移动磁头 , 直到 磁头 移动到 最边缘 , 当到达最边缘时直接跳到另一边的最边缘 , 形成一个循环 ;

循环扫描算法 适合处理特定模式的请求分布 , 可以减少平均等待时间 ;





二、最短寻道时间优先算法示例



初始状态下 , 磁头位于 15 号 磁道 / 柱面 , 下面是 6 个数据访问请求 , 以及数据所在的磁道 , 采用 最短寻道时间优先算法 , 计算其 数据访问 序列 ;


磁道 就是 柱面 , 二者含义相同 ;

磁头号 是 磁头在不同 盘面 的编号 , 一个硬盘 有 6 个盘面 , 则每个盘面上都有一个磁头 ;

扇区 是 同一个磁道 的 不同角度区域 , 磁头在磁道上以后 , 靠 磁盘旋转 切换扇区 ;


一般在软考中 , 只需要关注 磁道 即可 , 不需要关注 磁头号 和 扇区号 这两个迷惑选项 ;

在这里插入图片描述

计算过程 :

初始状态 , 磁头位于 15 号磁道 ;

  • 当前离 15 号 最近的 磁道 是 ① 和 ⑤ 请求 , 都在 12 磁道中 ;
  • 先 响应 ① 和 ⑤ 请求 , 具体先响应那个 , 无从判断 , 可能是 ①⑤ , 也可能是 ⑤① ;

响应完 ①⑤ 请求后 , 当前处于 12 号磁道 , 离 12 号磁道最近的是 ② 和 ④ 请求的 19 号 磁道 ;

然后访问 ③ 号请求的 23 号磁道 ,

最后访问 ⑥ 号请求的 28 号磁道 ;

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

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

相关文章

ROS 2官方文档(基于humble版本)学习笔记(四)

ROS 2官方文档(基于humble版本)学习笔记(四) 2.客户端库使用colcon构建包(package)创建工作空间(workspace)构建工作空间执行测试(tests)导入环境&#xff08…

第十四届蓝桥杯省赛C++B组G题【子串简写】题解(AC)

题目大意 给定字符串 s s s,字符 a , b a, b a,b,问字符串 s s s 中有多少个 a a a 开头 b b b 结尾的子串。 解题思路 20pts 使用二重循环枚举左端点和右端点,判断是否为 a a a 开头 b b b 结尾的字符串,是则答案加一…

一阶滞后滤波法

一阶滞后滤波法 一阶滞后滤波法:取a=0到1,本次滤波结果=(1-a)乘以本次采样值+a乘以上次滤波结果。 优点: 对周期性干扰具有良好的抑制作用;适用于波动频率较高的场合。 缺点: 相位滞后,灵敏度低;滞后程度取决于a值大小;不能消除滤波频率高于采样频率1/2的干扰信号。 …

Stable Diffusion:最全详细图解

Stable Diffusion,作为一种革命性的图像生成模型,自发布以来便因其卓越的生成质量和高效的计算性能而受到广泛关注。不同于以往的生成模型,Stable Diffusion在生成图像的过程中,采用了独特的扩散过程,结合深度学习技术…

精通Perl正则表达式修饰符:提升文本处理能力的艺术

Perl语言以其强大的文本处理能力而闻名,其中正则表达式是其核心特性之一。正则表达式本身非常强大,但Perl提供的修饰符(Modifiers)进一步扩展了正则表达式的灵活性和表达能力。本文将深入探讨Perl中正则表达式修饰符的使用&#x…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024亚太杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

【C++:类的基础认识和this指针】

C的类与C语言的struct结构体有啥区别? 默认的访问限定符不同 类的简要 关键字:class{}里面是类的主体,特别注意:{}后面的;不可以省略类中的变量叫做成员变量,类中的函数叫做成员函数类中访问有三种访问权限…

单/多线程--协程--异步爬虫

免责声明:本文仅做技术交流与学习... 目录 了解进程和线程 单个线程(主线程)在执行 多线程 线程池 协程(爬虫多用) 假异步:(同步) 真异步: 爬虫代码模版 异步-爬虫 同步效果--19秒 异步效果--7秒 了解进程和线程 ​ # --------------------> # ------> # …

Anaconda新建python版本

由于新版本的Anaconda自带的python是3.11的,国内镜像一些库,不好下载。特更新为常见的python3.9 1.新建环境,指定新python版本 #conda create --name 名称 python(版本) #示例 conda create --name liuenv python3.9 #指定环境的存储位置 c…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适…

WAIC:生成式 AI 时代的到来,高通创新未来!

目录 01 在终端侧算力上,动作最快的就是高通 02 模型优化,完成最后一块拼图 在WAIC上,高通展示的生成式AI创新让我们看到了未来的曙光。 生成式 AI 的爆发带来了意想不到的产业格局变化,其速度之快令人惊叹。 仅在一个月前&…

SchedulingConfigurer使用教程

SchedulingConfigurer使用教程:Java定时任务的高阶使用 在 Java 开发中,定时任务的管理和执行是一个常见需求。Spring 提供了多种方式来处理定时任务,其中 SchedulingConfigurer 是一个强大且灵活的接口,允许我们对定时任务进行更…

说一下浏览器中的强缓存和协商缓存的区别

写在前面 对于一道高频的面试题,可能很多小伙伴还不知道这两者的概念,不知道是用来做什么的,以及有什么好处,强缓存和协商缓存是 Web 缓存机制的重要组成部分,它们在优化 Web 应用性能方面发挥了重要作用,…

Vue + SpringBoot:el-upload组件单文件、多文件上传实战解析

文章目录 单文件上传后端前端 多文件上传后端前端 单文件上传 后端 PostMapping("/uploadDxfFile") public R uploadDxfFile(RequestParam(value "file", required true) MultipartFile multipartFile) throws Exception {// 文件校验工作if (multipar…

web Worker学习笔记 | 浏览器切换标签,定时器失效的解决办法

文章目录 web Workerweb Worker介绍 - 多线程解决方案浏览器多进程架构 web workers 的使用关闭worker引用其他js文件 浏览器切换标签,定时器失效的解决办法窗口可见性 API解决定时器失效的方案 web Worker web Worker介绍 - 多线程解决方案 Web Workers 是Html5提…

服务器数据恢复—DS5300存储raid5阵列数据恢复案例

服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头4个扩展柜,50块硬盘组建2组RAID5磁盘阵列(一组raid5阵列有27块成员盘,存放Oracle数据库文件;另外一组raid5阵列有23块成员盘)。存储…

大带宽独立服务器的购买和配置流程是怎样的?

在当前互联网时代,大带宽独立服务器越来越受到企业和个人用户的青睐。其稳定性和高速的数据传输速率可以为用户提供更好的互联网体验。下面我们将详细介绍如何购买和配置大带宽独立服务器。 第一步:选择合适的服务器提供商 在选择服务器提供商时&#…

CF1982D Beauty of the mountains

【题意】 Nikita 喜欢爬山。当地的山可以看作一个由 ( n m ) (n \times m) (nm) 个格子组成的 n m n \times m nm 的矩形,每一个格子都有一个初始非负高度 a i , j a_{i,j} ai,j​。 格子有两种类型: 有雪无雪 Nikita 有一种超能力:…

数组相关内容

一、数组 就是一个集合,里面存放了相同类型的数据元素 特点: 1.数组中的每个数据元素都是相同的数据类型 2.数组是由连续内存位置组成的 二、一维数组 定义方式 1.数据类型 数组名[数组长度]; 2.数据类型 数组名[数组长度]{值1&#xff0…

Jacoco的覆盖率原理

收集覆盖率信息的方法 Runtime Profiling Runtime Profiling是一种在程序运行时进行的性能分析技术,它可以帮助开发者了解程序的运行情况,识别性能瓶颈和优化程序性能。由于是在程序运行时进行,runtime profiling 能够提供实时的数据,便于理解程序在实际运行条件下的行为…