SPOOLING 系统详解
SPOOLING 系统,中文常称为假脱机技术 ,全称:
Simultaneous Peripheral Operations On-Line(联机同时外围设备操作)
它是一种用软件模拟脱机 I/O、将独占设备改造为共享设备 的技术,是操作系统中实现设备虚拟最典型的方案。
一、核心思想
- 利用磁盘空间作为大容量缓冲
- 将独占设备 (如打印机、磁带机)
虚拟成共享设备 - 让多个进程"同时"使用设备,不必阻塞等待
- 实现异步 I/O,进程不与慢速设备直接打交道
一句话概括:
用外存(磁盘)缓冲,把"排队等设备"变成"写入缓冲区就走"。
二、SPOOLING 系统组成
整个系统由四部分构成:
-
输入井
磁盘上开辟的区域,用于暂存来自输入设备的数据。
-
输出井
磁盘上开辟的区域,用于暂存要送往输出设备的数据。
-
输入进程(输入守护进程)
负责把数据从输入井送到内存。
-
输出进程(输出守护进程)
负责把数据从输出井排队、依次送往物理设备。
此外还有:
- 输入缓冲区:内存中暂存输入设备数据
- 输出缓冲区:内存中暂存送往设备的数据
三、工作过程(以打印机为例,最经典)
- 多个用户进程同时请求打印
- 系统不直接分配打印机 ,而是让进程把打印内容
写入磁盘的输出井 - 写入完成后,进程就可以继续运行,不用等待打印
- SPOOLING 系统的输出进程在后台管理打印队列
- 依次从输出井取出数据,送到打印机真正打印
效果:
一台物理打印机 → 虚拟出多台逻辑打印机,实现共享。
四、SPOOLING 系统特点
- 将独占设备虚拟为共享设备
- 以磁盘空间换取 I/O 效率(以空间换时间)
- 实现异步 I/O:进程不等待设备,继续执行
- 不占用物理设备时不阻塞,提高系统并发性
- 纯软件实现,不需要额外硬件
五、主要作用
- 提高慢速设备利用率
- 缓解 CPU 与外设速度不匹配
- 实现设备共享,避免进程长期阻塞
- 典型应用:打印机共享、磁盘脱机输入输出
六、最简总结
SPOOLING = 假脱机 = 磁盘缓冲 + 后台 I/O 进程
作用是:
把独占设备变成共享设备,让进程不用等慢速设备,提升系统并发能力。