最近在学习操作系统的SPOOLing技术,这篇博客作为一个学习的记录吧,供大家和我将来参考。

SPOOLing系统的组成

(1)输入井和输出井:输入井和输出井的存储区域是在磁盘上开辟出来的。输入输出井中的数据一般以文件的形式组织管理,这些文件称之为井文件。一个文件仅存放某一个进程的输入(或输出)数据,所有进程的数据输入(或输出)文件链接成一个输入(输出)队列。
(2)输入缓存区和输出缓存区:输入缓冲区和输出缓冲区的存储区域是在内存中开辟出来的。主要用于缓和CPU和磁盘之间速度不匹配的矛盾。输入缓冲区用于暂存有输入设备传送的数据,之后再传送到输入井;输出缓冲区同理。
(3)输入进程和输出进程:输入进程也称为预输入进程,用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再放到输入井。当CPU需要的时候,直接从输入井将数据读入内存。输出过程同理。
(4)井管理程序:用于控制作业与磁盘井之间信息的交换。

以上的内容在西安电子科技大学出版社出版的汤小丹老师的操作系统教材中可以找到

SPOOLing技术的过程

在我学习SPOOLing系统过程中,不管是老师还是教材都以打印机的例子来讲述具体原理,但是我在不断地学习中觉得这个例子有时候不利于我们进一步理解它的机理,所以这里我要记录我的理解。
先把SPOOLing系统的工作原理图放上,来源也是操作系统教材

首先给出前提知识:

  1. 任何的I/O输入都需要经过CPU的处理之后才能上内存或上磁盘
  2. 多道程序技术是SPOOLing系统的前提

这里我把图中输入输出井左边那个内存叫做内存Ⅰ,把右边那个叫做内存Ⅱ(但实际上它们是一个内存)。具体的输入步骤是这样的:输入进程让输入设备给计算机输入数据,由于磁盘的输入速度和CPU的处理速度差距很大,所以内存Ⅰ的输入缓冲区1来解决两者之间速度不匹配的问题。I/O输入设备先将输入输入到缓冲区里,再由缓冲区将成块的数据输入到输入井里。注意:输入井是位于磁盘的缓冲区,用来暂存数据。此时,正在运行的作业发出输入请求,请求数据来进行下一步的运行,于是它会系统调用井管理程序,让它来调来数据。井管理程序会控制输入井,让输入井的数据先进入内存Ⅱ的输入缓冲区2,再由CPU将数据从输入缓冲区2中复制到运行作业(进程)的数据区中,进而作业可以继续运行。输出的过程和输入是相反的,但机制是一样的。

值得注意的是,脱机技术完成的就是CPU的计算和I/O的输入输出是并行的,从而可以提高CPU的效率,而假脱机技术是用软件的方式来模拟脱机技术的,模拟可行的原因就是多道程序技术,在一个时间段内,由于程序是可以并发运行的,所以输入进程和输出进程可以和运行的作业进程并发进行,那么CPU计算和I/O输入输出在宏观上就是并行的效果(其实是并发)。

以上是个人对SPOOLing技术的理解,如果有误,希望伙伴们批评指正。

参考文献:《操作系统》 汤小丹等著。西安电子科技大学出版社出版

SPOOLing技术的理解相关推荐

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

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

  2. SPOOLing技术的再思考

    SPOOLing技术的再思考 @(OS) 首先看什么是SPOOLing. Simultaneous Peripheral Operation On-Line 通过这个名称基本上就可以知道很多事情.外部 ...

  3. 操作系统(SPOOLING技术)

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

  4. spooling技术课程设计 linux环境,SPOOLING技术模拟实现 操作系统原理课程设计.doc

    SPOOLING技术模拟实现 操作系统原理课程设计 ******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2010年秋季学期 操作系 ...

  5. 实验四 模拟SPOOLING技术

    实验目的 通过设计一个SPOOLING假脱机输出的模拟程序,更好地理解和掌握SPOOLING假脱机技术.. 实验内容 1.设计一个实现SPOOLING技术的进程 设计一个SPOOLING输出进程和两个 ...

  6. 操作系统 | 实验七 SPOOLING技术

    文章目录 一.实验目的 二.实验内容 三.数据结构 3.1 数据结构 3.2 函数以及功能 四.程序流程图 五.实验代码 六.实验结果 七.实验体会总结 一.实验目的 理解和掌握SPOOLING假脱机 ...

  7. spooling技术课程设计 linux环境,《SPOOLING技术模拟实现 操作系统原理课程设计》.doc...

    <SPOOLING技术模拟实现 操作系统原理课程设计> ******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2010年 ...

  8. BlockChain:Python一步一步实现(流程最清楚)区块链底层技术流程图(理解一目了然,值得收藏)

    BlockChain:Python一步一步实现(流程最清楚)区块链底层技术流程图(理解一目了然,值得收藏) 导读 基于Python编程,实现一步一步实现(流程最清楚)区块链底层技术流程图,理解一目了然 ...

  9. 操作系统的SPOOLING技术

    SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假 ...

最新文章

  1. makefile与make
  2. linkedblockingqueue 后 take 不消化_消化不良的成因及护理
  3. CCIE-LAB-第五篇-DHCP+DHCP-Realy+DHCP snooping
  4. 详解Objective-C消息传递机制
  5. 基于linux的智能小车_商汤首款原创机器人SenseRover X自动驾驶小车斩获Red Dot Award...
  6. blog.mm index.php,每天一个WordPress文件:index.php
  7. IT 行业加班到底有没有价值?
  8. 关于元素水平垂直居中的那些事?
  9. 屏幕取色器,windows
  10. ps: 如何调出辅助线
  11. 如何用C语言实现批量修改文件类型
  12. 手动连接wifi失败分析
  13. OS学习笔记-20(清华大学慕课)死锁和进程通信
  14. css动画中文字慢慢显示,利用定时器和css3动画制作文字依次渐变显示的效果
  15. Linux运维养成记-服务器安全运维
  16. 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)
  17. 小波神经网络短期负荷分析,小波神经网络的缺点
  18. mit数据库 matlab,[zz]MIT-BIH开放数据库使用指南
  19. VS Code修改系统界面和编辑面板字体大小
  20. 百度地图AK鉴权说明与白名单设置方法

热门文章

  1. 内江求是职业技术学校的计算机,内江求是职业技术学校2020年春季招生简介
  2. 2022-03-24 RK3566 MIPI屏 调试记录,panel-init-sequence 命令格式介绍
  3. Jquery筛选hasclass()的方法
  4. arcpy泰森多边形法计算面雨量工具
  5. 米聊服务器的技术选型和架构设计
  6. 4.4基于经验的测试技术
  7. Hadoop大数据存算分离方案:计算层无缝对接存储系统
  8. html中完整表单控件,HTML表单和表单控件
  9. 委屈自己的常受委屈,会疼自己的才有人疼
  10. L2-028 秀恩爱分得快(异或+暴力)