假脱机即
SPOOLing。
SPOOLing技术是低速
输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的
效果。
低速设备经通道和设在主机内存的
缓冲存储器与高速设备相联,该高速设备通常是
辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。简单来说就是在内存中形成缓冲区,在高速设备形成输出井和输入井,传递的时候,从低速设备传到高速设备的输入井,再传入缓冲区,再从缓冲区,传到高速设备的输出井,再传到低速设备。
SPOOLing是Simultaneous Peripheral Operation On-Line (即
外部设备联机并行操作)的缩写,它是关于慢速
字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
SPOOLing系统既不同于
脱机方式,也不同于直接耦合方式,
SPOOLing技术实际上是一种
外围设备同时
联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用
中断处理程序结束该次输入。然后,系统为该作业建立
作业控制块,从而使输入井中的作业进入作业
等待队列,等待
作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。若系统的某台
行式打印机采用了
虚拟设备技术,那么若有进程要求对它打印输出时,
SPOOLing系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘)上的输出,SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式保存在此。各进程的
数据输出文件形成了一个输出队列,由输出POOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一张
I/O请求表。这样,便把
独占设备改造为共享设备。
SPOOLing,即
外围设备联机并行操作,它除了是一种速度匹配技术外、也是一种
虚拟设备技术。用一种
物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备,而不直接使用物理的
独占设备。这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。
将一台独享打印机改造为可供多个用户共享的打印机,是应用
SPOOLing技术的典型实例。具体做法是:系统对于用户的打印输出,但并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。
(1)提高了
I/O速度.从对低速
I/O设备进行的
I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速
I/O设备速度不匹配的矛盾.
(2)设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表.
(3)实现了
虚拟设备功能.多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.