Skip to content

假脱机技术(SPOOLing)

考情分析

SPOOLing 技术的原理和共享打印机的实现是选择题高频考点。🔥🔥 中频。

打印机一次只能给一个人打,10 个人同时提交打印任务难道要排队干等?SPOOLing 就是 OS 给出的解法:先收着,后台慢慢印。

SPOOLing 的概念

SPOOLing(Simultaneous Peripheral Operations On-Line):假脱机技术,利用磁盘作为缓冲,将独占设备改造为共享设备的技术。

核心思想:在磁盘上开辟输入/输出井,用软件模拟脱机 I/O 的效果。

SPOOLing 系统的组成

组件说明
输入井磁盘上模拟输入设备的区域,暂存输入数据
输出井磁盘上模拟输出设备的区域,暂存输出数据
输入缓冲区内存中的缓冲,用于输入设备→输入井的传输
输出缓冲区内存中的缓冲,用于输出井→输出设备的传输
输入进程负责将数据从输入设备送到输入井
输出进程负责将数据从输出井送到输出设备

共享打印机——SPOOLing 的经典应用

打印机是典型的独占设备,一次只能为一个进程服务。通过 SPOOLing,多个进程可以"同时"使用打印机——就像餐厅的取号系统,虽然只有一个厨房,但每个客人都觉得自己有"专属厨师"在做菜:

工作过程

  1. 用户进程调用打印请求 → SPOOLing 系统将打印数据写入输出井
  2. 用户进程认为打印已完成,继续执行(实际上还没真正打印)
  3. 输出进程在后台按顺序从输出井取出数据,送到打印机打印

关键:独占 → 共享

没有 SPOOLing有 SPOOLing
进程请求打印机 → 独占 → 其他进程等待进程请求打印 → 数据写入磁盘 → 立即返回
打印机是独占设备打印机变成了"共享"设备
可能导致死锁不会因打印机导致死锁

SPOOLing 与脱机技术的关系

比较脱机技术SPOOLing
实现方式专用外围机 + 磁带软件实现 + 磁盘
运行时机主机运行前/后与主机同时运行
本质硬件层面软件模拟脱机效果

考研高频考点

  • 🔥🔥🔥 SPOOLing 将独占设备改造为共享设备
  • 🔥🔥 共享打印机的实现原理(输出井 + 输出进程)
  • 🔥🔥 SPOOLing 系统的组成(输入/输出井、缓冲区、输入/输出进程)
  • 🔥 SPOOLing 是用软件模拟脱机技术

SPOOLing 在应用层面解决了独占设备的共享问题,而驱动程序才是真正和硬件打交道的那层。下一篇来看设备驱动程序接口的设计。

真题练习

相关真题(1题)

2016Q31选择题2分

SPOOLing:由系统而非用户控制数据传送