IO核心子系统
假脱机技术
为了缓和 CPU 的高速性与 I/O 设备的低速性之间的矛盾,引入了假脱机技术,它是操作系统中采用的一项将独占设备改造成共享设备的技术。该技术利用专门的外围控制机,先将低速 I/O设备上的数据传送到高速磁盘上,或者相反。当 CPU 需要输入数据时,便可直接从磁盘中读取数据;反之,当 CPU 需要输出数据时,也能以很快的速度将数据先输出到磁盘上。引入多道程序技术后,系统便可利用程序来模拟脱机输入/输出时的外围控制机,在主机的直接控制下实现脱机输入/输出功能。SPOOLing 系统的组成如图 5.14 所示。
输入井和输出井
在磁盘上开辟出的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容 IO 设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。一个进程的输入(或输出)数据保存为一个文件,所有进程的输入(或输出)文件链接成一个输入(或输出)队列。
输入缓冲区和输出缓冲区
在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
注意是输入井和输出井扮演了脱机技术中磁盘的角色,输入缓冲区和输出缓冲区只是为了完成对输入井和输出井的I/O
输入进程和输出进程
注意从输入井中读数据并不是输出程序负责的,同理向输出井中写入数据也不是由输入程序负责
上述两个过程可能是由假脱机管理程序负责的