DJ5-8 磁盘存储器的性能和调度

news2024/10/6 8:21:57

目录

5.8.1  磁盘性能简述

1、磁盘的结构和布局

2、磁盘的类型

3、磁盘数据的组织和格式

4、磁盘的访问过程

5、磁盘访问时间

5.8.2  磁盘调度算法

1、先来先服务 FCFS

2、最短寻道时间优先 SSTF

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

4、循环扫描算法 CSCAN

5、磁臂粘着

6、调度算法的选择


5.8.1  磁盘性能简述

1、磁盘的结构和布局

图中水墨色空心圆柱就是所有盘面上的 0 号磁道对应的柱面。

  • 磁盘片:每个磁盘片都有两个盘面,一个磁盘可以有一个或多个磁盘片。
  • 盘面上有:磁道 -- 扇区,磁道间隔 -- 扇区间隔。
  • 磁道:用于记录信息,每个磁道又被分为了多个扇区。
  • 扇区:又被称为盘块或数据块,大小为 600B,存储数据 512B 。
  • 柱面:所有盘面上位于同一磁道号上的所有磁道组成一个柱面。
  • 磁头:每一个盘面都有一个磁头。

扇区除了存储数据的字节,其它的字节用于校验数据和记录状态。

物理地址形式:柱面号 -- 磁头号 -- 扇区号

柱面号用于指示是哪个磁道,磁头号用于指示是哪个盘面。

2、磁盘的类型

  • 固定头磁盘:每个磁道都有一个磁头,I/O 速度快。
  • 移动头磁盘:每个盘面仅有一个磁头,I/O 速度慢

3、磁盘数据的组织和格式

典型的参数
20GB60GB
39813 柱面28733 柱面
16 头16 头
63 扇区255 扇区

柱面 -- 磁道数;头 -- 盘面数

4、磁盘的访问过程

由三个动作组成:

  1. 寻道:磁头移动定位到指定的磁道。
  2. 旋转延迟:等待指定的扇区从磁头下旋转经过。
  3. 数据传输:数据在磁盘与内存之间的实际传输。

5、磁盘访问时间

旋转延迟时间取的是一个均值,极端情况分别为:扇区刚好在磁头下和扇区刚好错过磁头。

5.8.2  磁盘调度算法

当有多个进程都请求访问磁盘时,由于它们访问的磁道各不相同,因此磁头需要频繁地来回移动以进行寻道操作。

磁头的寻道操作属于机械运动,花费的时间较长,而且过度的寻道操作会大大缩短磁盘的寿命。因此,必须采用适当的磁盘调度算法,使得在尽可能公平的情况下,缩短平均寻道时间,并使磁头移动距离最小。

1、先来先服务 FCFS

按访问请求到达的先后次序服务。

  • 优点:简单,公平。
  • 缺点:效率不高。

相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。

例、假设磁盘访问序列:98,183,37,122,14,124,65,67,磁头起始位置:53,问:

  • 安排磁头的服务序列
  • 计算磁头移动总道数

  • 磁头移动总道数:640
  • 平均寻道长度:80

2、最短寻道时间优先 SSTF

优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。

  • 优点:改善了磁盘平均服务时间。
  • 缺点:造成某些访问请求长期等待得不到服务。

注意:计算时一定要仔细,不要选错了下一磁道!

  • 磁头移动总道数:236
  • 平均寻道长度:29.5

SSTF 算法虽然能获得较好的寻道性能, 但却可能导致某个进程发生饥饿现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的 I/O 请求将会被优先满足。而距离较远的老进程将会一直得不到满足。

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

对 SSTF 算法略加修改后所形成的 SCAN 算法, 即可防止进程出现饥饿现象。SCAN 算法克服了 SSTF 算法的缺点,既考虑了距离又考虑了方向。

SCAN 具体做法

① 当设备无访问请求时,磁头不动;

② 当设备有访问请求时,磁头按一个方向移动。在移动的过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;

③ 否则改变移动方向,并为经过的访问请求服务,如此反复。

SCAN 算法举例

例、假设磁盘访问序列:98,183,37,122,14,124,65,67,磁头起始位置:53,并且此时磁头是在向内移动。

  • 磁头移动总道数:208
  • 平均寻道长度:26

SCAN 算法的优缺点

① 优点:SCAN 算法既能获得较好的寻道性能,又能防止饥饿现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。

