原理:

  1. 手工输入,没有操作系统的阶段,只能通过纸带机把程序员的代码读入,然后CPU需要直接与纸袋机交互,由于输入和输出的速度很慢,即使CPU的处理速度很快,但是在数据输入和输出的时候,CPU仍然是需要迁就纸带机的慢速。所以这个阶段暴露了速度不匹配的问题,对CPU这种昂贵的资源是极大的浪费

假脱机技术spooling技术 原理易懂!_数据

  1. 批处理阶段引入脱机技术(用磁带完成)
  2. 假脱机技术spooling技术 原理易懂!_控制机_02

  3. 程序员可以用纸带机将自己的程序输入到磁带当中,而磁带中的数据比纸带机快的多,而这个输入的过程是由一台专门的外围控制机实现的,而之后,CUP可以直接从磁带中读入想要的数据,因此就缓解了速度的矛盾,也就说引入了脱机技术后,在数据输入的时候数据就快了很多。大大提升了CPU的利用率

假脱机技术spooling技术 原理易懂!_数据_03

  1. 那为什么叫脱机呢?脱机实际上是脱离主机控制完成输入和输出的操作,而输入和输出是由外围控制机来实现的,显然输入和输出的过程就不需要CPU来干预控制,这样就可以让CPU有更多时间来完成其他工作。
  2. 引入脱机技术后,除了缓解IO设备和CPU的速度矛盾, 还有一个好处就是即使CPU正在忙碌,也可以在外围控制机的控制下先把数据预先输入到磁带中。
  3. 基于脱机技术的思想,人们又发明了假脱机技术,其实就是用软件的方式模拟实现
    组成部分

假脱机技术spooling技术 原理易懂!_控制机_04

  • 系统在磁盘开辟两个空间,一个输入井,一个输出井
  • 输入井是模拟脱机输入时的磁带,收容从输入设备输入的这些IO数据【磁带】
  • 输出井是模拟脱机输出时的磁带,收容用户进程输出的数据【磁带】
  • 外围控制机是由一个输入和输出进程实现的
  • 显然输入输出进程需要和用户进程并发执行,才能完成模拟脱机出入和输出的过程,因此spooling必须有多道程序技术的支持。
  • 输入和输出缓冲区的作用就是作为一个数据中转站