假脱机技术SPOOLing
什么是脱机技术,脱机技术可以解决什么问题
手工操作阶段:主机直接从I/O设备获得数据,由于设备速度慢,主机速度很快,人机速度矛盾明显,主机要浪费很多时间来等待设备
批处理阶段引入了脱机输入/输出技术(外围控制机+磁带):脱离主机的控制进行的输入/输出操作
引入脱机技术后,缓解了CPU与慢速I/O设备的速度矛盾。另一方面,即使CPU在忙碌,也可以提前将数据输入到磁带,即使慢速的输出设备正在忙碌,也可以提前将数据输出到磁带
假脱机技术的实现原理
假脱机技术又称SPOOLing技术,是用软件的方式模拟脱机技术
输入井和输出井
在磁盘上开辟出两个存储区域:输入井和输出井
“输入井”模拟脱机输入时的磁带,用于收容I/O设备输入的数据
“输出井”模拟脱机输出时的磁带,用于收容用户进程输出的数据
输入进程和输出进程
要实现SPOOLing技术,必须要有多道程序技术的支持,系统会建立“输入进程”和“输出进程”
输入缓冲区和输出缓冲区
注意,输入缓冲区和输出缓冲区是在内存中的缓冲区
在输入进程的控制下,输入缓冲区用于暂存从输入设备输入的数据,之后再转存到输入井中
在输出进程的控制下,输出缓冲区用于暂存从输出井送来的数据,之后再传送到输出设备上
共享打印机的原理分析
虽然系统中只有一台打印机,但每个进程提出打印请求时,系统都会在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享
SPOOLing技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备