操作系统的SPOOLING技术

SPOOLING技术(Simultaneous Peripheral Operating On Line)
同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假脱机技术。
在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入/输出中的外围控制机的功能,以达到“脱机”输入/输出的目的。
利用这种技术可把独占设备转变成共享的虚拟设备,从而提高独占设备的利用率和进程的推进速度。在这里插入图片描述
SPOOLING系统 是对脱机输入/输出工作的模拟,它必须有大容量的且可随机存取的存储器的支持。
其主要思想是在联机的条件下,进行两个方向的操作,在数据输入时,将数据从输入设备传送到磁盘或磁带(块设备),然后把这些块设备与主机相连;反过来,在数据输出时,将输出数据传送到磁盘或磁带上,再从磁盘或磁带传送到输出设备。
这样,可以将一台独占的物理设备虚拟为并行使用的多态逻辑设备,从而使该物理设备被多个进程共享。
在这里插入图片描述
输入进程SPI是模拟脱机输入时的外围控制机,它将用户要求处理的数据从输入设备通过输入缓冲区再送到输入井(磁盘上开辟的一块区域),当CPU处理这些数据数据时,就直接从输入井读入内存。
输出进程SPO是模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据通过输出缓冲区(内存中一块区域)传送到输出设备上。

实例:利用打印机实现打印机共享
已经被广泛用于多用户系统和计算机网络中,它实际上就是利用SPOOLING技术将独占的打印机改造为一台供做个用户共享的设备,只要有足够的外存空间和多道程序操作系统的支持即可。
1、当用户进程请求打印输出时,SPOOLING系统立即同意为该进程执行打印输出,但并不是真正地把打印机分配给该用户进程,而只是为该进程做两项工作: 一项是由输出进程SPO在输出井中为之申请一个空闲的存储空间,并将要打印的数据传送其中存放;另一项工作就是由输出进程SPO再为用户进程申请一张空白的用户请求打印表,并将用户的打印请求填入其中,然后将该表挂到打印机的请求队列上。这时,如果还有另一个进程请求打印机时,则系统仍同意为该进程执行打印输出,当然,系统所做的工作仍是以上两项内容。
2、在打印机执行实际打印时,如果打印机空闲,输出进程SPO将从请求打印队列的队首取出一张打印表,根据打印表中的要求将要打印的数据从输出井传送到内存输出缓冲区,再传送到打印机打印。打印完后,输出进程SPO将再检查请求打印队列中是否还有待打印的请求表,若有则再取出一张请求打印表,将新的但因要求继续打印。如此反复,直到请求打印队列空为止,输出进程才将自己阻塞起来,并在下次再有打印请求时被唤醒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独立磁盘冗余阵列:RAID

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fsx2550553488/article/details/79819164 RAID RAID:独立磁盘冗余阵列(Redun…

task2 EDA数据分析

目标 了解,验证数据集 了解变量关系,与预测值之间关系 数据处理、特征工程 数据探索性分析 EDA探索性数据分析 通过EDA可实现: 1. 得到数据的直观表现 2. 发现潜在的结构 3. 提取重要的变量 4. 处理异常值 5. 检验统计假设 6. 建立初步…

task2 EDA探索性数据分析

1、赛题数据赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽…

2021-06-10

局部搜索算法是一种简单的贪心搜索算法,是解决最优化问题的一种启发式算法,该算法每次从当前解的临近解空间中根据启发函数选择一个最优解(也不一定是最优解)作为当前解,直到达到一个局部最优解。本文以求解八皇后问题…

.NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)

引言 随着CPU多核的普及,编程时充分利用这个特性越显重要。上篇首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Class来并行地进行填充,最后对比他们的性能。本文将深入分析Parallel Class并借机…

.net框架读书笔记---CLR内存管理\垃圾收集(二)

前几天学习了CLR垃圾收集原理和基本算法,但是那些是仅仅相对于托管堆而言的,任何非托管资源的类型,例如文件、网络资源等,都必须支持一种称为终止化(finalization)的操作。 终止化 终止化操作允许一种资源在…

