SPOOLING 系统详解

SPOOLING 系统详解

SPOOLING 系统,中文常称为假脱机技术 ,全称:
Simultaneous Peripheral Operations On-Line(联机同时外围设备操作)

它是一种用软件模拟脱机 I/O、将独占设备改造为共享设备 的技术,是操作系统中实现设备虚拟最典型的方案。


一、核心思想

  • 利用磁盘空间作为大容量缓冲
  • 独占设备 (如打印机、磁带机)
    虚拟成共享设备
  • 让多个进程"同时"使用设备,不必阻塞等待
  • 实现异步 I/O,进程不与慢速设备直接打交道

一句话概括:
用外存(磁盘)缓冲,把"排队等设备"变成"写入缓冲区就走"。


二、SPOOLING 系统组成

整个系统由四部分构成:

  1. 输入井

    磁盘上开辟的区域,用于暂存来自输入设备的数据

  2. 输出井

    磁盘上开辟的区域,用于暂存要送往输出设备的数据

  3. 输入进程(输入守护进程)

    负责把数据从输入井送到内存。

  4. 输出进程(输出守护进程)

    负责把数据从输出井排队、依次送往物理设备

此外还有:

  • 输入缓冲区:内存中暂存输入设备数据
  • 输出缓冲区:内存中暂存送往设备的数据

三、工作过程(以打印机为例,最经典)

  1. 多个用户进程同时请求打印
  2. 系统不直接分配打印机 ,而是让进程把打印内容
    写入磁盘的输出井
  3. 写入完成后,进程就可以继续运行,不用等待打印
  4. SPOOLING 系统的输出进程在后台管理打印队列
  5. 依次从输出井取出数据,送到打印机真正打印

效果:
一台物理打印机 → 虚拟出多台逻辑打印机,实现共享。


四、SPOOLING 系统特点

  1. 将独占设备虚拟为共享设备
  2. 以磁盘空间换取 I/O 效率(以空间换时间)
  3. 实现异步 I/O:进程不等待设备,继续执行
  4. 不占用物理设备时不阻塞,提高系统并发性
  5. 纯软件实现,不需要额外硬件

五、主要作用

  • 提高慢速设备利用率
  • 缓解 CPU 与外设速度不匹配
  • 实现设备共享,避免进程长期阻塞
  • 典型应用:打印机共享、磁盘脱机输入输出

六、最简总结

SPOOLING = 假脱机 = 磁盘缓冲 + 后台 I/O 进程

作用是:
把独占设备变成共享设备,让进程不用等慢速设备,提升系统并发能力。

相关推荐
未济1 天前
linux 配置环境变量
linux
傲世仙尊1 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
这个DBA有点耶1 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G1 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备1 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远1 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
_艾伦 耶格尔.1 天前
进程间通信
linux
Liuqy-051 天前
Linux IO编程——静态库、动态库
linux
彧azz1 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试