【学习笔记】第五章——I/O(设备分类、控制方式、软件层次结构、假脱机、缓冲)

很感动,终于结束了拖延了这么久的操作系统网课= =

一. 设备分类与控制方式

1)设备分类

  • 举例:鼠标、键盘、显示器、移动硬盘等
    在这里插入图片描述

2)控制方式

1. 程序直接控制方式
  • 轮询,CPU 干预频率频繁。
  • 实现简单,但是 CPU 利用率低
    在这里插入图片描述
2. 中断驱动方式
  • 每次 I/O 操作开始之前、完成之后需要 CPU 介入
  • CPU 利用率得到提升,但频繁的中断处理会消耗较多的 CPU 资源
    在这里插入图片描述
3. DMA 方式
  • 不再需要经过 CPU
  • 传输以为单位,CPU 和 I/O 的并行性得到提升。
  • 缺点:需要连续,不能处理离散(需要多次中断)
    在这里插入图片描述
4. 通道控制方式
  • 引入通道:一种硬件,可以识别并执行一系列通道指令
  • 实现复杂,需要专门的通道硬件
  • 但是资源利用率很高
    在这里插入图片描述
总结
  • CPU 干预频率逐步下降
  • 每次 I/O 的数据传输单位逐步变大
    在这里插入图片描述

二. 软件层次结构与假脱机

1)软件层次结构

  • 用户层软件:提供库函数
  • 设备独立性软件、设备驱动程序、中断处理程序 =》 I/O 核心层
  • I/O 请求自顶向下,得到的 I/O 应答自底向上
  • 设备独立性软件:向上提供系统调用接口
    在这里插入图片描述

2)脱机 - 假脱机

  • 脱机:缓解设备与 CPU 的速度矛盾(预输入、缓输出
  • 假脱机:用软件模拟脱机(SPOLLing 技术)。
  • 共享打印机:通过假脱机技术,把独占的打印机虚拟成共享的打印机(用户感觉)
    在这里插入图片描述

三. 缓冲(重点)

1)缓冲简介

  • 可以用专门的硬件寄存器,但一般用内存作为缓冲区。
    在这里插入图片描述
  • 作用
    1. 缓和 CPU - I/O 之间速度不匹配的问题
    2. 减少 CPU 的中断频率
    3. 提高 CPU - I/O设备 的并行性,解决数据粒度不匹配的问题。
      在这里插入图片描述

2)单缓冲、双缓冲

  • 单缓冲一个缓冲区,非空时不能入,非满时不能出
    在这里插入图片描述
  • 双缓冲两个缓冲区
    在这里插入图片描述
  • 双缓冲才能实现双向传输(如管道通信)
    在这里插入图片描述

3)循环缓冲、缓冲池

  • 循环缓冲区:构成一个下图的循环队列
    在这里插入图片描述
  • 缓冲池:只能说池化设计就是 yyds。队列 + 共用的缓冲区
  • 四种缓冲区:收容输入、提取输入;收容输出、提取输出
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值