第五章 I/O

IO 控制器结构

  • CPU与控制器接口
    • 实现控制器和CPU之间的通信
      • 数据寄存器
      • 控制寄存器
      • 状态寄存器
      • 寄存器的独立编址/统一编制(操作系统更详细些)
  • IO 逻辑
    • 识别CPU的命令并对设备发出响应的命令
  • 控制器与设备之间的接口
    • 实现控制器与设备的通信

IO的控制方式(相对于计组多了通道)

流程 IO设备-IO控制器-CPU寄存器-内存

  • 程序直接控制方式(轮询)
  • CPU在请求一个数据时,不断进行轮询检查
  • 中断请求
  • CPU在发出请求后将IO进程阻塞执行其他任务,当数据准备好后,控制器发送一个中断请求,CPU恢复等待的环境,继续执行IO进程,每次传输一个字
  • 优点
    • IO CPU可以并行工作
  • 缺点
    • 中断频繁会消耗很多时间
  • DMA
  • 另设一个DMA,使得IO通过DMA和主存进行传输,但每次一只能传输一块或者多个连续的块
  • 通道
  • 类似于DMA,增加了程序(可以执行多条指令),也就是一次可以传输一组块
  • 转

IO的层次结构

  • 用户层软件
    • 实现与用户之间的接口,为用户提供库程序
  • 设备独立性软件
    • 向上提供系统调用接口
    • 保护程序
    • 差错处理
    • 维护缓冲区
    • 建立逻辑名和物理名的映射
    • 设备的分配与回收
    • 选择驱动
  • 设备驱动程序
    • 设置设备寄存器,查看设备状态
  • 中断处理程序
    • 中断处理
  • 硬件

核心子系统

  • SPOOLING 假脱机技术(类似操作系统中的脱机技术)
  • 磁盘中设置输出井和输入井,作为一个缓存器

  • 多个任务写入缓存井来让独占变共享(疑问,不是内存有一个缓存区了吗)

  • 设备分配
  • 设备的固有属性

    • FCFS…
  • 设备的安全性

    • 安全分配方式
      • 为进程分配一个设备后就阻塞,不会死锁
    • 不安全分配方式
      • 进程分配到设备后,进程继续执行,还可以请求新的设备,IO请求得不到满足的时候才会阻塞(吃着碗里的看着锅里的,这样不仅可能因为"请求和保持"而导致死锁,更有可能成为海皇)
  • 静态分配和动态分配

    • 静态分配
      • 顾名思义,一次性分配给所有的,执行过程不再更改
    • 动态分配
      • 进程在运行过程会动态的申请资源
  • 流程

    • 系统设备表-控制器表-通道表-设备控制表
    • 但这里只能用物理设备名,如果设备更换则不能正常使用,所以对这个分配流程又进行了改进
    • 改进
      • 用户只提供逻辑设备名,逻辑设备名在系统设备表所对应的是设备类型,找到后,在一张逻辑设备表中找到相同类型的设备的物理地址(类似于逻辑和物理的映射)
  • 缓冲区

缓冲区的特性 : 只有写满才能取走,只有为空才能写(管道通信),一般在主存中开辟

  • 作用
    • 解决CPU与设备速度不匹配的问题
    • 减少CPU中断频率
    • 解决数据粒度不匹配的问题
    • 提高设备和CPU的并行性
  • 数据传输流程
    • IO数据先传送到缓冲区(时间为I),在从缓冲区传送到用户进程工作区(时间M),CPU读取数据(时间O)
  • 单缓冲 时间 MAX(I,O)+M
  • 双缓冲 MAX(M+O,I)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值