SPOOLing技术

1.什么是SPOOLing 脱机输入、脱机输出技术。

该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。

         引入了多道程序技术后,可以利用进程来模拟脱机输入时的外围控制机功能。这样,外围操作与CPU对数据的处理同时进行,我们把这种在联 机情况下实现的同时外围操作称SPOOLing,或称为假脱机操作

2.SPOOLing系统的组成

由上所述得知,SPOOLing技术是对脱机输入、输出系统的模拟。 相应地,SPOOLing系统必须建立在具有多道程序功能的操作系统上, 而且还应有高速随机外存的支持,这通常是采用磁盘存储技术。

SPOOLing系统主要有以下三部分:

(1) 输入井和输出井。这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。

(2) 输入缓冲区和输出缓冲区。为了缓和CPU和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。

(3) 输入进程SPi和输出进程SPo。这里利用两个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时, 直接从输入井读入内存;进程SPo模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。

                

3.共享打印机

        打印机是经常要用到的输出设备,属于独占设备。利用SPOOLing技 术,可将之改造为一台可供多个用户共享的设备,从而提高设备的利用 率,也方便了用户。共享打印机技术已被广泛地用于多用户系统和局域 网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程,而只为它做两件事:① 由 输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送 入其中;② 输出进程再为用户进程申请一张空白的用户请求打印表,并 将用户的打印要求填入其中,再将该表挂到请求打印队列上。如果还有 进程要求打印输出,系统仍可接受该请求,也同样为该进程做上述两件事。

        如果打印机空闲,输出进程将从请求打印队列的队首取出一张请 求打印表,根据表中的要求将要打印的数据,从输出井传送到内存缓 冲区,再由打印机进行打印。打印完后,输出进程再查看请求打印队 列中是否还有等待打印的请求表。若有,又取出队列中的第一张表, 并根据其中的要求进行打印,如此下去,直至请求打印队列为空,输 出进程才将自己阻塞起来。仅当下次再有打印请求时,输出进程才被唤醒。

4.SPOOLing系统的特点

        (1) 提高了I/O的速度。这里,对数据所进行的I/O操作,已从对低 速I/O设备进行的I/O操作,演变为对输入井或输出井中数据的存取, 如同脱机输入输出一样,提高了I/O速度,缓和了CPU与低速I/O设备 之间速度不匹配的矛盾。

        (2) 将独占设备改造为共享设备。因为在SPOOLing系统中,实际上 并没为任何进程分配设备,而只是在输入井或输出井中为进程分配一 个存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。

        (3) 实现了虚拟设备功能。宏观上,虽然是多个进程在同时使用一 台独占设备,而对于每一个进程而言,他们都会认为自己是独占了一 个设备。当然,该设备只是逻辑上的设备。SPOOLing系统实现了将独 占设备变换为若干台对应的逻辑设备的功能。

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
spooling技术是一种用于优化计算机系统资源利用的技术,用来解决多个用户同时访问共享资源时的冲突和效率问题。而例程库则是一组提供给程序员使用的预定义例程或函数的集合。 在使用spooling技术时,系统会将用户的任务临时存储到磁盘或内存中,然后逐个处理,从而实现并发处理多个任务的目的。这样一来,多个用户就可以同时提交任务而不会产生冲突,也不需要等待其他任务的完成。 例程库是一个由各种常用函数和程序组成的库,可以为程序员提供快速、高效的开发工具。这些例程库中包含了各种常用的功能函数,例如输入输出操作、字符串处理、数学运算等。程序员可以通过调用这些例程来完成特定的任务,而不需要从头开始编写整个程序,大大提高了开发效率和代码质量。 结合spooling技术和例程库的优势,可以实现更高效的任务处理。多个用户可以同时提交任务,并且可以利用例程库中提供的函数来完成特定的任务,减少了代码开发的重复劳动。同时,通过spooling技术,可以更加充分地利用计算机系统的资源,提高系统的性能和效率。 总之,spooling技术和例程库的结合可以为计算机系统的任务处理提供更高效、更快速的解决方案,提高了系统的并发性和资源利用率。这对于用户和程序员来说都是非常有益的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值