文章目录

  • 假脱机系统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设备的逻辑实现。

守护进程

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

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

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

假脱机技术Spooling和守护进程相关推荐

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

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

  2. 5.2.2 OS之I/O设备假脱机技术(SPOOLing)

    文章目录 0.思维导图 1.什么是脱机技术? 2.假脱机技术 输入井和输出井 输入进程与输出进程 输入输出缓冲区 共享打印机原理分析---假脱机技术的一种应用 0.思维导图 1.什么是脱机技术? 这里 ...

  3. 操作系统之I/O管理:2、SPOOLing技术(假脱机技术)

    2.SPOOLing技术 思维导图 脱机技术 假脱机技术(SPOOLing技术) 用假脱机技术实现共享打印机 思维导图 脱机技术 1.在早期的批处理系统中,输入输出经历了这样的过程:纸带----磁带- ...

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

    假脱机技术 假脱机技术(SPOOLING) 1.1 脱机技术 1.2 假脱机技术 1.3 假脱机技术的应用 1.4 假脱机技术和缓冲的区别 假脱机技术(SPOOLING) 下图来自程序员cxuan I ...

  5. OS_@假脱机技术@设备分配@设备映射

    文章目录 OS_@假脱机技术@设备分配@设备映射 设备分配的策略 1)设备分配原则 2)设备分配方式 静态分配 动态分配 3)设备分配算法 设备分配的安全性 1)安全分配方式 2)不安全分配方式 逻辑 ...

  6. 假脱机技术——实现独占设备变成共享设备

    文章目录 什么是脱机技术 假脱机技术--SPOOLing 输入井和输出井 输入进程与输出进程 输入输出缓冲区 共享打印机原理分析-假脱机技术的一种应用 什么是脱机技术 因为我们的手工操作阶段,主机之间 ...

  7. SPOOLing假脱机技术详细介绍

    技术目的 这就得先提到设备的分类了:设备分为独占式设备,共享使用设备和虚拟设备(即为以spooling使用的外部设备).独占设备申请后只有到被释放才能被其他进程申请使用,为了让独占设备能逻辑上像共享设 ...

  8. 操作系统实验(七):c实现SPOOLING假脱机技术

    1.[实验目的] 理解和掌握SPOOLING假脱机技术 2.[实验内容] 通过SPOOLING技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备,从而使其成为虚 ...

  9. I/O软件层次结构、I/O核心子系统以及假脱机技术(SPOOLing技术)

    一.I/O软件层次结构 (一)用户层软件 (二)设备独立性软件 主要实现的功能: ①.向上一层提供统一的接口. ②.设备的保护. 原理类似与文件保护.设备被看做是一种特殊的文件,不同用户对各个文件的访 ...

最新文章

  1. Python学习路程day18
  2. Windows系统回顾之Windows NT
  3. Python代码实现飞机大战(经典)
  4. CentOS下的freenx配置
  5. [html] 如何使用H5唤起原生地图APP(百度、高德、腾讯地图等)
  6. C/C++排序算法(4)快速排序
  7. 深度学习中激活函数的优缺点
  8. Android5.1--电源管理之省电模式分析
  9. 图画日记怎么画_小学生绘画日记
  10. vue的万年历(日历)组件
  11. laypage分页java例子_总结laypage.js分页插件用法
  12. eCos configtool 在ubuntu 10.10以后菜单消失的解决
  13. Vue 从零开始搭建PC端项目完整框架(附GitHub地址和Vue项目执行流程)
  14. 微信小程序(safair浏览器)flex布局中的坑
  15. 自然语言处理-中文分词相关算法(MM、RMM、BMM、HMM)
  16. 一图看懂,阿里云飞天企业版如何支持政企数智创新
  17. kitti数据集转换成可运行的YOLOv5格式
  18. 自动语音识别(ASR)研究综述
  19. redo日志的刷盘策略
  20. 献给大学生,未来程序猿的前端学习网站

热门文章

  1. 计算机f8键的功能,f8键有什么作用(图文)
  2. 面试题之——乐观锁和悲观锁区别
  3. seo引流怎么做?SEO引流方法有哪些?如何做好seo引流
  4. oracle11g更改SID-DBname
  5. 由浅入深读透vue源码:diff算法
  6. 人工智能换脸技术python_人工智能几行代码实现换脸,python+dlib实现图文教程
  7. 【算法】二分法多种情况详解
  8. OTFS白皮书-翻译
  9. solr7.4-DIH
  10. 【围观】CISP-PTE 考题示例