操作系统(Operating System)知识点复习——第十一章 I/O管理与磁盘调度

news2024/11/26 23:45:09

目录

0.前言

1.I/O设备

2.I/O功能的组织

3.Operating System Design Issues

4.I/O缓冲

4.1 单缓冲Single Buffer

4.2 双缓冲Double Buffer

4.3 循环缓冲

5.磁盘调度Disk Scheduling

5.1 磁盘性能参数

5.2 磁盘调度策略

①First-in,first-out(FIFO)

②Priority优先级

③Last-in,first-out(LIFO)

④Shortest Service Time First(SSTF)

⑤SCAN电梯算法

⑥circular SCAN(c-SCAN)

⑦N-step-SCAN

⑧FSCAN

6.Redundant Array of Independent Disks(RAID)独立冗余磁盘阵列

6.1 RAID 0(non-redundant)

6.2 RAID 1(mirrored)

6.3 RAID 3(bit-interleaved parity)

6.4 RAID 4 (block-level parity)

6.5 RAID 5 (block-level distributed parity)


0.前言

本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

1.I/O设备

分类:

  • 人可读Human readable(用户之间通信):字符流(Printers、Display、Keyboard、Mouse)
  • 机器可读Machine readable(与电子设备通信):字符流和块数据(Disk and tape drives、Sensors、Controllers)
  • 通信Communication(与远端设备通信):报文message(Digital line drivers、Modems、Network device)

差异:

  • Data rate 传输速率
  • Application
  • Complexity of control
  • Unit of transfer
  • Data representation
  • Error conditions

2.I/O功能的组织

  • synchronous同步通信
    • Wait:发出读写请求,然后阻塞,等待服务完成中断后,继续执行
    • Not Wait:直接读或者写
  • asynchronous communication异步通信
    • 利用缓冲区
    • 发出读写请求,及设置缓冲区地址
    • 进程返回继续执行不阻塞
    • 等待服务完成中断通知CPU

I/O功能的发展:

  1. 处理器直接控制I/O设备
  2. 增加了控制器I/O模块
  3. 中断驱动的控制器或I/O模块
  4. 直接存储器访问Direct Memory Access(DMA):传送单位为块block不需要经过CPU
  5. I/O被增强为单独的处理器
  6. I/O处理器

3.Operating System Design Issues

两个重要目标:

  • Efficiency效率:操作系统应支持多道程序(并发),需要更多就绪队列
  • Generality通用性:希望在统一模式下处理所有I/O设备

4.I/O缓冲

  • Block-oriented面向块:信息存储在固定大小的块(block)中,每次传一个块(disk、tape)
  • Stream-oriented面向流:以字节流(byte)形式传输信息(terminals、printers、communication ports、mouse)

4.1 单缓冲Single Buffer
  • 面向块的单缓冲:操作系统在系统空间中为 I/O 请求分配一个缓冲区
    • 优点:缓冲期间允许把进程换出(交换可发生);用户进程可在读入下一个数据块时处理一个数据块
    • 缺点:OS要追踪进程对应缓冲区;同一磁盘中的交换会受影响
  • 面向流的单缓冲
    • Line-at-a-time fashion行缓冲一行一行传输,行末有回车
    • Byte-at-a-time fashion字节缓冲:传输遵循生产者模型

  • 没有缓冲的处理时间:T+C
  • 单缓冲的处理时间:max(T,C)+M

4.2 双缓冲Double Buffer

处理时间:max(T, C),如果C<T,则效果更明显

4.3 循环缓冲

5.磁盘调度Disk Scheduling

5.1 磁盘性能参数

  • Seek time寻道时间T_{s}:磁头从该磁道移动到目标磁道所需时间
    • 假设启动磁头需要s,每移动一个磁道耗时m,总共需要移动n条磁道,则T_{s}=s+m*n
  • Rotational delay旋转延迟转到目标扇区所需时间(设转盘转速为r,平均1/2圈,则旋转延迟为1/2r)
  • Transfer time传输时间:从磁盘读出或向磁盘写入数据所经历的时间,设转速r,写入/读出字节数b,每个磁道上字节数为N,则传输时间=b/rN
  • Access time存取时间T_{a}

5.2 磁盘调度策略

关键:减少寻道时间

①First-in,first-out(FIFO)

②Priority优先级

短批处理作业可能有更高的处理级

③Last-in,first-out(LIFO)

事物处理型(transaction processing)友好,可能有饥饿产生

