输入输出管理:假脱机技术(SPOOLING)

article/2025/8/21 3:03:55

假脱机技术

  • 假脱机技术(SPOOLING)
    • 1.1 脱机技术
    • 1.2 假脱机技术
    • 1.3 假脱机技术的应用
    • 1.4 假脱机技术和缓冲的区别

假脱机技术(SPOOLING)

下图来自程序员cxuan
IO软件层次结构

1.1 脱机技术

脱机处理是一种计算机技术,是指在不受主机控制的外部设备上进行数据处理,或与实时控制系统、主机不直接相连的数据处理。常用于主机速度不高的数据处理中提高设备的利用率 --摘自:脱机处理

外围控制机+更高速的设备(磁带)
作用:缓解设备与CPU的速度矛盾,实现预输入、缓输出
其实就是引入一个处理数据速度介于CPU和纸带机之间的设备(这里指磁带)来缓解CPU和纸带机两者处理数据速度差太多的问题

个人理解:用户将数据输入慢速设备纸带机,经过外围机和磁带的“传递”,交由快速设备计算机处理(因脱离了原纸带机,故称为脱机)处理完成后,再次经由外围机和磁带的“传递”,送回到慢速设备纸带机。中间外围机和磁带解决了慢速设备纸带机与快速设备计算机之间的速度不匹配问题。我们可以用软件的方式模拟这些中间外围机和磁带,从而实现脱机技术,即假脱机技术(因为是在本机模拟的)

下图来自王道考研操作系统

1.2 假脱机技术

SPOOLING技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节 --摘自:SPOOLING

为什么SPOOLING可以提高独占式设备的利用率?
个人理解:输入设备经由内存一次性向磁盘输入井输入用户进程需要的数据,让磁盘先保存着数据,这时输入设备就可以干别的事情了(似乎这里提高了设备利用率)用户进程在需要数据时经由内存从磁盘中拿到数据
输入设备:“进程,你要的数据我给你先放到缓冲区了,我先溜了”
用户进程:“好的,我需要时就会托内存去磁盘中取”

用软件的方式模拟脱机技术

输入井模拟脱机输入时的磁带,用于收容I/O设备输入时的数据
输出井模拟脱机输出时的磁带,用于用户进程输出的数据
输入进程模拟脱机输入时的外围控制机
输出进程模拟脱机输出时的外围控制机
输入缓冲区、输出缓冲区(内存中的缓冲区,相当于输入输出时的"数据中转站",“数据暂存站”)–摘自王道考研操作系统

1.3 假脱机技术的应用

独占式设备:只允许各个进程串行使用的设备,即一段时间内只能满足一个进程的请求
共享设备:允许多个进程“同时”使用的设备,宏观上同时,实际交替使用,可同时满足多个进程的使用请求

用SPOOLING技术将独占式设备(如打印机)“虚拟”为共享打印机(也就是将用户进程打印申请表放入打印任务队列中,相当于多个进程同时拥有了打印机的使用权)
实现了虚拟设备功能.多个进程同时使用同一个独占式设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.

The biggest example of Spooling is printing. The documents which are to be printed are stored in the SPOOL and then added to the queue for printing. During this time, many processes can perform their operations and use the CPU without waiting while the printer executes the printing process on the documents one-by-one.–摘自:Spooling in Operating System

下图来自王道考研操作系统

1.4 假脱机技术和缓冲的区别

Spooling and buffering are the two ways by which I/O subsystems improve the performance and efficiency of the computer by using a storage space in the main memory or on the disk.

The basic difference between Spooling and Buffering is that Spooling overlaps the I/O of one job with the execution of another job. In comparison, the buffering overlaps the I/O of one job with the execution of the same job --摘自:Spooling in Operating System

SPOOLing以磁盘作数据中间站、缓冲区(Buffer)以内存作数据中间站


http://chatgpt.dhexx.cn/article/0BHDlSs1.shtml

相关文章

操作系统实验--spooling技术

实验四 假脱机技术 一、目的和要求 1、目的 假脱机(SPOOLING)技术是广泛应用于各种计算机系统的一种行之有效的输入输出手段。这种技术使用比较简单的方法,缓和了高速处理机与低速输入输出设备速度不匹配的矛盾,提高了设备的利用率…

操作系统 | 实验七 SPOOLING技术

文章目录 一、实验目的二、实验内容三、数据结构3.1 数据结构3.2 函数以及功能 四、程序流程图五、实验代码六、实验结果七、实验体会总结 一、实验目的 理解和掌握SPOOLING假脱机技术 二、实验内容 通过SPOOLING技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,同…

假脱机技术spooling技术 原理易懂!

原理: 在手工输入,没有操作系统的阶段,只能通过纸带机把程序员的代码读入,然后CPU需要直接与纸袋机交互,由于输入和输出的速度很慢,即使CPU的处理速度很快,但是在数据输入和输出的时候&#xf…

