IO设备

思维导图

image-20230616133820117

image-20230616134617769

什么是I/O设备

在这里插入图片描述

在这里插入图片描述

设备分类

按使用特性分类

在这里插入图片描述

按传输速率来分类

在这里插入图片描述

按照信息交换分类

在这里插入图片描述

块设备是可寻址的,传输速度快

字符设备不可寻址的,传输速度慢,常采用中断驱动方式

I/O控制器

思维导图

在这里插入图片描述

I/O控制器

在这里插入图片描述

电子部件

在这里插入图片描述

I/O控制器的组成

在这里插入图片描述

值得注意的小细节:

  • 一个I/O控制器可能会对应多个设备:
  • 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O:另一些计算机则采用I/O专用地址,即寄存器独立编址。

内存影响I/0与寄存器独立编址

在这里插入图片描述

I/O控制方式

思维导图

image-20230616140909898

程序直接控制方式

轮询

完成一次读写操作的流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

中断驱动方式

在这里插入图片描述

在这里插入图片描述

缺点:

每次只传送一个字

希望把I/O设备直接送向内存

DMA方式

直接存储器存取,用于块设备的I/O控制

在这里插入图片描述

DMA控制器

在这里插入图片描述

在计算机组成原理这一块DR往往是MAR

在这里插入图片描述

通道控制方式

通道:一种硬件,可以理解为是 “弱鸡版CPU”

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

I/O软件程序接口

思维导图

在这里插入图片描述

用户层软件

在这里插入图片描述

设备独立性软件

设备无关性软件

与设备硬件特性无关的功能几乎都在本层实现

  1. 向上层提供统一的调用接口(如 read/Write 系统调用)

  2. 设备的保护:原理类似于文件保护,设备看作特殊的文件,不同的用户对各个文件的访问权限不一样,对设备的访问权限也不一样

  3. 擦错处理:设备独立性软件需要对一些设备的错误进行处理

  4. 设备的分配与回收

  5. 数据缓冲区管理:可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异

  6. 建立逻辑设备名到物理设备名的映射关系:根据设备类型选择调用相应的驱动程序

    用户所看到的设备名是逻辑设备名

    操作系统看到的是物理设备名

用户或用户层软件发出I/O操作相关系统调用的系统调用时,需要指明此次要操作的I/O设备的逻辑设备名(eg:去学校打印店打印时,需要选择打印机1/打印机2/打印机3,其实这些都是逻辑设备名)
设备独立性软件需要通过”逻辑设备表(LUT,Logical UnitTable)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序

在这里插入图片描述

为什么不同设备需要不同的驱动程序?

佳能打印机设备内部的电子器件:对于状态寄存器来说0代表空闲,1代表忙碌

但是对于其他品牌的打印机来说,有可能0代表忙碌, 1代表空闲

所以由于内部的电子部件不同,需要不同的驱动程序来实现操作系统对设备的控制在这里插入图片描述

设备驱动程序

在这里插入图片描述

中断处理程序

在这里插入图片描述

在这里插入图片描述

中断处理程序也会和硬件直接打交道,但是再往上就不会和硬件打交道了

总结回顾

在这里插入图片描述