④Shortest Service Time First(SSTF)

按照寻道时间从低到高执行,可能有饥饿

⑤SCAN电梯算法

朝一个方向单增/单减至头(到达请求的端点就可返回),然后再朝反方向行进

⑥circular SCAN(c-SCAN)

仅单增,到达头后回到底部再单增

⑦N-step-SCAN

将请求队列分为几个大小为N的子序列,子序列使用SCAN一次处理一个,当所有均被处理完后,新请求被加到其他队列

⑧FSCAN

两个队列,其中一个队列接收新请求

6.Redundant Array of Independent Disks(RAID)独立冗余磁盘阵列

数据分布在阵列的物理驱动器上

6.1 RAID 0(non-redundant)

  • RAID 0无冗余,冗余磁盘容量用于存储奇偶校验
  • 条带分布数据->可并行访问、高响应率
  • 无纠错->不稳定

6.2 RAID 1(mirrored)

  • 条带分布数据->可并行访问、高响应率
  • 镜像纠错
  • 写速度降低,读相应较好(可以并行任意读取一个)

6.3 RAID 3(bit-interleaved parity)

  • 条带分布数据
  • 位奇偶校验可纠错,一次只能一个I/O请求

6.4 RAID 4 (block-level parity)

  • 条带分布数据
  • 块奇偶校验位纠错->每次写需要操作2次读和2次写X4成为性能瓶颈

6.5 RAID 5 (block-level distributed parity)

  • 条带分布数据
  • 分散块奇偶校验位纠错->解决X4性能瓶颈

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

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

相关文章

芯片胶点胶加工的效果和质量的检测方法有哪些?

芯片胶点胶加工的效果和质量的检测方法有哪些&#xff1f; 芯片胶在电子封装领域用的是比较多的&#xff0c;特别是高度精密集成芯片器件。那么如何判断点胶后的效果和质量的好与坏&#xff1f; 芯片胶点胶加工的效果和质量的检测是一个重要的环节&#xff0c;以确保产品满足设…

医院能耗监测管理系统,助力医院节能减排

医院属于大型建筑&#xff0c;由于医院能耗计量点位繁多&#xff0c;数据采集大多采用传统的人工模式&#xff0c;很难保证计量管理的准确性和科学性。为了对医院能耗进行精细化管理&#xff0c;需要建立能耗管理系统&#xff0c;在辅助成本核算工作的同时&#xff0c;可以实时…

Java学习笔记29(泛型)

1.泛型 ArrayList<Dog> arrayList new ArrayList<Dog>(); //1.当我们ArrayList<Dog>表示存放到ArrayList集合中的元素是Dog类 //2.如果编译器发现添加的类型&#xff0c;不满足要求&#xff0c;就会报错 //3.在便利的时候&#xff0c;可以直接取出Dog类型而…

8个拿来即用的Python自动化脚本!

每天你都可能会执行许多重复的任务&#xff0c;例如阅读新闻、发邮件、查看天气、清理文件夹等等&#xff0c;使用自动化脚本&#xff0c;就无需手动一次又一次地完成这些任务&#xff0c;非常方便。而在某种程度上&#xff0c;Python 就是自动化的代名词。 今天分享 8 个非常…

BGP的基本配置

l 按照以下步骤配置BGP协议&#xff1a; 第1步&#xff1a;设备基本参数配置&#xff0c;AS内配置IGP确保内部网络连通性&#xff1b; l 配置IGP&#xff08;OSPF协议等&#xff09;路由解决peer对等体的源和目标IP之间连通性&#xff0c;确保peer之间TCP&#xff08;179&a…

如何查看自己的公网IP?

我们在网络中&#xff0c;每一个设备都被分配了一个唯一的IP地址&#xff0c;用以区分和识别其他设备。公网IP地址是指可被公众访问的IP&#xff0c;是因特网上的全球唯一标识。当我们需要查看自己的公网IP时&#xff0c;可以采取以下几种方式。 使用命令行查看公网IP 在Windo…

SpringCloud 之 服务提供者

前提 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.com学习Rest实例之提供者 提供者模块展示 1、导入依赖 <!-- 实体类 Web--><dependency><groupId>com.jyl</groupId><…

光电离子传感器PID-AH5在空气质量监测和HVAC系统中的应用

随着工业化和城市化的步伐不断加快&#xff0c;空气质量问题日益严重&#xff0c;对人们的健康和生活品质构成了严重威胁。为了有效监测和改善空气质量&#xff0c;光电离子传感器作为一种先进的检测技术&#xff0c;正在空气质量监测以及HVAC&#xff08;供暖、通风和空调&…