② 缺点:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。

为了减少这种延迟,推出 CSCAN 算法,规定磁头单向移动。

4、循环扫描算法 CSCAN

SCAN 算法杜绝了饥饿,但假如对磁道的请求是均匀分布的,那么在磁头改变方向时便会发现:靠近磁头的请求很少(因为改变方向前刚刚服务过),而远离磁头的请求较多,从而导致这些请求的等待时间较长。

CSCAN 具体做法

  • 总是按照一个方向进行移动,假设是从里向外移动。
  • 移动臂到达最后一个柱面后,立即带动磁头快速返回到最里的欲访问磁道。
  • 返回时磁头不为任何访问请求服务,直到返回后才开始对访问请求进行扫描。

CSCAN 算法举例

虽然返回的过程中没有为任何访问请求进行服务,但是在计算总磁道时还是要计算返回时移动经过的磁道数。

例、假设磁盘访问序列:98,183,37,122,14,124,65,67,磁头起始位置:53,并且此时磁头是在向外移动。

  • 磁头移动总道数:352
  • 平均寻道长度:44

5、磁臂粘着

在 SSTF、SCAN 及 CSCAN 这几种调度算法中, 都可能出现磁臂停留在某处不动的情况。

例如,有一个或几个进程对某一磁道有较高的访问频率, 即这个/这些进程反复请求对某一磁道的 I/O 操作,从而垄断了整个磁盘设备。

我们把这一现象称为磁臂粘着(Armstickiness)。

在高密度磁盘上容易出现此情况:因为与低密度磁盘相比,它在一个扇区/一条磁道中容纳的数据更多,所以可能导致进程需要多次访问才能读取完其中的数据。

6、调度算法的选择

  • 实际系统相当普遍地采用 SSTF 算法,因为它简单有效且性价比好。
  • SCAN 算法更适用于磁盘负担重的系统。
  • 磁盘负担很轻的系统也可以采用 FCFS 算法。

一般要将磁盘调度算法作为操作系统的单独模块编写,利于修改和更换。

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

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

相关文章

4 IK分词器

4 IK分词器 4.1测试分词器 在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终 找到词关联的文档。 测试当前索引库使用的分词器: post 发送&#xff…

Python计算语义分割模型的评价指标

目录 一、混淆矩阵 二、分类指标 1、Accuracy(准确率) 2、Precision(查准率) 3、Recall (查全率) 4、F1-score 三、语义分割的评价指标 1、MPA(类别平均像素准确率) 2、IoU(交并比) 3、MIoU(平均交并比) 4…

STL-stack容器和queue容器

stack概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 与queue相似,stack也是一个适配器类,它给底层vector提供了典型的栈接…

C语言——数组

哈喽,大家好,今天我们要学习的是数组的相关知识。 目录 1.什么是数组 2.一维数组 2.1一维数组的创建和初始化 2.2一维数组的使用 2.3一位数组在内存中的存储 3.二维数组 3.1二维数组的创建和初始化 4.2二维数组的使用 4.3二位数组在内存中的存储…

java安全编码规范(0)

JAVA安全编码标准 有这么一指导书,新手可以去看看,这里主要从实践总结,随时会更新。 主要从十个方面去了解下,实际上远远不只这些哦。 ​​​​​​​ 1、引用java security library 环境需求 Java 8Maven 3 a、编译jar包&a…

「锂」清思绪,触达未来 | 锂电池企业如何实现数字化破局?

锂电池制造的困局与破局 锂电池行业产业链的上游主要为正负极材料、电解液、电极基材、隔膜等领域的供应商;中游为电芯制造及封装行业;下游则主要是动力电池、消费电子等锂电池的应用领域。 图1:锂电池行业产业链 近年来,随着相…

虹科方案 | 适用于高压环境或潜在爆炸性环境的加速度计系统

PART 1 加速度系统 加速度计系统通常用于测量振动或运动。测量系统能够记录一个、两个或三个空间方向的运动。所实际使用的传感器是光纤传感器,可提供不受电磁干扰影响的可靠测量值。当然,这样的系统具有高可靠性,即使在不断变化的天气条件下…

转置卷积(Transposed Convolution)可视化过程

目录 1. 介绍2. 标准卷积3. 转置卷积4. 总结 1. 介绍 转置卷积(Transposed Convolution)经常也被称作反卷积,所谓反卷积即为通过标准卷积层生成的输出被反卷积,将得到原始输入。而转置卷积不按值反转标准卷积,而仅按维…

