计算机导论——第37章 磁盘驱动器

news2024/12/24 9:14:51

关键问题:如何存储和访问磁盘上的数据

现代磁盘驱动器如何存储数据?接口是什么?数据是如何安排和访问的?磁盘调度如何提高性能?

1. 接口

驱动器制造商唯一保证的是单个512字节的写入是原子的,即它将完整地完成或者根本不会完成,因此,如果发生了不和时宜的掉电,则只能完成较大写入的一部分。

通常可以假设访问驱动器地址空间内两个彼此靠近的块将比访问两个相隔很远的块更快,人们通常可以假设访问连续块是最快的访问模式,并且通常比任何更随机的访问模式快得多。

2. 基本几何形状

3. 简单的磁盘驱动器

单磁道延迟——旋转延迟rotational delay, rotation delay:必须等待期待的扇区旋转到磁头下

多磁道延迟——寻道时间,驱动器将磁盘臂移动道正确的磁道的时间

完整的I/O时间图包括了:首先寻道,然后等待转动延迟,最后传输。

磁道偏斜,许多驱动器会采用这种方式,以确保即使在跨越磁道边界时,顺序读取也可以方便地服务

现代磁盘驱动器还有一个重要组成部分时缓存,也被称为磁道缓冲区

在写入数据时,驱动器面临一个选择:它应该将在数据放入其内存之后,还是写入实际写入磁盘之后回报写入完成?前者称为后写缓存(有时也称立即报告),后者则称为直写,前者往往更快,但可能有危险。

4. I/O时间:用数学

T_I/O = T_寻道 + T_旋转 + T_传输

I/O速率定义

R_I/O = 传输大小 / T_I/O

两种常见的负载:

  • 随机工作负载,它向磁盘上随机位置发出小的读取请求
  • 顺序工作负载,只是从磁盘连续读取大量扇区,不会跳过

随机和顺序工作负载之间的驱动性能差距很大

高端性能驱动器与低端容量驱动器之间的性能差异很大

5. 磁盘调度

由于I/O的高成本,操作系统在决定发送给磁盘I/O顺序方面来发挥作用。

与任务调度不同,每个任务的长度通常是不知道的,对于磁盘调度,我们可以很好地猜测任务(即磁盘请求)需要多长时间。磁盘调度程序将尝试在其操作中遵循SJF最短任务优先的原则。

SSTF:最短寻道时间优先,按磁道对I/O请求队列排序,选择在最近磁道上的请求先完成:操作系统可以使用最近块优先,Nearest-Block-First

但是这里有一个问题:饥饿问题,SSTF对磁道当前所在位置的内圈磁道有稳定的请求,而忽略对其他磁道对请求。

解决上面问题可以使用电梯算法,又称SCAN或C-SCAN,简单地以跨越磁道对顺序来服务磁盘请求,我们将一次跨越磁盘称为扫一遍。因此,如果请求的块所属的磁道在这次扫一遍已经服务过了,它就不会立即处理,而是排队等待下次扫一遍

SPTF:最短定位时间优先

  • 寻道时间远远高于旋转延迟,那么SSTF或者变体就好了
  • 查找和旋转大致相当,因此SPTF是有用的,它提高了性能

其他调度问题

  • 在较早的系统中,操作系统完成了所有的调度
  • 在现代系统中,操作系统调度程序通常会选择它认为最好的几个请求,并将它们全部发送到磁盘。磁盘然后利用其磁头位置和详细的磁道布局信息等内部知识,以最佳可能SPTF顺序服务于这些请求
  • 磁盘调度程序执行的另一个重要的相关任务是I/O合并,可以降低开销,在向磁盘发出I/O之前系统应该等待多久?这是个复杂的问题

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

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

相关文章

计算机硬件(二)

1.内存和内存条的用途 假设运行内存16个g,能开多少软件 后台和前台能同时运行多少APP RAM越大越好 464 6128 8128 10256 例子: 8gx216g 两根内存条 16g运行内存 2.内存频率的用途 DDR5 DDR4 DDR3 后面的数字越大,越好,可以理解为传输的速度,内存搭配主…

【实战教程】PHP如何轻松对接腾讯云COS,实现文件上传下载?

腾讯云提供了一系列丰富的云服务,其中包括对象存储(Cloud Object Storage,简称COS),它是一种高可靠性、可扩展性强的云存储服务。本文将介绍如何使用PHP对接腾讯云COS存储服务,实现文件的上传和下载功能。 …

Pytest做性能测试?

Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …

这是怎么了?继阿里11月故障后,淘宝这个问题20 天了还未修复!

继11月12号,阿里云发生大面积故障故障以来,已经过去了近 20天,但是截止到发文时间,作者发现淘宝还有部分功能存在问题,没法正常使用。 难道真是降本增笑,开猿截流,导致没有相关负责人员了&…

什么是勒索软件

