如何理解spooling技术?
只需要理解——
① 为什么有个“假”字?
② 假脱机技术的应用对象是?
一、概念引入
经过查阅相关资料,SPOOling的全称是:Simultaneous Peripheral Operations On-Line,直译一下就是“即时同步外设操作”,从名称推测,SPOOling技术主要是实现“即时”和“同步”,而且是基于“外设“。其较为完整的定义是:
SPOOling技术是一种用于提高计算机系统性能和效率的数据处理技术。它通过将输入和输出的数据暂存到磁盘或其他存储设备中,然后按照一定的顺序进行处理,从而实现了数据的高效管理和处理。
从概念表达可以看出,基本环节有三个:
① 获取数据;
② 将数据暂存在存储设备中;
③ 执行/处理任务;
可以想到,②中暂存的数据、③中要执行的任务一定是有选择性的,不然无法实现“数据的高效管理和处理”。
二、原理
在了解假脱机技术时,自然而然了解到了脱机技术和联机处理,对比来看:
脱机处理时,外部设备数据先存缓冲区,等缓冲区满或时间到再处理。输出时,结果先放缓冲区再慢慢输出,主机同时处理其他任务。输入数据需验证合法性时,用联机处理;若是从网络或磁盘读数据,可考虑脱机处理,因这些数据可不校验直接再加工。也就是老师上课举的例子:
人——> 纸带机——> 外围控制机——>磁带机——>主机——>磁带机——>外围控制机——>纸带机——>人
与脱机技术相比,假脱机SPOOling技术的输入/输出不直接送往输入/输出设备或计算机,而是先送到外存储器(前面提到的“外设“)。将假脱机技术的原理概述如下:
1. 输入井和输出井:在磁盘上开辟出两个存储区域:“输入井”和“输出井”。
- “输入井”模拟脱机输入时的磁带,用于收容I/O设备输入的数据。
- “输出井”模拟脱机输出时的磁带,用于收容用户进程输出的数据。
2. 输入进程和输出进程:
- “输入进程”模拟脱机输入时的外围控制机,负责将用户要求的数据从输入设备,通过输入缓冲区送到输入井。
- “输出进程”模拟脱机输出时的外围控制机,负责把用户要求输出的数据,先从主存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
3. 输入缓冲区和输出缓冲区:
- 在输入进程的控制下,“输入缓冲区”用于暂存从输入设备输入的数据,之后再转存到输入井中。
- 在输出进程的控制下,“输出缓冲区”用于暂存从输出井送来的数据,之后再传送到输出设备上。
4. 共享设备:
假脱机技术将所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作。由于输出井在磁盘上,为共享设备,因此假脱机技术可以把打印机等独占设备改造成共享设备。
根据原理,我们也可以理解“假”的含义——在多道程序系统中,对于正在运行的程序而言,正在运作的IO设备是脱机的;但是对于整个系统而言,IO设备是联机的,因而称为“假脱机”。
假脱机技术通过软件模拟的方式,实现了类似脱机技术的数据流转和处理过程,但更加高效和灵活。它允许多个用户进程同时提交打印任务,并将这些任务存储在磁盘的输入井和输出井中排队等待处理,从而提高了设备的利用率和系统的效率。
看到这里如果可以解答开头提出的两个问题那目的就达成啦!