news 2026/11/1 0:16:03

操作系统期末复习——第5章:输入/输出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统期末复习——第5章:输入/输出

目录

  • 5.2 I/O软件原理
    • 5.2.1 I/O软件的目标
    • 5.2.2 程序控制I/O
    • 5.2.3 中断驱动I/O
    • 5.2.4 使用DMA的I/O
  • 5.3 ⭐I/O软件层次
    • 5.3.1 中断处理程序
    • 5.3.2 ⭐设备驱动程序(Device Driver)
    • 5.3.3 ⭐Device-Independent的OS软件
    • 5.3.4 功能
    • 5.3.5 总结
  • 5.4 Disks
    • 5.4.1 盘硬件
    • 5.4.2 磁盘格式化
    • 5.4.3 ⭐磁盘臂调度算法

5.2 I/O软件原理

5.2.1 I/O软件的目标

  1. 统一命名

    文件或设备名称是字符串或证书,不依赖具体机器

  2. 设备独立性

    程序可以访问任何I/O设备,无序提前指定

  3. 同步和异步传输

    同步传输(即阻塞):程序等待I/O操作完成

    异步传输(即中断驱动):程序继续执行,I/O完成后通过中断通知

  4. Buffering

    设备产生的数据无法直接存放到目标内存,需要暂存到缓冲区

  5. 错误处理

    尽可能在接近硬件的层面处理

  6. 共享设备和独占设备

    共享设备:磁盘能同时让多个用户使用

    独占设备:磁带机必须由单个用户独占使用

