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


    什么是脱机技术

    在这里插入图片描述

    在这里插入图片描述

    • 因为我们的手工操作阶段,主机之间从I/O设备获得数据,由于设备由人工操作,主机速度很快,但是人机速度很慢,主机会浪费很多时间来等待设备
    • 批处理阶段引入了脱机输入/输出技术
      • 在外围控制机的控制下,慢速输入设备的数据提前被输入到速度更快的磁带上,之后主句可以从快速的磁带读入数据
      • 我们从I/O设备将数据放入我们的高速磁带中,是不需要主机的控制,所以叫脱机

    假脱机技术——SPOOLing

    • 在脱机技术的基础上人们发明了更好的假脱机技术

    输入井和输出井

    在这里插入图片描述

    • 输入井和输出井在我们的磁盘上
    • 输入井模拟脱机输入时的磁带,用于收容I/O设备的输入的数据
    • 输出井模拟脱机输出时的磁带,用于收容用户进程输出的的数据

    输入进程与输出进程

    在这里插入图片描述

    • 输入进程模拟脱机输入时的外围控制机
    • 输出进程模拟脱机输出时的外围控制机
    • 所以要实现假脱机的基础是必要有多道程序技术的支持

    输入输出缓冲区

    在这里插入图片描述

    • 输入缓冲区和输出缓冲区是在内存中的
    • 在输入进程的控制下,输入缓冲区用于暂存从输入设备输入的数据,之后再转存到输出井中
    • 在输出进程的控制下,输出缓冲区用于暂存从输出井送来的数据,之后再传送到输出设备上

    共享打印机原理分析—假脱机技术的一种应用

    • 我们的打印机是一种输出设备

    在这里插入图片描述

    在这里插入图片描述

    • 在多个用户进程提出输出打印的请求的时候,系统会答应它们的请求,但是并不是把真正的打印机分配给它们,而是由假脱机管理进程为每个进程做两件事
      1. 在磁盘输出井中为进程申请应该空闲缓冲区(在磁盘上的),并将要打印的数据送入其中
      2. 为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户打印数据的存放位置等),在将该表挂到假脱机文件队列上
        • 当打印机空闲的时候,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印
  • 相关阅读:
    ROS入门
    树表——B树、B+树
    Double 4 VR智能互动系统在轨道交通实训教学中的应用
    K8S 实用工具之三 - 图形化 UI Lens
    二蛋赠书七期:《云原生数据中台:架构、方法论与实践》
    RK3399交叉编译问题
    spark内置数据类型
    C++,基础函数、string、引用型变量reference
    dpdk vhost user + vhost cuse
    Web服务器和PHP解释器
  • 原文地址:https://blog.csdn.net/qq_50985215/article/details/127741996