为了缓和CPU的高速性与I/O设备低速性之间的矛盾而引入了脱机输入/输出技术。该 技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。 SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中 用的一项将独占设备改造成共享设备的技术。
SPOOLing系统组成如图5-11所示。
在磁盘上开辟出的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输 入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送 到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再 送到输入井。当CPU需要输入数据时,直接将数据从输入井读入内存。输出进程模拟脱机 输出时的外围控制机,把用户要求输出的数据先从内存送到输出并,待输出设备空闲时,再 将输出井中的数据经过输出缓冲区送到输出设备。
共享打印机是使用SPOOLing技术的一个实例,这项技术已被广泛地用于多用户系统和 局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正 立即把打印机分配给该用户进程,而只为它做两件事:
SPOOLing系统的主要特点有:提高了 I/O的速度;将独占设备改造为共享设备;实现 了虚拟设备功能。