OpenHarmony实战开发-状态变量组件定位工具实践

概述 自定义组件中的变量被状态装饰器&#xff08;State&#xff0c;Prop等&#xff09;装饰后成为状态变量&#xff0c;而状态变量的改变会引起使用该变量的UI组件渲染刷新。状态变量的不合理使用可能会带来冗余刷新等性能问题。开发者可以使用状态变量组件定位工具获取状态管…

JdbcTemplate详解

1 概述 为了使JDBC更加易于使用&#xff0c;Spring在JDBC API上定义了一个抽象层&#xff0c;以此建立一个JDBC存取框架。 作为Spring JDBC框架的核心&#xff0c;JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法&#xff0c;通过这种方式&#xff0c;可以在尽可能保留…

【数据结构(邓俊辉)学习笔记】向量02——动态空间管理

文章目录 1. 概述2. 静态空间管理缺点3. 动态空间管理3.1 扩容3.1.1 如何实现扩容3.1.2 扩容算法3.1.3 容量递增策略 VS 容量倍增策略3.1.3.1 容量倍增策略分摊分析3.1.3.2 容量递增策略分摊分析3.1.3.3 结果对比 3.2缩容3.2.1 动态缩容算法实现3.2.2 动态缩容算法时间复杂度 4…

Sui主网升级至V1.23.1版本

其他升级要点如下所示&#xff1a; #17126 协议&#xff1a;Deepbook的更改将被还原。 #16673 开发者可能会看到更多编译器诊断&#xff0c;因为选择的解析错误不再阻止编译&#xff0c;并且编译器的诊断会到达后续编译阶段&#xff0c;其中可能会生成额外的诊断。 #16966…

SQLite FTS5 扩展(三十)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite的知名用户(二十九) 下一篇:SQLite 的命令行 Shell(三十一&#xff09; 1. FTS5概述 FTS5 是一个 SQLite 虚拟表模块&#xff0c;它为数据库应用程序提供全文搜索功能。在最基本的形式中&#xff0c; 全文搜索引擎允许…

【LAMMPS学习】八、基础知识(4.5)TIP5P水模型

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

JVS物联网平台驱动网关管理:智能化与自动化的探索

驱动网关的管理 驱动网关是对驱动进程进行生命周期的管理&#xff0c;包括驱动进程的创建、启停、更新、结束等管理功能。 如下图所示&#xff1a; 驱动代理程序是驱动网关的管理程序&#xff0c;每个驱动网关对应于一个驱动代理程序&#xff0c;驱动代理程序初始版本是安装在…

Nginx解决跨域访问难题:轻松实现跨域资源共享!

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ 跨域资源共享&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;是一种网络浏览器的安全功能&#xff0c;它限制了一个源&#xff08;域、协议和端口…

算法----BF算法KMP算法

请想象一个情景&#xff1a; 当你脑海中突然浮现出一个词&#xff0c;你该怎么去找到这个词的有关内容&#xff1f; 打开我们浏览器的搜索框&#xff0c;输入你想的这个词&#xff0c;然后点击Enter。浏览器就会自动搜索与该词匹配的内容。 这个过程实际上可以简化成以下形式…

常用的时间序列分析方法总结和代码示例

时间序列是最流行的数据类型之一。视频&#xff0c;图像&#xff0c;像素&#xff0c;信号&#xff0c;任何有时间成分的东西都可以转化为时间序列。 在本文中将在分析时间序列时使用的常见的处理方法。这些方法可以帮助你获得有关数据本身的见解&#xff0c;为建模做好准备并…

删除docker的容器与镜像

如果您想要卸载通过 docker pull influxdb 命令下载的 InfluxDB 容器&#xff0c;您需要执行以下步骤&#xff1a; 1. **停止正在运行的 InfluxDB 容器**&#xff1a; 首先&#xff0c;您需要停止任何正在运行的 InfluxDB 容器。您可以使用以下命令来查找正在运行的 InfluxD…

15 JavaScript学习:循环

JavaScript循环语句概念和分类 JavaScript中的循环语句用于重复执行特定的代码块&#xff0c;直到指定的条件不再满足。下面是JavaScript中常用的循环语句以及它们的概念和分类&#xff1a; for 循环&#xff1a;for循环通过指定起始条件、循环条件和递增/递减步长来进行迭代。…