操作系统~假脱机SPOOLing技术与缓冲区管理
文章目录
- 什么是脱机技术
- 假脱机技术—―输入/输出缓冲区
- 共享打印机的实现原理
- 缓冲区的管理
- 缓冲区的工作过程
- 单缓冲
- 双缓冲
- 循环缓冲区
- 缓冲池
什么是脱机技术
在传统的批处理操作系统中, 我们将输入数据统一写到磁带中, 又将输出数据统一写到磁带中, 这就是一种脱机技术
Tips:为什么称为“脱机”――脱离主机的控制进行的输入/输出操作。
假脱机技术—―输入/输出缓冲区
“假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。SPOOLing系统的组成如下
共享打印机的实现原理
独占式设备―一只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。共享设备――允许多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的使用请求。
当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,而是由假脱机管理进程为每个进程做两件事:
(1)在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
(2)为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上。
当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务
虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。
SPoOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。
缓冲区的管理
缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。
使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)
一般情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区
缓冲区的工作过程
CPU若是要写数据, 直接写入到内存缓冲区中, 缓冲区写完之后再使用I/O设备慢慢的读取数据, 提高CPU与I/O设备之间的并行性, 解决CPU与I/O设备速度不匹配问题, 降低中断的发生频率
单缓冲
假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。
注意:
当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;
当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。
双缓冲
假设某用户进程请求某种块设备读入若干块的数据。若采用双缓冲的策略,操作系统会在主存中为其分配两个缓冲区
两台机器之间通信时,可以配置双缓冲区用于数据的发送和接受。
若两个相互通信的机器设置双缓冲区,则同一时刻可以实现双向的数据传输。
注:管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道
循环缓冲区
将多个大小相等的缓冲区链接成一个循环队列。
注:以下图示中,橙色表示已充满数据的缓冲区,绿色表示空缓冲区。
缓冲池
缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可以分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。
另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区(hout) 、用于提取输出数据的工作缓冲区(sout)
①输入进程请求输入数据
②计算进程想要取得一块输入数据
③计算进程想要将准备好的数据冲入缓冲区
④输出进程请求输出数据
操作系统~假脱机SPOOLing技术与缓冲区管理相关推荐
- 操作系统-设备管理-spooling技术
操作系统-设备管理-spooling技术 思考题:A,B,C,D共用一台打印机x,要进行资料打印时,很容易出现"打印机正在使用!",如何处理该问题? 我们在使用打印机的时候,可能会 ...
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节5:假脱机(SPOOLing)技术
文章目录 一:脱机技术 二:假脱机技术(SPOOLing技术) (1)输入井和输出井 (2)输入缓冲区和输出缓冲区 (3)输入进程和输出进程 三:SPOOLing技术实例--共享打印机 一:脱机技术 ...
- 【操作系统】SPOOLing技术(外部设备联机并行操作/假脱机技术)
SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备(生活中最常见的就是多台电脑共享同一个打印机) 目的:为了缓和CPU的高速性与I/O设备低速 ...
- 操作系统:SPOOLing技术(假脱机技术)
一.什么是脱机技术? 批处理阶段引入了脱机输入/输出技术(用磁带完成) 流程如下: 人--> 纸带机--> 外围控制机-->磁带机-->主机-->磁带机-->外围控 ...
- 操作系统(SPOOLING技术)
SPOOKING技术 一.实验目的 二.实验内容 三.实验准备 1.设计一个实现SPOOLING技术的进程 2.设计进程调度算法 3.进程状态 4.数据结构 5.编程说明 6.程序框图 四.实验要求 ...
- 操作系统实验--spooling技术
实验四 假脱机技术 一.目的和要求 1.目的 假脱机(SPOOLING)技术是广泛应用于各种计算机系统的一种行之有效的输入输出手段.这种技术使用比较简单的方法,缓和了高速处理机与低速输入输出设备速度不 ...
- 操作系统之I/O管理:2、SPOOLing技术(假脱机技术)
2.SPOOLing技术 思维导图 脱机技术 假脱机技术(SPOOLing技术) 用假脱机技术实现共享打印机 思维导图 脱机技术 1.在早期的批处理系统中,输入输出经历了这样的过程:纸带----磁带- ...
- I/O软件层次结构、I/O核心子系统以及假脱机技术(SPOOLing技术)
一.I/O软件层次结构 (一)用户层软件 (二)设备独立性软件 主要实现的功能: ①.向上一层提供统一的接口. ②.设备的保护. 原理类似与文件保护.设备被看做是一种特殊的文件,不同用户对各个文件的访 ...
- 转 SPOOLING技术——操作系统
传送门 SPOOLING技术--操作系统 SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计 ...
最新文章
- 10大NLP精选项目-涉及预训练Bert、知识图谱、智能问答、机器翻译、对话等
- 人工智能:看看BAT三巨头怎么说
- python stringstrip方法详解_Python 的技巧和方法你了解多少?
- 怎么用python处理excel文件-Python自动化如何处理excel文件数据
- Android中的Selector的用法
- 无法显示验证码去掉html,如何去除验证码-模版风格-易通免费企业网站系统 - Powered by CmsEasy...
- html图片多边形怎么写,使用CSS3构建的图像多边形裁剪动画特效
- python中如何调用类takes no arguments_关于python中的 take no arguments 的解决方法
- 蓝牙avrcp协议源码分析
- 阻塞io阻塞io_面试官:直接IO、缓存IO、阻塞与同步?
- tsql 和 clr 的性能实测比对
- Solidworks2022安装
- linux安装monaco字体
- 【Rust日报】 2019-04-28
- Zencart完美程序来了,首个Zencart模板引擎来了
- TI DSP TMS320C66x学习笔记之TI Imglib库相关函数(四)
- 【SEED Labs 2.0】ARP Cache Poisoning Attack Lab
- Android系统手机开机画面各个阶段代码执行流程分析(Part2)
- 「浏览器插件」无广告国内视频平台直接播放插件
- mac下编译hadoop3.0.*版本的native lib