文章目录

  • 什么是脱机技术
  • 假脱机技术—―输入/输出缓冲区
  • 共享打印机的实现原理
  • 缓冲区的管理
  • 缓冲区的工作过程
    • 单缓冲
    • 双缓冲
    • 循环缓冲区
    • 缓冲池

什么是脱机技术

在传统的批处理操作系统中, 我们将输入数据统一写到磁带中, 又将输出数据统一写到磁带中, 这就是一种脱机技术

Tips:为什么称为“脱机”――脱离主机的控制进行的输入/输出操作。

假脱机技术—―输入/输出缓冲区

“假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。SPOOLing系统的组成如下

共享打印机的实现原理

独占式设备―一只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。共享设备――允许多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的使用请求。


当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,而是由假脱机管理进程为每个进程做两件事:

(1)在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
(2)为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上。

当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务


虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。

SPoOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。

缓冲区的管理

缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。

使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)

一般情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区

缓冲区的工作过程


CPU若是要写数据, 直接写入到内存缓冲区中, 缓冲区写完之后再使用I/O设备慢慢的读取数据, 提高CPU与I/O设备之间的并行性, 解决CPU与I/O设备速度不匹配问题, 降低中断的发生频率

单缓冲

假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。

注意:
当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;
当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

双缓冲

假设某用户进程请求某种块设备读入若干块的数据。若采用双缓冲的策略,操作系统会在主存中为其分配两个缓冲区

两台机器之间通信时,可以配置双缓冲区用于数据的发送和接受。

若两个相互通信的机器设置双缓冲区,则同一时刻可以实现双向的数据传输。
注:管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道

循环缓冲区

将多个大小相等的缓冲区链接成一个循环队列。
注:以下图示中,橙色表示已充满数据的缓冲区,绿色表示空缓冲区。

缓冲池

缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可以分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。

另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区(hout) 、用于提取输出数据的工作缓冲区(sout)

①输入进程请求输入数据

②计算进程想要取得一块输入数据


③计算进程想要将准备好的数据冲入缓冲区

④输出进程请求输出数据

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

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

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

  2. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节5:假脱机(SPOOLing)技术

    文章目录 一:脱机技术 二:假脱机技术(SPOOLing技术) (1)输入井和输出井 (2)输入缓冲区和输出缓冲区 (3)输入进程和输出进程 三:SPOOLing技术实例--共享打印机 一:脱机技术 ...

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

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

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

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

  5. 操作系统(SPOOLING技术)

    SPOOKING技术 一.实验目的 二.实验内容 三.实验准备 1.设计一个实现SPOOLING技术的进程 2.设计进程调度算法 3.进程状态 4.数据结构 5.编程说明 6.程序框图 四.实验要求 ...

  6. 操作系统实验--spooling技术

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

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

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

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

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

  9. 转 SPOOLING技术——操作系统

    传送门 SPOOLING技术--操作系统 SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计 ...

最新文章

  1. 10大NLP精选项目-涉及预训练Bert、知识图谱、智能问答、机器翻译、对话等
  2. 人工智能:看看BAT三巨头怎么说
  3. python stringstrip方法详解_Python 的技巧和方法你了解多少?
  4. 怎么用python处理excel文件-Python自动化如何处理excel文件数据
  5. Android中的Selector的用法
  6. 无法显示验证码去掉html,如何去除验证码-模版风格-易通免费企业网站系统 - Powered by CmsEasy...
  7. html图片多边形怎么写,使用CSS3构建的图像多边形裁剪动画特效
  8. python中如何调用类takes no arguments_关于python中的 take no arguments 的解决方法
  9. 蓝牙avrcp协议源码分析
  10. 阻塞io阻塞io_面试官:直接IO、缓存IO、阻塞与同步?
  11. tsql 和 clr 的性能实测比对
  12. Solidworks2022安装
  13. linux安装monaco字体
  14. 【Rust日报】 2019-04-28
  15. Zencart完美程序来了,首个Zencart模板引擎来了
  16. TI DSP TMS320C66x学习笔记之TI Imglib库相关函数(四)
  17. 【SEED Labs 2.0】ARP Cache Poisoning Attack Lab
  18. Android系统手机开机画面各个阶段代码执行流程分析(Part2)
  19. 「浏览器插件」无广告国内视频平台直接播放插件
  20. mac下编译hadoop3.0.*版本的native lib

热门文章

  1. adb 命令拉起 apk 并传递参数及相关注意事项
  2. angularjs 微信授权登录 微信支付
  3. ROS下使用串口发送数据
  4. pdf2htmlex安装及使用
  5. 取消Parallels Desktop与mac共享应用程序
  6. 基础学习之同义词【转】
  7. 制作自己的紫外线消毒盒
  8. 当你开始用 ChatGPT 时,我已经开始调教自己的 AI 机器人了!
  9. 树莓派内建驱动boot分区
  10. 便宜的国际长途电话与Localphone的Andr​​oid