假脱机技术Spooling和守护进程

article/2025/8/21 3:07:47

文章目录

  • 假脱机系统Spooling和守护进程
    • 1.假脱机技术的引入
    • 2.SPOOling系统的组成
    • 3.SPOOling系统的工作过程
    • 守护进程

假脱机系统Spooling和守护进程

1.假脱机技术的引入

脱机技术: 为了缓和CPU的高速性与IO设备的低速性间的矛盾,而引入了脱机输入,脱机输出技术。该技术是利用专门的外围控制机,先将低速IO设备上的数据传送到高速磁盘上,或者相反。这样的处理机需要输入数据时,便可以直接从磁盘中读取数据,极大地提高了输入速度。反之,当处理机需要输出数据时,也可以以很快的速度将数据先输出到磁盘上,处理机便可去做自己的事情。

假脱机技术: 当系统引入多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时外围控制机的功能,把低速IO设备上的数据传送到高速磁盘上。再利用另外一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样便可在主机的直接控制下,实现以前的脱机输入,输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作技术称为SPOOling技术,或称为假脱机技术。通过假脱机技术可以将一台物理IO设备虚拟为多台逻辑IO设备,允许多个用户共享一台物理IO设备。

2.SPOOling系统的组成

在这里插入图片描述

  • 1.输入井与输出井:位于磁盘上开辟出来的两个空间。输入井用来暂存IO设备输入的数据;输出井用来暂存用户程序想要输出的数据。输入、输出井中的数据一般以文件的形式组织管理(井文件)。一个文件仅存放某一个进程的输入或输出数据,所有进程的数据输入或输出文件链接成为一个输出或输出队列。
  • 2.输入缓冲区和输出缓冲区:在内存中开辟出来的两个缓冲区,用于缓和CPU和磁盘之间速度不匹配的矛盾。输入缓冲区用于暂存由输入设备传送的数据,之后再传送带输入井进行保存。输出缓冲区用于暂存从输出井传送的数据,之后再传送到输出设备。
  • 3.输入进程和输出进程: 输入进程用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再放入输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程用于模拟脱机输出时的外围控制机,把用户要求输出的数据从内存传送并放到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区输出至输出设备上。
  • 4.井管理程序 : 用于控制作业与磁盘井之间的信息交换。当作业执行过程中向某台设备发出启动输入或输出操作请求时,由操作系统调用井管理程序,由其控制从输入井读取信息或将信息输出至输出井。

3.SPOOling系统的工作过程

以假脱机打印系统为例:

  • 每当用户进程发出打印输出请求时,假脱机打印机系统并不是立即把打印机分配给该用户进程,而是由假脱机管理进程完成两项工作:
    • ①在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据送入其中暂存
    • ②为用户进程申请一张空白的用户请求打印表,并将该用户的打印要求填入其中,再将该表挂到假脱机文件队列上。
    • 在完成了这两项工作后,虽然还没有进行任何实际的打印输出,但是对于用户而言,其打印请求已经得到了满足,打印输出任务已完成。所以可以称为后台打印
  • 真正的打印输出是假脱机打印进程负责的,当打印机空闲时,该进程首先从假脱机文件队列的队首摘取一张请求打印表,然后根据表中的打印要求将要打印的数据由输出井传送到内存缓冲区,再交互打印机进行打印。
  • 一个打印任务完成后,假脱机打印进程再次查看假脱机文件队列,若队列非空,则重复上述工作,直至队列为空,此后假脱机打印进程将自己阻塞起来,仅当再次有打印请求时,才被重新唤醒运行。

总结:在假脱机打印系统下,对于每个用户而言,系统并非即时执行其程序输出数据的真实打印操作,而只是即时将数据输出到缓冲区,这时的数据并未真正被打印,只是让用户感觉系统正在为自己打印;真正的打印操作是在打印机空闲且该打印任务在等待队列中已排到队首时进行的,而且打印操作本身也是利用CPU的一个时间片,没有使用专门的外围机。以上过程对于用户来讲是透明的,所以对用户来讲完成了把一台IO设备虚拟成多台IO设备的逻辑实现。

守护进程

凡是需要将独占设备改造为可供多个进程共享的设备时,都要为该设备配置一个守护进程和一个假脱机文件队列(目录)。守护进程是允许使用该独占设备的唯一进程,其它所有进程都不能直接使用该设备,只能将对该设备的使用要求写入一份文件中,放在假脱机目录中。由守护进程按照目录中的文件依次来完成诸进程对该设备的请求,这样就把一台独占设备改造为可为多个进程共享的设备。

在假脱机打印系统中,如果采用守护进程的方式,则将假脱机管理系统更换为为打印机建立一个守护进程,

  • 它可以为用户在磁盘缓冲区中申请一个空闲盘块,并将要打印的数据送入其中,将该盘块的首地址返回给请求进程;
  • 然后每个要打印的进程首先生成一份要求打印的文件,其中包含对打印的要求和指向装有打印输出数据盘块的指针等信息
  • 然后将用户请求打印文件放入假脱机文件队列(目录)中
  • 守护进程是允许使用打印机的唯一进程,当有要求打印的文件进入假脱机文件队列时,如果守护进程正在睡眠则将它唤醒
  • 由守护进程按照目录中第一个文件的说明进行打印,打印完成后再按照第二个文件中的说明进行打印,如此逐份地进行打印直到目录中的全部文件打印完毕,守护进程无事可做再去睡眠,等待新的打印请求到来。

http://chatgpt.dhexx.cn/article/tcDngGXb.shtml

相关文章

【操作系统】SPOOLing技术(外部设备联机并行操作/假脱机技术)

SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备(生活中最常见的就是多台电脑共享同一个打印机) 目的:为了缓和CPU的高速性与I/O设备低速性之间的矛盾而引入了脱机输入/输出技术。…

操作系统~假脱机SPOOLing技术与缓冲区管理

文章目录 什么是脱机技术假脱机技术—―输入/输出缓冲区共享打印机的实现原理缓冲区的管理缓冲区的工作过程单缓冲双缓冲循环缓冲区缓冲池 什么是脱机技术 在传统的批处理操作系统中, 我们将输入数据统一写到磁带中, 又将输出数据统一写到磁带中, 这就是一种脱机技术 Tips:为…

实验四 模拟SPOOLING技术

实验目的 通过设计一个SPOOLING假脱机输出的模拟程序,更好地理解和掌握SPOOLING假脱机技术.。 实验内容 1.设计一个实现SPOOLING技术的进程 设计一个SPOOLING输出进程和两个请求输出的用户进程。 当用户需要输出时,调用请求输出进程,将需…

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

假脱机技术 假脱机技术(SPOOLING)1.1 脱机技术1.2 假脱机技术1.3 假脱机技术的应用1.4 假脱机技术和缓冲的区别 假脱机技术(SPOOLING) 下图来自程序员cxuan IO软件层次结构 1.1 脱机技术 脱机处理是一种计算机技术,是…

操作系统实验--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…