重构手法——提炼函数、搬移函数、以多态取代条件表达式

目录我的心路历程我的学习概括Extract Method(提炼函数)动机*--做法动机--做法*Move Method(搬移函数)动机*--做法动机--做法*Replace Conditional with Polymorphism(以多态取代条件表达式)动机*--做法动机…

FTP服务器架设详细图解

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。FTP服务作为Internet最古老的服务之一,无论在过去还是现在都有着不可替代的作用。在企业中,对于一些大文件的共享,通…

IP-tools

IP-tools 网管员的第三只眼^ Ip-tools是一款功能齐全的网管软件,可以随时随地的向网管员报告网络的运行情况ip-tools自身集成多种tcp/ip使用工具,如本地信息、链接信息、端口扫描、ping、WHOIS、finger、nslookup、telnet、NetBIOS等功能。界面是全英的&…

用git提交代码到远程仓库遇到的问题

目录我的学习过程git环境配置(Mac版)git原理图git的push操作思路遇到的问题我的学习过程 昨天重写了一遍聊天程序,准备提交到git上进行代码管理。结果遇到了不少问题。我照着网上的教程进行操作,一步一步踩了很多坑。 git环境配…

git pull和push整理和归纳

目录各个模块概念工作区版本库暂存区远程仓库pull和push流程相关的命令暂存区相关版本库相关远程仓库相关利用远程仓库协作开发各个模块概念 我的理解: Git是版本管理工具,它主要对指定目录下的一些特定的文件的修改进行版本管理。 相关的模块有&#x…

Linux中点号,星号,加号,问号实战

目录Linux中的星号,点号和加号概念我的学习过程:我的思考过程:点号(.)星号(*)加号()问号(?)linux星号,点号,加号&#xf…

广播地址的计算方法(与运算、或运算)

目录我的学习过程Python中逻辑运算符notandor位运算符取反(~)与(&)或(|)广播地址计算方法IP地址子网掩码网络地址广播地址广播地址计算举例我的学习过程 今天学习UDP的单播、多播、广播中,…

Wt::WTreeNode

2019独角兽企业重金招聘Python工程师标准>>> A single node in a tree. 〔 这个 widget 渲染的是一棵树的一个节点。〕 A tree list is constructed by combining several tree node objects in a tree hierarchy, by passing the parent tree node as the last arg…

匿名内部类探究——它是一个实例

目录我的学习过程匿名内部类概述匿名内部类探究代码验证(匿名内部类是一个实例)结论我的学习过程 昨天想学习一下Java8新特性,看到Lambda表达式可以替代匿名内部类。我对匿名内部类不太理解,决定学习一下。并进行了下面的归纳和思…

Lambda表达式及应用

目录Lambda表达式概念应用在forEach()方法使用用来替代匿名内部类代码验证(Lambda表达式替代匿名内部类)Lambda表达式 概念 语法形式: () -> {} 组成: 括号:表示参数列表;箭头:表示lambda…

网络地址和广播地址的快速计算方法

目录前提条件方法原理网络地址快速计算示例广播地址快速计算示例前提条件 由IP地址和子网掩码,快速计算网络地址和广播地址。 小窍门前提:当子网掩码组成只有255和0组成时。 方法原理 利用255(或者0)和其他数字的&&#xf…

把十六进制字符转换成十进制数

2019独角兽企业重金招聘Python工程师标准>>> /*** Get the hex value of a character (base16).* param c A character between 0 and 9 or between A and F or* between a and f.* return An int between 0 and 15, or -1 if c was not a hex digit.*/public stat…

SQL Server更新某一列中多个字典码对应内容(sql示例)

目录示例-查询出多个字典码对应的内容示例-替换多个字典码对应的内容说明CHARINDEXFOR XML PATH示例-查询出多个字典码对应的内容 建立表格:学生-学习科目表student_study 注意:科目kemu列内容是字典码,需要更换成对应内容。 建立表格&…