假脱机技术
- 假脱机技术(SPOOLING)
- 1.1 脱机技术
- 1.2 假脱机技术
- 1.3 假脱机技术的应用
- 1.4 假脱机技术和缓冲的区别
假脱机技术(SPOOLING)
下图来自程序员cxuan
IO软件层次结构
1.1 脱机技术
脱机处理是一种计算机技术,是指在不受主机控制的外部设备上进行数据处理,或与实时控制系统、主机不直接相连的数据处理。常用于主机速度不高的数据处理中提高设备的利用率 --摘自:脱机处理
外围控制机+更高速的设备(磁带)
作用:缓解设备与CPU的速度矛盾,实现预输入、缓输出
其实就是引入一个处理数据速度介于CPU和纸带机之间的设备(这里指磁带)来缓解CPU和纸带机两者处理数据速度差太多的问题
个人理解:用户将数据输入慢速设备纸带机,经过外围机和磁带的“传递”,交由快速设备计算机处理(因脱离了原纸带机,故称为脱机)处理完成后,再次经由外围机和磁带的“传递”,送回到慢速设备纸带机。中间外围机和磁带解决了慢速设备纸带机与快速设备计算机之间的速度不匹配问题。我们可以用软件的方式模拟这些中间外围机和磁带,从而实现脱机技术,即假脱机技术(因为是在本机模拟的)
下图来自王道考研操作系统
1.2 假脱机技术
SPOOLING技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节 --摘自:SPOOLING
为什么SPOOLING可以提高独占式设备的利用率?
个人理解:输入设备经由内存一次性向磁盘输入井输入用户进程需要的数据,让磁盘先保存着数据,这时输入设备就可以干别的事情了(似乎这里提高了设备利用率)用户进程在需要数据时经由内存从磁盘中拿到数据
输入设备:“进程,你要的数据我给你先放到缓冲区了,我先溜了”
用户进程:“好的,我需要时就会托内存去磁盘中取”
用软件的方式模拟脱机技术
输入井模拟脱机输入时的磁带,用于收容I/O设备输入时的数据
输出井模拟脱机输出时的磁带,用于用户进程输出的数据
输入进程模拟脱机输入时的外围控制机
输出进程模拟脱机输出时的外围控制机
输入缓冲区、输出缓冲区(内存中的缓冲区,相当于输入输出时的"数据中转站",“数据暂存站”)–摘自王道考研操作系统
1.3 假脱机技术的应用
独占式设备:只允许各个进程串行使用的设备,即一段时间内只能满足一个进程的请求
共享设备:允许多个进程“同时”使用的设备,宏观上同时,实际交替使用,可同时满足多个进程的使用请求
用SPOOLING技术将独占式设备(如打印机)“虚拟”为共享打印机(也就是将用户进程打印申请表放入打印任务队列中,相当于多个进程同时拥有了打印机的使用权)
实现了虚拟设备功能.多个进程同时使用同一个独占式设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.
The biggest example of Spooling is printing. The documents which are to be printed are stored in the SPOOL and then added to the queue for printing. During this time, many processes can perform their operations and use the CPU without waiting while the printer executes the printing process on the documents one-by-one.–摘自:Spooling in Operating System
下图来自王道考研操作系统
1.4 假脱机技术和缓冲的区别
Spooling and buffering are the two ways by which I/O subsystems improve the performance and efficiency of the computer by using a storage space in the main memory or on the disk.
The basic difference between Spooling and Buffering is that Spooling overlaps the I/O of one job with the execution of another job. In comparison, the buffering overlaps the I/O of one job with the execution of the same job --摘自:Spooling in Operating System
SPOOLing以磁盘作数据中间站、缓冲区(Buffer)以内存作数据中间站