操作系统:SPOOLing技术(假脱机技术)

一、什么是脱机技术? 批处理阶段引入了脱机输入/输出技术(用磁带完成) 流程如下: 人——> 纸带机——> 外围控制机——>磁带机——>主机——>磁带机——>外围控制机——>纸带机——>人 ①在外围控制器的控…

操作系统第五章_03 假脱机技术 (SPOOLing技术)

🏫中北大学软件学院 🥇 文章目录 知识总览什么是脱机技术假脱机技术 —— 输入井和输出井共享打印机知识总览 知识总览 什么是脱机技术 为什么称为“脱机”——脱离主机的控制进行的输入/输出操作。 手工操作阶段:主机直接从 I/O设备获得数…

操作系统-设备管理-spooling技术

操作系统-设备管理-spooling技术 思考题:A,B,C,D共用一台打印机x,要进行资料打印时,很容易出现“打印机正在使用!”,如何处理该问题? 我们在使用打印机的时候,可能会出现一种情况,就是我们的一…

聊聊SPOOLing技术

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

spooling技术介绍

SPOOLing(Simultaneous Peripheral Operation On-Line)技术,即外部设备联机并行操作,是为实现低速输入输出设备与高速的主机之间的高效率数据交换而设计的。通常称为“假脱机技术”,又称为排队转储技术。  具体来说&…

操作系统的SPOOLING技术

SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假脱机技术。 在多道程序环境下,利用多道程序中的一道或者两道程序来模拟…

SPOOLing技术的理解

最近在学习操作系统的SPOOLing技术,这篇博客作为一个学习的记录吧,供大家和我将来参考。 SPOOLing系统的组成 (1)输入井和输出井:输入井和输出井的存储区域是在磁盘上开辟出来的。输入输出井中的数据一般以文件的形式…

操作系统(SPOOLING技术)

SPOOKING技术 一、实验目的二、实验内容三、实验准备1、设计一个实现SPOOLING技术的进程2、设计进程调度算法3、进程状态4、数据结构5、编程说明6、程序框图 四、实验要求1、数据结构2、程序流程图代码运行结果 一、实验目的 理解和掌握SPOOLING假脱机技术 二、实验内容 通过S…

什么是业务对象?业务逻辑是什么?

业务对象通常被认为是代表实体,比如 或者存储的类。 这样的类具有一定的属性,比如价格,颜色,宽度,国际标准图书编号 等等. NET 地图( 对象地图中,它是由所谓的setter和 getter,换句话说&#xf…

【burpsuite安全练兵场-服务端5】业务逻辑漏洞-11个实验(全)

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

三层架构之业务逻辑层

你好,是我琉忆。 今天我们讲一讲三层架构中的业务逻辑层 1、业务逻辑层的介绍 业务逻辑层(Business Logic Layer,简称 BLL)是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有…

如何绘制逻辑图 — 7.逻辑的表达:业务逻辑

前4 篇介绍完了逻辑图三元素中“要素”的表达方式,下面要介绍逻辑图三元素之二“逻辑”的表达方式。逻辑表达的说明分为两篇,第一篇说明“业务逻辑”的表达方式,第二篇说明“数据逻辑”的表达方式。 在语言、文字和图形这三种表达方式中&…

如何先梳理业务逻辑再写代码

1.业务逻辑与代码 代码是需求逻辑的一种展现形式 需求文档是业务逻辑的一种展现形式,而代码不过是业务逻辑的另一种表现形式;如果逻辑本身有问题,那么它的各种展示形式自然也是错的,所以写代码前应该先思考清楚业务逻辑。 Revi…

【web实战-业务逻辑】评论点赞逻辑

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

SpringBoot框架实现简单业务逻辑

SpringBoot框架实现简单业务逻辑 总述Entity层Dao层Mapper.xml Service层ServiceImpl Controller层完整的业务逻辑实现写法示例Dao层声明方法Mapper.xml具体实现sql语句Service层声明方法ServiceImpl具体实现业务逻辑Controller层调用Service层方法实现 总结 总述 最基本的业务…

java如何优雅的写业务逻辑_java业务逻辑,写在哪里比较好?

java业务逻辑,写在哪里比较好?对于这个问题,我想说的是:规范是死的,人是活的,一般情况下,我们可以根据不同的 java 框架规范的目录来写,特殊情况下也可以自定义。 问题分析 接触过 j…

常见的业务逻辑漏洞-整合篇

笔者前言: 作为一个地地道道的安服仔,每日的工作就是渗透测试,在测试的过程中累积了很多的经验,看到了各种各样奇葩的漏洞,于是乎便有了这样的一篇文章。以下文章均由本人测试发现并打码,侵删 什么是业务逻…