


























操作系统的I/O管理(input/output mannagment)是协调,控制计算机与外部设备(如磁盘,键盘,网络接口)等之间数据交换的核心功能。实现可靠高效且统一(隐藏设备差异,如磁盘、串口、网卡的硬件特性)的设备访问
前几章讲述的CPU管理,内存管理,文件管理。都是在计算机主机内部进行的操作。
而I/O管理是对外部设备进行操作。这中间一定会有一层"抽象"层
CPU无法直接控制I/O设备的机械部分(比如硬盘的磁臂,显示器的灯珠等),因此I/O设备还要有一个电子设备作为"中转",由I/O设备提供给CPU,实现CPU对I/O设备的控制。这个设备叫做I/O控制器
I/O控制器需要有如下几个功能
接受和识别CPU发出的指令
解析CPU发送的I/O指令,转化为设备可识别的操作,比如磁盘的寻址,扇区读写。
向CPU报告设备状态
I/O控制器中会有相应的状态寄存器,来表示设备状态。忙碌or空闲
数据交互
地址识别

以CPU向I/O设备输出数据为例子:
I/O控制方式主要有四种:
不断轮询,查询状态寄存器。直到设备ready。场景:单片机电路开关,LED指示灯。

中断信号,触发CPU暂停当前任务,转为处理I/O中断。场景:鼠标、键盘、打印机等设备运行

DMA控制器代替数据总线,直接在设备与内存之间传输数据,无需CPU干预。CPU仅仅在传输开始前配置DMA参数,传输完成后处理中断。场景:磁盘、SSD、网卡(需传输大量数据,如 GB 级文件读写)。显卡通过 DMA 直接访问内存帧缓冲区,提升图像渲染效率
与中断驱动相比,DMA的传输单位变为了"block",不再是一个字一个字的传输
数据直接与内存交互,不再需要CPU作为快递小哥传输

弱鸡版的CPU场景:大型机、数据中心服务器(同时处理磁盘I/O ,网络I/O)。
| 特性 | 程序直接控制 | 中断驱动 | DMA | 通道控制 |
|---|---|---|---|---|
| CPU参与度 | 全程参与(轮询) | 仅处理中断 | 仅配置/收尾 | 仅发起请求 |
| 数据传输方式 | CPU直接读写 | CPU通过控制器读写 | DMA控制器直接读写内存 | 通道处理器独立控制 |
| 适用设备 | 低速简单设备 | 中速交互式设备 | 高速块设备(磁盘、网卡) | 多设备高并发(大型机) |
| CPU利用率 | 极低 | 中等 | 高 | 接近100% |
| 典型场景 | 嵌入式传感器 | 键盘、打印机 | 磁盘文件读写 | 大型机数据中心 |
| 硬件依赖 | 无 | 中断控制器 | DMA控制器 | 专用通道处理器 |
| 传输单位 | 字 | 字 | 块 | 一组块 |
在操作系统中,I/O 软件层次结构通过分层设计将复杂的输入输出功能解耦,实现硬件无关性、模块化和高效管理。

假脱机技术,又称“SPOOling技术”,全程Simultaneous Peripheral Operations On-Line。是操作系统用于将
独占设备虚拟为共享设备的核心技术,通过磁盘作为中间缓冲区,使得多个进程能并发访问独占设备,提高系统利用率。
根据设备的使用方式,设备分为3类:
为了安全,高效的使用这些设备,分配设备时,需要遵循如下几个目标:

从分配方式来说,可以分为两种:
静态分配
原理:在进程启动前分配所有所需设备及相关资源(比如控制器,通道),进程结束后统一回收。
优点:简单,不会死锁。
缺点:利用率低,进程很有可能"占着茅坑不拉屎"。
动态分配
原理:进程运行时按需申请设备,使用完毕后立即释放。
优点:提高设备利用率。
缺点:可能因资源竞争导致死锁。
演化与内存分配方式的演化是一个套路,因此对于分配算法不再介绍,先来先服务,优先级高有限等等。都是一个思路。
对于一个设备,他被调用时,分配流程如下。
逻辑设备名/物理设备名找到SDT,再根据SDT找到DCT,若设备忙则将PCB挂到设备等待队列中,不忙则将设备分配给进程。控制器等待队列中,不忙则将控制器分配给进程。通道等待对流中,不忙则将通道分配给进程。只有设备,控制器,通道 三个都分配成功时,这次设备分配才算成功,之后才能对I/O设备进行操作。
为什么需要缓冲区?

单缓冲
原理:仅在内存中开辟一个缓冲区,CPU与I/O共享此缓冲区。
缺点:因为共享的缘故,CPU与I/O设备需串行工作,效率比较低

双缓冲
原理:两个缓冲区(缓冲区 A 和 B)。CPU与I/O各自独占。
优点:实现 CPU 与外设的双向并行,提升效率。
缺点:仅适用于双向数据传输且数据量均衡的场景,否则就会出现一方等待另一方的现象。

循环缓冲区
原理:多个固定大小的缓冲区连城环形队列,通过in/out指针管理,写指针指向可用缓冲区,读指针指向待处理缓冲区

本质上就是环形数组

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。