【计算机组成原理】SPOOLing技术
SPOOLing技术
关键点 | 内容 |
---|---|
核心思想 | 通过输入/输出井虚拟化独占设备,实现共享,即让多个作业共享一台独占设备 |
依赖条件 | 1. 外存(井文件) 2. 多道程序设计 |
虚拟实现 | 多道程序技术+磁盘缓冲 |
数据流方向 | 输入设备 → 输入井 → CPU → 输出井 → 输出设备 |
用户权限 | 仅操作内存缓冲区的数据读写,设备与井的传输由系统OS后台进程管理。 |
典型应用 | 打印机共享,批量作业处理,磁带机操作 |
不适合应用 | 不适用于交互式I/O(如键盘输入),仅适合批处理作业 |
对比缓冲技术 | SPOOLing持久化到磁盘,缓冲仅暂存于内存 |
- 输入/输出井:本质是磁盘缓冲,必须依赖外存(如硬盘)
- 输入/输出进程:本质是后台进程,负责设备与井之间的数据传输(SPOOLing技术/系统控制,用户不感知)。由操作系统内核管理,用户无权直接干预。
- 井管理程序就是用户进程,只负责自己的缓冲区。
- 目标:空间换时间,用户与物理设备解耦,传输对用户透明。
- 请求队列:多个用户作业共享设备时的排队机制(如打印队列)。排队可能调度:FIFO、优先级。
- 外围控制机将 低速IO设备上数据 传到 高速磁盘上:外围控制机是专门管理低速I/O设备(如打印机、卡片阅读器)与高速磁盘(SPOOLing缓冲区)之间数据传输的硬件控制器或专用处理机。它的工作有:
- 数据中转:将低速设备的数据预先传输到磁盘(输入井)或从磁盘(输出井)传回设备。
- 调度管理:协调多台I/O设备的并发操作,避免主机等待。
- 缓冲机制:通过磁盘缓冲实现速度匹配(低速设备vs高速CPU/磁盘)。
- 与缓冲技术的区别:
- 缓冲(Buffer):仅解决速度差异(如CPU vs 内存),数据不持久。
- SPOOLing:解决设备独占性,数据持久化到磁盘(井文件)。
- 性能影响:
- 优点:提高I/O速度、减少空闲时间、支持多作业并发。
- 缺点:占用额外磁盘空间、增加系统复杂度。
- 与DMA的对比:
对比项 | SPOOLing | DMA (Direct Memory Access) |
---|---|---|
控制主体 | 操作系统(软件) | DMA 控制器(硬件) |
数据目标 | 磁盘(输入/输出井) | 内存 |
速度匹配 | 解决低速设备与 CPU 的矛盾 | 解决高速设备与内存的矛盾 |
传输单位 | 文件/作业级 | 数据块级(如磁盘扇区) |
CPU 干预 | 需要调度和管理进程 | 传输期间完全不需要 CPU 参与 |
典型应用 | 打印机共享、批处理作业 | 磁盘、网卡、显卡等高速设备 |
依赖条件 | 需要多道程序设计和外存 | 需要 DMA 控制器和总线支持 |
- 与传统IO的对比:
特性 | SPOOLing 系统 | 传统 I/O 方式 |
---|---|---|
设备共享性 | 虚拟共享(多作业并发使用) | 独占(单作业独占设备) |
CPU 利用率 | 高(CPU 不等待 I/O) | 低(CPU 需等待 I/O 完成) |
用户控制层级 | 用户仅控制内存缓冲区,设备传输由系统管理 | 用户直接控制设备 |
依赖技术 | 多道程序设计 + 外存支持 | 无特殊要求 |
数据持久性 | 数据暂存于磁盘(井文件) | 数据不持久 |
适用场景 | 打印机、磁带机等独占设备 | 简单交互式 I/O |