一、I/O设备的基本概念

1、什么事I/O

I/O就是“输入/输出”,将数据输入到计算机,或接收计算机的数据输出到外部设备

2、I/O设备分类

  • 按使用特性

    • 人机交互类外部设备(键盘鼠标)
    • 存储设备(磁盘)
    • 网络通信设备(网卡)
  • 按传输速率

    • 低速设备(键盘)
    • 中速设备(打印机)
    • 高速设备(磁盘)
  • 按信息交换单位

    • 块设备(磁盘)
    • 字符设备(键盘)

3、I/O设备的构成

  • 机械部件:比如键盘鼠标的按键和按钮,用来执行具体的I/O操作
  • 电子部件:即I/O控制器、设备控制器,是CPU与硬件设备之间的桥梁

4、I/O控制器主要作用

  • 接收并识别CPU命令
  • 向CPU报告设备状态
  • 数据交换
  • 地址识别
二、I/O控制器

1、I/O控制器的组成

  • CPU与控制器间的接口
  • I/O逻辑
  • 控制器与设备间的接口

I/O管理_中断处理

2、I/O控制方式

  • 程序直接控制方式
    • CPU频繁干预
    • 每次读/写一个字
    • 读:设备->CPU->内存

I/O管理_数据_02

  • 中断驱动方式
    • CPU将此IO进程阻塞
    • IO前后CPU千预
    • 每次读/写一个字
    • 读:设备->CPU->内存

I/O管理_假脱机_03

  • DMA方式
    • 传输单位是“块”
    • 块之间传输需要CPU千预
    • 设备<->内存

I/O管理_中断处理_04

  • 通道控制方式
    • 通道是专门负责I/O的处理机
    • 每次读/写一组数据块
    • IO设备<->内存

I/O管理_物理设备_05

三、I/O软件层次结构

1、用户层软件

  • 实现用户交互接口
  • 通过库函数实现系统调用

I/O管理_假脱机_06

2、设备独立性软件

  • 向上一层提供调用接口
  • 设备保护
  • 容错处理
  • 设备分配与回收
  • 数据缓冲区管理
  • 逻辑设备与物理设备映射

3、设备驱动程序

不同设备硬件特性不同,但CPU指令相同负责控制硬件设备,将CPU指令转成设备操作驱动程序会以独立进程的形式存在

4、中断处理程序

IO完成后发出中断信号,执行中断处理程序会直接操作硬件

四、假脱机技术

假脱机技术

  • 输入井和输出井
  • 输入进程和输出进程
  • 输入缓冲区和输出缓冲区

I/O管理_输入进程_07

五、设备分配与回收

1、设备分配应考虑的因素

  • 固有属性;
  • 分配算法;
  • 安全性

2、静态分配与动态分配

进程运行前分配所有资源,还是运行中动态申请资源

3、设备管理中的数据结构

I/O管理_数据_08

4、设备分配步骤

  • 根据物理设备名查SDT
  • 查DCT,尝试分配给进程
  • 查COCT,尝试分配给进程
  • 查CHCT,尝试分配给进程