我们平时常用的计算机设备,在计算机系统中其实是虚拟的存在( 三 )

打印机 , 是一个经典的通过SPOOLing技术将独占设备改造成共享设备的例子 。 既提高了设备的利用率 , 也方便了用户 。 当用户请求打印输出时 , SPOOLing系统同意它打印输出 , 并不真正的立即将打印机分配给用户进程 , 而是先由输出进程在输出井中申请一个空闲磁盘块区 , 将需要打印的数据送入其中 。 再为用户进程申请一张空白的用户请求打印表 , 将用户的打印要求填入其中 , 将该表挂到请求打印队列 。 等打印机空闲时再从打印队列的队首取出一张请求打印表 , 从输出井传送到缓冲区 , 再由打印机打印 。 如此往复 , 直到打印队列为空 。

SPOOLing具有三个主要特点:提高了I/O的速度 , 将低速I/O设备进行的I/O操作 , 演变为输入井或输出井中的数据存取 , 提高了I/O速度;将独占设备改造为共享设备 , 在SPOOLing系统中 , 并没有对任何进程分配设备 , 只是在输入输出井中建立存储区和I/O请求表;实现了虚拟设备功能 , 宏观上虽然多个进程同时使用一台独占设备 , 事实上是为每一个进程分配一个逻辑设备 。

推荐阅读