Spooling技术
转自https://blog.csdn.net/weixin_42229896/article/details/80736517
假脱机的概念
SPOOLing技术:利用高速共享设备(通常是磁鼓或者是磁带)将低速的独享设备模拟为高速的共享设备,这样,从逻辑上讲,计算机系统为每一个用户都分配了一台独立的高速独享设备。
假脱机技术的组成
假脱机技术有输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程、请求打印队列组成。
其系统图如下所示:
输入输出井
它们是在磁盘上开辟的两大存储区。输入井是模拟脱机输入时的磁盘,用于收容输入设备输入的数据;输出井是模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
输入缓冲区和输出缓冲区
它们是在主存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井;输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
输入进程和输出进程
输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入设备,通过输入缓冲区送到输入井。当CPU需要数据时,直接从输入井读入主存;输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从主存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
请求打印队列
由若干张请求打印表所形成的队列,系统为每个请求打印的进程建立一张请求打印表。
假脱机的技术原理
它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。
以打印机为例:若系统的某台打印机采用了虚拟设备技术,那么若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘)上的输出,SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式此。各进程的数据输出文件形成了一个输出队列,由输出POOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一章I/O请求表。这样,便把独占设备改造为共享设备。
假脱机的特点
(1)提高了输入输出速度
SPOOLing技术提高了I/O速度.从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)将独占设备改造为共享设备
由于SPOOLing技术把所有用户进程的输出都送入输出井,然后再由输出进程完成打印工作,而输出井在磁盘上,为共享设备。这样,SPOOLing技术就把打印机等独占设备改造成立共享设备。
(3)实现了虚拟设备功能
由于SPOOLing技术实现了多个用户进程共同使用打印机这种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。
Spooling技术的更多相关文章
- 转 SPOOLING技术——操作系统
传送门 SPOOLING技术——操作系统 SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计 ...
- 操作系统-I/O(3)SPOOLing技术
为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入.输出技术.该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上:或者相反. 事实上,当系统中引入了多道程序技术后,完 ...
- ******十三 ******、软设笔记【操作系统】-磁盘管理、虚设备与SPOOLing系统
五.磁盘管理 1.磁盘的访问时间 *寻道时间Ts:把磁臂从当前位置移到指定磁道上所经历的时间 *选择延迟时间Tr:指定扇区移动到磁头下面所经历的时间. *传输时间Tt:数据从磁盘读出或向磁盘写入数据所 ...
- 3.4 目录和spooling
文件管理部分主要讲文件目录.文件目录它是用于检索文件的.文件目录它是一种文件系统实现按0存取的一种重要手段.一个文件目录它由若干个目录项组成的.每一个目录项它记录了一个文件的相关信息.这个文件信息指明 ...
- IO软件层次结构与假脱机技术
IO软件层次结构 用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进 ...
- 转载文章——从HelloWorld学习操作系统
转载地址:https://my.oschina.net/hosee/blog/673628?p=%7b%7bcurrentPage+1%7d%7d 本文就将系统性的串联起那些知识点,方便复习和回顾.本 ...
- 关于NIO
操作系统的IO控制 在整个IO控制方式的发展过程中,始终贯穿着这样一条宗旨:即尽量减少主机对IO控制的干预,把主机从繁杂的IO控制事务中解脱出来,以便更多地去完成数据处理任务.为了缓和高速CPU和IO ...
- Windows打印体系结构之Print Spooler概念与架构
Windows打印体系结构之Print Spooler概念与架构Windows 思杰之路(陶菘) · 2016-09-06 22:07 房子好不好,对我而言始终都是肉体的栖居.对于灵魂,我从来不知道该 ...
- 找工作---操作系统常考知识点总结【PB】
1.进程是并发过程中程序的执行过程 2.进程的特征:结构特征.动态性.并发性.独立性.异步性 3.临界区指在每个进程中访问临界资源的那段代码 4,现在操作系统中申请资源的基本单位是进程,在CPU得到执 ...
随机推荐
- glide从入门到精通使用
介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰的Maven和Gradle. Golang亦有godep.govendor.glide.gvt.gopac ...
- [py][mx]django使用class写views-免去判断方法的烦恼
修改views使用class模式 类模式写views - 免去了函数模式的判断的烦恼 users/views.py from django.views.generic import View clas ...
- PAT 1030 Travel Plan[图论][难]
1030 Travel Plan (30)(30 分) A traveler's map gives the distances between cities along the highways, ...
- spring-data-mongodb关于id的坑
有如下Mongo记录: 在Java中对应2个类来表示此结构: public class SG_IMAGERELATION { @Id private String id; private int gi ...
- 简单的js动态显示当前时间
js中获取当前时间首先我们要new一个时间对象 var data = new Date(); 然后可以点出很多方法.获取不同的时间格式 自己可以去尝试
- 剑指offer2
请实现一个函数,将一个字符串中的字符串空格替换成“%20”.例如:“We Are Happy”转化后为“We%20Are%20Happy” 思路:把字符串转化成字符数组,判断这个字符是不是空格,如果是 ...
- Hadoop学习之路(二十四)YARN的资源调度
YARN 1.1.YARN 概述 YARN(Yet Another Resource Negotiator) YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操 作系 ...
- 持续集成之二:搭建SVN服务器--Apache HTTP Server安装
安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 httpd-2.4.35.tar.gz apr-1.6.5.t ...
- B轮公司技术问题列表
B轮公司技术问题列表 1.异构系统的接口对接我们有自己的一套统一接口,但是需要与其它公司的接口做对接,但是各个公司的接口各不相同,有什么好的方式能够方便与各公司的接口做对接的同时我们这边也能尽量少或者 ...
- 让nodepad++编辑时链接能双击打开
让nodepad++编辑时链接能双击打开,Notepad++自动把代码或编辑状态里的链接或URL地址转成可点击的链接,当你双击该URL会打开相应的网页地址,不用复制地址到浏览器打开了,非常方便好用. ...