5.2.2 程序控制I/O

  1. CPU直接控制I/O直到I/O完成

    • 适用于单进程系统(MS-DOS、嵌入式系统(Embedded systems)

    • 不适用于多道程序设计和分时系统

  2. 轮询/忙等

    • CPU不断检查设备状态寄存器来检测设备是否准备就绪

    • 三种状态

      • Ready

      • Busy

      • Error

    • 缺点:CPU浪费(CPU需处于忙等来等待I/O)

5.2.3 中断驱动I/O

  1. CPU在发送第一个字符后,不再轮询等待,而是打印机READY时会发送硬件中断,再让CPU处理

  2. 缺点:每次字符输入都会发生中断

5.2.4 使用DMA的I/O

  1. DMA控制器会把内核缓冲区的字符串输给打印机控制器,CPU不参与这个过程

  2. 传输完整个缓冲区(字符串),CPU才会被再次中断

5.3 ⭐I/O软件层次

5.3.1 中断处理程序

  1. 最好隐藏中断处理程序

    • 把启动一个I/O操作的驱动程序阻塞,直至I/O操作完成并产生一个中断

    • 如何阻塞驱动程序

      • 在一个信号量上执行down

      • 在一个条件变量上执行wait

      • 在一个消息上执行receive

  2. 中断处理程序的位置由中断向量确定

  3. 中断处理流程

    • 硬件

      1. 发出中断

      2. 处理器执行完当前指令

      3. 处理器发出中断确认信号

      4. 处理器将PSW和PC推入控制栈

      5. 处理器根据中断加载新PC值

    • 软件

      1. 保存剩余进程状态信息

      2. 进程中断

      3. 恢复进程状态信息

      4. 恢复旧的PSW和PC

  4. 软件中的具体步骤

    1. 保存没被中断硬件保存的所有寄存器

    2. 为中断服务过程设置上下文,如TLB、MMU和页表

    3. 为中断服务过程设置堆栈

    4. 确认中断控制器,重启中断

    5. 将寄存器从它们被保存的地方复制到进程表

    6. 运行中断服务进程

    7. 选择下一次运行哪个进程

    8. 为下一次要运行的进程设置MMU上下文

    9. 装入新进程的寄存器

    10. 开始运行新进程

5.3.2 ⭐设备驱动程序(Device Driver)

  1. 用来控制I/O设备的特定代码

  2. Device driver的逻辑定位

    用户程序 -> 操作系统的其余部分 -> Device driver -> 总线 -> Device controller -> Device

  3. 功能

    • 接收OS抽象的读/写请求

    • 初始化设备

    • 发送硬件命令

    • 请求队列管理

    • 错误处理

  4. 分类

    • 块设备驱动程序:磁盘

    • 字符设备驱动程序:键盘和打印机

5.3.3 ⭐Device-Independent的OS软件

功能

  1. Device driver的统一接口

    • 好处

      1. 驱动开发者知道驱动程序接口是什么样

      2. 操作系统开发者能基于接口编写device-independent的I/O功能

    • 解决给I/O设备命名(以Unix为例)

      • 设备被抽象为特殊文件,需要通过系统调用(如read()等)访问

      • 文件名与每个设备关联,并确定一个包含主设备号和次设备号的i节点

        • 主设备号:定位驱动程序

        • 次设备号:作为参数传递给驱动程序,以指定读/写的单元(区分同一驱动的不同设备)

      • 通常的文件保护规则也适用于I/O设备

  2. 缓冲

  3. 错误报告

    处理层级

    1. Device-controller

      如校验错误

    2. Device driver

      如无法读取磁盘

    3. Device-independent的OS软件层

      • 编程错误(写入只读设备)

      • 实际的I/O错误(摄像头关机)

  4. 分配与释放专用设备

    不允许并发访问

  5. 提供device-independent块大小

    不同磁盘扇区大小可能不同,应由device-independent软件隐藏并向高层提供统一块大小

5.3.4 功能

  1. 封装系统调用

  2. 格式化I/O处理(如printf())

  3. 假脱机管理

5.3.5 总结

流程(双向)

  1. I/O请求

  2. 用户进程

  3. Device-independent软件

  4. Device driver

  5. 中断处理

  6. 硬件

  7. 响应

5.4 Disks

5.4.1 盘硬件

  1. 柱面(cylinder)->磁道(track)->扇区(sector)

  2. 扇区通常512B

  3. 磁盘可能有多个环带

  4. 因为本来每个磁道扇区数相同,越外圈每个扇区越大,会造成浪费。所以在外面的磁道有更多扇区

5.4.2 磁盘格式化

  1. 磁盘使用前要先进行低格式化和高格式化

    • 低格式化

      • 将磁盘分为磁盘控制器可读写的扇区

      • 由供应商完成

      • 磁道格式化方式

        • 分为由inter-sector-gap间隔的扇区

        • 扇区格式:前导码+数据+校验码

  2. ⭐柱面斜进(cylinder skew)

    • 当磁盘读取完一个磁道,磁头需要移动到下一个磁道。在移动过程中,盘面一直在旋转,为保证磁头能从本磁道的末尾恰好移动至下一磁道开头,就需要柱面斜进

    • 目的:改进性能,让磁盘在一次连续的操作中读取多个磁道而不丢失数据

    • 例:How much cylinder skew is needed for a 7200-RPM disk with a track-to-track seek time of 1 msec? The disk has 200 sectors of 512 bytes each on each track.

      • 7200转/分钟=0.12转/毫秒,磁道间寻道的这1毫秒期间,盘面会转过200*0.12=24个扇区。所以答案是24
  3. 扇区交错(interleaving)

    • 若磁盘控制器只有一个扇区buffer,当一个扇区数据从硬盘传输至buffer后,需要把buffer数据拷贝至内存。此期间磁头将越过下一个扇区起始位置,因此下一个逻辑扇区不应是相邻的物理扇区,所以山区要交错排列

    • 复制快可用单交错,复制慢可用双交错

5.4.3 ⭐磁盘臂调度算法

  1. 决定读写磁盘块时间的因素

    • 寻道时间

      磁盘臂移动至适当柱面的时间

    • 旋转延迟

      等待适当扇区旋转到磁头下所需时间

    • 实际数据传输时间

  2. ⭐FCFS

  3. ⭐Shortest Seek First(SSF)

  4. ⭐Elevator Algorithm


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 23:34:06

6.1 Elasticsearch-Lucene 索引文件结构:tim、tip、doc、pos、pay

6.1 Elasticsearch-Lucene 索引文件结构:tim、tip、doc、pos、pay Elasticsearch 的搜索性能之所以能在 PB 级别数据量下仍保持毫秒级响应,核心依赖是 Lucene 的倒排索引文件格式。一个分片(shard)本质上就是 Lucene 的一个索引目…

作者头像 李华
网站建设 2026/10/31 22:55:45

融合“开源链动2+1模式AI智能名片S2B2C商城小程序”:同城自媒体赋能商家私域流量增长的新路径

摘要:本文聚焦同城自媒体与商家合作领域,探讨在“开源链动21模式AI智能名片S2B2C商城小程序”赋能下,同城自媒体如何助力商家实现门店私域流量大幅增长。通过分析同城自媒体的内容运营优势、传播属性,以及该小程序在流量整合、用户…

作者头像 李华
网站建设 2026/10/31 20:46:21

微信小程序 PHP_uniapp的音乐播放器排行榜系统的设计与实现_5h11g380

微信小程序音乐播放器排行榜系统设计与实现 该系统基于微信小程序平台,采用PHP后端与Uniapp前端框架开发,实现了一个功能完善的音乐播放器排行榜系统。系统设计分为前端展示、后端数据处理和数据库管理三大模块。 前端采用Uniapp跨平台框架开发&#xff…

作者头像 李华
网站建设 2026/11/1 12:55:03

吐血推荐自考必备AI论文写作软件TOP10

吐血推荐自考必备AI论文写作软件TOP10 自考论文写作工具测评:2026年TOP10榜单出炉 在自考学习过程中,论文写作往往是考生们最头疼的环节之一。从选题构思到资料收集,再到成文修改,每一个步骤都可能成为阻碍进度的“拦路虎”。而随…

作者头像 李华