勒索软件 1. 定义2. 勒索软件的类型3. 勒索软件的工作方式4. 如何处置勒索软件 1. 定义 勒索软件又称勒索病毒,是一种特殊的恶意软件。勒索软件的特殊之处在于,它采用加密等技术手段限制受害者访问系统或系统内的数据(如文档、邮件、数据库、…

wps备份功能 救了我一命

感谢wps备份功能 救了我一命 文章目录 感谢wps备份功能 救了我一命**📝场景回现,往后再不干了**🧣灵光一现📇备注中心的设置流程🖊️最后总结 📝场景回现,往后再不干了 小🐮今天接到…

数字人可以为文化传播带来什么?

近日,由哈萨克斯坦驻华大使馆、中国外文局文化传播中心、中关村科幻产业创新中心联合发起的中哈青年友谊数字人怡漾和苏路(Сұлу)正式发布。其中,代表中方形象的数字人怡漾,不仅将成为中哈青年文化交流的标志与代言…

如何在 AdsPower 浏览器中设置代理

AdsPower是一款反检测指纹浏览器,来自中国开发团队的一款对电子商务营销人员非常有用的强大工具,同时具有出色的英语支持。AdsPower浏览器的主要优势是其价格便宜,与竞争对手相比,但其功能和整体工作表现甚至不逊于Indigo。 AdsP…

2023开发者必备iOS开发工具

​ 工欲善其事,必先利其器。进行开发工作时,利用并熟练使用恰当的工具可以让工作效率得到大幅度提高。下边会介绍一些在进行iOS开发工作时常用的一些工具,本文并不对其进行展开,对使用方法及工作原理感兴趣的同学可以自行进行更深…

【多线程】-- 08 线程状态观测、线程优先级、守护线程

多线程 5 线程状态 5.5 线程状态观测 Thread.State线程可以处于以下状态之一: NEW:尚未启动的线程处于此状态RUNNABLE:在Java虚拟机中执行的线程处于此状态BLOCKED:被阻塞等待监视器锁定的线程处于此状态WAITING:正…

快手获客技巧:轻松获取高转化率的潜在客户!

**一、引言** 随着互联网的发展,越来越多的企业开始关注短视频平台,尤其是快手。作为中国最大的短视频平台之一,快手拥有庞大的用户群体和丰富的视频内容。通过掌握快手获客技巧,企业不仅可以获取更多潜在客户,还能提高…

Django回顾【四】之模型层

目录 一、基本使用 1、ORM框架 2、创建表 二、常用和非常用字段 三、常用和非常用字段参数 四、settings配置 五、基本操作 5.1 增加表记录 5.2 删除表纪录 5.3 更新表纪录 5.4 查询表纪录 六、 多表操作-创建关系 七、基于对象的跨表查询 八、基于链表的跨表…

Elasticsearch:为现代搜索工作流程和生成式人工智能应用程序铺平道路

作者:Matt Riley Elastic 的创新投资支持开放的生态系统和更简单的开发者体验。 在本博客中,我们希望分享 Elastic 为简化你构建 AI 应用程序的体验而进行的投资。 我们知道,开发人员必须在当今快速发展的人工智能环境中保持灵活性。 然而&a…

【沐风老师】3DMAX一键多曲线生成工具ChaosLine插件使用方法详解

3DMAX一键多曲线生成工具ChaosLine插件使用教程 3DMAX一键多曲线生成工具ChaosLine插件,沿着引导线路径形状生成规则(螺旋线等)和不规则(随机)形状的曲线。它允许你沿着任何引导形状创建有趣的图案和效果。这包括电线、…

【寒武纪(6)】MLU推理加速引擎MagicMind,最佳实践(一)

文章目录 MagicMind 依赖 示例C 编程模型sample_ops/sample_add 算子操作 混合精度部署多模型部署单模型多实例部署多卡部署 最佳实践1、性能指标吞吐率延时工具 mm_run性能优化 2内存工具Profiler工具3性能和精度差异说明 MagicMind 依赖 MM 是将训练好的模型转换成统一计算图…

异常详解~

Java提供的异常机制使程序的变得更加健壮【健壮性】,程序不会那么容易崩溃 异常详解 1.异常的基本概念 Java语言中,将程序执行过程中发生的不正常的情况称为异常 注:程序中的语法错误和逻辑错误不是异常 2.一个小case快速了解异常 public c…

FileInputStream 与 FileOutputStream

IO流:存贮和解决数据的存储方案 以上都是抽象类,不能创建实例 FileOutputStream 操作本地的文件,把文件写入本地磁盘 步骤: 1.创建字节输出流对象 参数是字符串表示的路径或者是File对象都是可以的如果文件不存在会创建一个新的…

ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】

文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索:提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例:2.2 英语学习助手2.3 Active-Prompt思维链(CoT)方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…

防孤岛装置在光伏发电、燃气发电等新能源并网供电系统的应用

• AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。 • 当发生孤岛现象时,可以快速切除并网点,使本站与电网侧快速脱离,保证整个电站和相关维护人员的生命安全**。 保护功能** ● 三段式过流…

【2024年趋势】推荐5个好用的产品手册制作工具

随着科技的快速发展,人们对于网站产品手册的需求也日益增加。一份详细且易用的产品手册可以帮助用户更好地了解和使用产品,提高用户满意度和忠诚度。之前整理了一期关于2023年我推荐的一些知识库软件,已经12月了,最近我也去关注了…