为了缓和CPU的高速性与I/O设备低速性之间的矛盾,引入了脱机输入/输出技术。该技术利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。
SPOOLing 的意思是同时外设联机操作(Simultaneous Peripheral Operating On-Line), 又称为假脱机输入/输出操作。SPOOLing技术实际上是一种外设同时联机操作技术,也称为排队转储技术。
SPOOLing系统的组成
1.输入井和输出井
输入井和输出井是指在磁盘上开辟出的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
2.输入缓冲区和输出缓冲区
输入缓冲区和输出缓冲区是在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
3.输入进程和输出进程
输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井。当CPU需要输入数据时,直接将数据从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备。
共享打印机是使用SPOOLing技术的一个实例,这项技术已被广泛地用于多用户系统和局域网络。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做:由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中。输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。
SPOOLing系统的主要特点
①提高了 I/O的速度;
②将独占设备改造为共享设备;
③实现了虚拟设备功能;
④SPOOLing除了是一种速度匹配技术外,也是一种虚拟设备技术。
课后习题
1.【2009统考真题】程序员利用系统调用打开I/O设备时,通常使用的设备标识是( )。
A.逻辑设备名 B.物理设备号 C.主设备号 D.从设备号
【答案】A
【解析】用户程序对I/O设备的请求采用逻辑设备名,而程序实际执行时使用物理设备名,它们之间的转换是由设备无关软件层完成的。主设备和从设备是总线仲裁中的概念。
2. 【2012统考真题】下列选项中,不能改善磁盘设备I/O性能的是( )。
A. 重排I/O请求次序 B. 在一个磁盘上设置多个分区
C. 预读和滞后写 D. 优化文件物理块的分布
【答案】B
【解析】对于A,重排I/O请求次序也就是进行I/O调度,使进程之间公平地共享磁盘访问,减少I/O完成所需要的平均等待时间。对于C ,缓冲区结合预读和滞后写技术对于具有重复性及阵发性的I/O进程改善磁盘I/O性能很有帮助。对于D ,优化文件物理块的分布可以减少寻找时间与延迟时间,从而提高磁盘性能。在一个磁盘上设置多个分区与改善设备I/O性能并无多大联系,相反还会带来处理的复杂性,降低利用率。
3. 【2011统考真题】某文件占10个磁盘块,现要把该文件的磁盘块逐个读入主存缓冲区,并送用户区进行分析,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是( )。
A.1500μs,1000μs B.1550μs,1100μs C.1550μs,1550μs D.2000μs,2000μs
【答案】B
【解析】在单缓冲区中,当上一个磁盘块从缓冲区读入用户区完成时,下一磁盘块才能开始读入,也就是当最后一块磁盘块读入用户区完毕时所用的时间为150×10= 1500μs,加上处理最后一个磁盘 块的时间50μs,得1550μs。双缓冲区中,不存在等待磁盘块从缓冲区读入用户区的问题,10个磁盘块可以连续从外存读入主存缓冲区,加上将最后一个磁盘块从缓冲区送到用户区的传输时间50μs及处理时间50μs,也就是100×10 + 50 + 50= 1100μs。
4. 【2013统考真题】设系统缓冲区和用户工作区均采用单缓冲,从外设读入一个数据块到系统缓冲区的时间为100,从系统缓冲区读入一个数据块到用户工作区的时间为5 ,对用户工作区中的一个数据块进行分析的时间为90( 如下图所示)。进程从外设读入并分析2个数据块的最短时间是( )。
A.200 B.295 C.300 D.390
【答案】C
【解析】数据块1从外设到用户工作区的总时间为105,在这段时间中,数据块2未进行操作。在数据块1进行分析处理时,数据块2从外设到用户工作区的总时间为105,这段时间是并行的。再加上数据块2进行处理的时间90 ,总共是300,答案为C。
5. 【2016统考真题】下列关于SPOOLing技术的叙述中,错误的是( )。
A. 需要外存的支持
B. 需要多道程序设计技术的支持
C. 可以让多个作业共享一台独占式设备
D. 由用户作业控制设备与输入/输出井之间的数据传送
【答案】D
【解析】SPOOLing利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。 SPOOLing的意思是外部设备同时联机操作,又称假脱机输入/输出操作,是操作系统中采用的一项将独占设备改造成共享设备的技术。高速磁盘即外存,A 正确。SPOOLing技术需要进行输入/输出操作,单道批处理系统无法满足,B 正确。SPOOLing技术实现了将独占设备改造成共享设备的技术,C正确。设备与输入井/输出井之间数据的传送是由系统实现的,D错误。
6. 【2015统考真题】在系统内存中设置磁盘缓冲区的主要目的是( )。
A .减少磁盘I/O次数 B .减少平均寻道时间
C .提高磁盘数据可靠性 D .实现设备无关性
【答案】A
【解析】磁盘和内存的速度差异,决定了可以将内存经常访问的文件调入磁盘缓冲区,从高速缓存中复制的访问比磁盘I/O的机械操作要快很多。
7. 在某系统中,从磁盘将一块数据输入缓冲区需要花费的时间为T, CPU对一块数据进行处理的时间为C , 将缓冲区的数据传送到用户区所花的时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
【解析】
1) 在单缓冲的情况下,应先从磁盘把一块数据输入缓冲区,所花费的时间为T,然后由操作系统将缓冲区的数据传送到用户区,所花的时间为接下来便由CPU对这一块数据进行计算,计算时间为C。由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M。
2) 在双缓冲的情况下,应先从磁盘把一块数据输入第一个缓冲区,当装满第一个缓冲区后,操作系统可将第一个缓冲区的数据传送到用户区并对第一块数据进行计算,与此同时可将磁盘输入数据送入第二个缓冲区;当计算完成后,若第二个缓冲区已装满数据,则又可以将第二个缓冲区中的数据传送至用户区并对第二块数据进行计算,与此同时可将磁盘输入数据送入第一个缓冲区,如此反复交替使用两个缓冲区。C > T 时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M 再对这块数据进行计算,花费时间为C ,所以一块数据的处理时间为 C + M , 即max(C,T) + M ;C<T时,输入操作比计算操作慢,在此情况下,由于M 远小于T (M 是从缓冲区到用户进程的时间,而T是I/O的时间),因此在将磁盘上的一 块数据传送到一个磁盘缓冲区期间(花费时间为T), 计算机已完成了将另一个缓冲区中的数据传送到用户区并对这块数据进行计算的工作,所以 块数据的处理时间为T,即max(C, T)o
登录后开始许愿
怎么进来的?