操作系统之I/O设备:分类、组成与控制方式

目录

I/O设备的分类

按传输速率

按信息交换单位

I/O设备的组成

机械部件

电子部件

功能

分类

方式

I/O控制方式

程序直接控制方式

中断驱动方式

DMA方式

I/O软件层次结构

用户层I/O软件

系统调用层

I/O调度层

设备驱动层

硬件层

应用程序I/O接口

字符设备接口

块设备接口

网络设备接口(网络套接字接口)

阻塞/非阻塞I/O


I/O设备的分类

按传输速率

  • 低速设备:如鼠标、键盘,它们的传输速率相对较低,适用于简单、少量的数据传输。
  • 中速设备:例如激光打印机,传输速率适中,适用于中等规模的数据处理。
  • 高速设备:如磁盘、光盘,传输速率高,适用于大量数据的快速处理。

按信息交换单位

  • 块设备:可寻址,能够随机读写任意块,如磁盘。它们以数据块为单位进行信息交换。
  • 字符设备:不可寻址,通常采用中断I/O方式,如打印机。它们以字符为单位进行信息交换。

I/O设备的组成

机械部件

I/O设备通常包含机械部件,如磁盘的读写头、打印机的打印头等。

电子部件

  • I/O接口(设备控制器):负责与CPU和设备之间的通信。
功能
  1. 接收识别CPU发来的命令。
  2. 数据交换(设备与控制器、控制器与主存)。
  3. 标识和报告设备状态。
  4. 地址识别。
  5. 数据缓冲。
  6. 差错控制。
  • I/O端口:设备控制器中可被CPU直接访问的寄存器。
分类
  1. 数据寄存器。
  2. 状态寄存器。
  3. 控制寄存器。
方式
  1. 独立编址。
  2. 统一编址。

I/O控制方式

程序直接控制方式

在程序直接控制方式中,CPU直接管理I/O操作,通常是通过执行特定的I/O指令来实现数据的传输。这种方式下,CPU在数据传输期间会持续监控I/O设备的状态,直到传输完成。

  • 读写单位:字(Word)。这意味着CPU每次读写操作都是以一个字为单位,这个字的长度通常是CPU的字长,比如32位或64位。

特点:

  • 简单性:实现起来比较简单,适用于简单的I/O操作。
  • 效率低:CPU在等待I/O操作完成时,不能进行其他任务,导致CPU利用率低。

中断驱动方式

中断驱动方式是一种更为高效的I/O控制方式。在这种方式下,CPU发起I/O操作后可以继续执行其他任务。当I/O设备准备好数据传输时,它会发送一个中断信号给CPU,CPU响应中断并处理数据传输。

  • 读写单位:字(Word)。与程序直接控制方式类似,中断驱动方式也是以字为单位进行数据的读写。

特点:

  • 效率高:CPU在等待I/O操作完成时可以执行其他任务,提高了CPU的利用率。
  • 响应中断:需要硬件和操作系统支持中断机制。

DMA方式

DMA(Direct Memory Access)方式是一种允许I/O设备直接与内存进行数据传输的技术,而无需CPU的介入。DMA控制器负责管理数据传输,从而释放CPU进行其他计算任务。

  • 读写单位:数据块(Block)。DMA操作通常以数据块为单位进行,这意味着每次传输可以是一个或多个连续的字,而不是单个字。

特点:

  • 高速传输:由于DMA直接在内存和I/O设备之间传输数据,因此可以显著提高数据传输速率。
  • 减少CPU负载:CPU只需初始化DMA传输,之后就可以处理其他任务,直到传输完成。

I/O软件层次结构

用户层I/O软件

- 用户程序

- 库函数

系统调用层

- 系统调用接口

I/O调度层

- 设备无关的I/O软件

- 设备驱动程序接口

设备驱动层

- 设备驱动程序

- 中断服务例程

硬件层

- 硬件设备

- 设备控制器

应用程序I/O接口

字符设备接口

  • get/put系统调用:读写一个字符。

块设备接口

  • read/write系统调用:向块设备读写多字符。
  • seek:修改指针位置。

网络设备接口(网络套接字接口)

  • socket:创建一个网络套接字。
  • bind:套接字绑定某“端口”。
  • connect:套接字连接到远程地址。
  • read/write:从套接字读/写数据。

阻塞/非阻塞I/O

  • 阻塞I/O:程序发出I/O系统调用后,进程转为阻塞态。
  • 非阻塞I/O:程序发出I/O系统调用后,无需阻塞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值