STM32F4_待机唤醒详解

目录 1. 低功耗模式 1.1 降低系统时钟速度 1.2 外设时钟门控 2. 睡眠模式 2.1 进入睡眠模式 2.2 退出休眠模式 3. 停止模式 3.1 进入停止模式 3.2 退出停止模式 4. 待机模式 4.1 进入待机模式 4.2 退出待机模式 4.3 电源控制寄存器:PWR_CR 4.4 电源控…

‘OpenpyxlWriter‘ object has no attribute ‘save‘

使用read_sql(sql,conn)来获取数据库查询的结果, 在将处理完成的表格保存下来时,可能会显示如下错误: 将writer.save()改成writer._save()就可以解决这个问题了。

必须了解的mysql三大日志-binlog、redo log和undo log

目录 一,前言二,binlog-备份日志1,作用2,使用场景3,日志形式4,binlog刷盘时机 三,redo log-重做日志1,概念2,为什么需要redo log3,日志形式4,redo…

数据结构之树(一)

一.概念 边:一棵n个结点树有n-1条边 结点深度:从根到当前结点的路径的深度。 结点高度:从当前结点到叶子结点最长路径的长度。 树的性质 树中的结点总数等于所有结点的度1;m叉树中第i(i>1)层上至多可以有m^(i-1)个节点; 高…

互联网大厂手把手教你搭建数据服务中台(附下载链接)

摘要: 随着公司业务的发展,对于数据的需求会越来越多。怎么在业务系统中高效的使用数据,让业务系统处理大数据时化繁为简,数据服务化基本是必经之路。那么什么是数据服务化,简单理解就是数据SaaS,通过一些数据库语言把…

true or false?

有同学在星球问了这样一个问题。 代码是这样的: public class Main {private static final Main instance new Main();private boolean b a;private static boolean a initA();private static boolean c a;private static boolean initA() {return true;}priva…

洛谷B2099 矩阵交换行

矩阵交换行 题目描述 给定一个 5 5 5 \times 5 55 的矩阵(数学上,一个 r c r \times c rc 的矩阵是一个由 r r r 行 c c c 列元素排列成的矩形阵列),将第 n n n 行和第 m m m 行交换,输出交换后的结果。 输入格式 输入共 6 6 6 …

DataEase 本地源码启动详细教程

本教程将引导你通过本地源码部署的方式启动 DataEase,同时我还录制了相应的视频教程,你可以跟随视频进行操作: DataEase 本地源码启动_哔哩哔哩_bilibili 1、下载并安装IDEA开发工具 2、下载安装Mysql 5.7 以及 JDK 1.8 如果你使用的是wi…

使用pdf.js展示pdf文件(亲测可用)

简单的实现方式 如果只是电脑端,可通过 iframe 标签嵌套预览 ios手机端可通过 a 标签包裹点击跳转预览(安卓端不行) 安卓电脑ios的通用方法 资料 老版本github地址 全版本地址 获取当前客户端类型 judgeClient() {let client if (/(iPh…

鲁大师智能化评测新项目——鲁大师真续航测试1.0正式发布

随着社会的高速发展,人们出行的交通工具正变得多种多样,有电单车、摩托车、自行车、两轮平衡车、甚至滑板等。不过如我们所见,电动两轮车已经成为了大多数近途出行用户的选择,因电单车具有方便、快捷、灵活、小巧、易停放等优点而…

MySQL基础篇4

MySQL基础 1. 数据类型1.1 整数类型1.2 浮点类型1.3 定点数类型1.4 位类型1.5 日期时间类型1.6 文本字符串类型1.6.1 CHAR类型和VARCHAR类型1.6.2 TEXT类型 1.7 ENUM枚举类型1.8 SET类型1.9 二进制字符串类型1.10 JSON数据类型 2. 约束2.1 前置知识2.1.1 为什么需要约束2.1.2 约…

亚马逊云科技围绕需求发力,赋能医疗与生命科学行业数字化创新

2023年4月27日,亚马逊云科技医疗与生命科学行业峰会召开,会议汇聚了业界专家和思想领袖,共同探讨行业数字化转型和创新之道。作为全球医疗及生命科学行业云计算引领者,亚马逊云科技将围绕数据、算力和行业用户体验三大需求发力&am…