I/O设备的分类

  1. Block device 块设备:信息存储在固定的块中
  2. Character device 字符设备:传递或接受字符流,不考虑任何块结构

I/O设备的组成

  • 机器部分
  • 电子部分,即设备控制器(device controller)
Device Controllers 设备控制器
  • 设备控制器是计算机系统的一部分,它能够识别CPU的信号
  • 每个设备控制器都有一个本地缓冲区和一些寄存器。
  • 它通过中断与 CPU 通信。
  • 设备的控制器充当设备和操作系统之间的桥梁

CPU与设备的控制寄存器和数据缓存区进行通信

三种方法:

  • 每个控制寄存器被分配I/O端口号。

  • 所有控制寄存器都映射到存储空间。这称为内存映射I/O(Memory-Mapped I/O)

  • 将I/O数据缓冲区映射到内存空间中,但从内存中分离I/O端口

I/O的实现

Programmed I/O 程序控制I/O

  • Programmed input/output (PIO)

  • 一种在CPU和外围设备之间传输数据的方法。

  • CPU上运行的软件使用指令执行数据传输到I/O设备。

Interrupt-Driven I/O

  • 使用中断驱动的I / O将字符串写入打印机

    • 在打印系统调用时执行的代码

    • 中断服务程序

  • 中断是怎么发生的?

    • 设备与中断控制器之间的连接实际上在总线上使用中断线而不是专用电线

Interrupt Handlers 中断处理程序
  • 中断处理程序最好隐藏,让驱动程序启动I/O操作块,直到中断通知完成
  • 中断过程执行其任务,然后取消阻止启动它的驱动程序。

I/O Using DMA

  • 使用 DMA 打印字符串
    • 在进行打印系统调用时执行的代码
    • 中断服务程序

Direct Memory Access (DMA) 直接存储器存取

I/O Software Layers I/O软件层次

Device Drivers

  • 驱动器和设备控制器之间的通信通过总线进行;
  • 设备驱动程序的逻辑位置如下图所示。

问题

45000

Check Points

① What are the two kinds of IO devices. ② What are the two components of IO devices. ③ What is programmed IO? ④ What is Interrupt-Driven IO? ⑤ What is IO using DMA? ⑥ What are the five layers of the IO software system ⑦ What are the difference between driver and interrupt handler?