• IO软件层次结构与假脱机技术


    IO软件层次结构

    用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件

    在这里插入图片描述

    • 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进行操作。

    • 用户层软件将用户请求翻译成格式化的IO请求,并通过系统调用请求操作系统内核的服务。

    • 设备独立性软件又称为设备无关性软件。他向用户软件层提供系统调用接口,设备的保护,差错处理,设备的分配与回收,数据缓冲区管理,建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。(调用相应的驱动程序时需要一个逻辑设备表LUT,这张表中有逻辑设备名,物理设备名,驱动程序入口的地址等属性。)

    一般来讲,驱动设备是以一个独立的进程存在。

    • 设备驱动程序是厂家提供给计算机的。不同设备的驱动基本大不相同,设备驱动程序主要负责对硬件设备的具体控制,将上层发出的一些列命令(读写)转化为特定的设备能听懂的语言,例如设置设备寄存器;检查设备处于的状态。

    • 当IO任务完成后,IO控制器会发送一个中断信号,系统会根据中断信号来找到对应的中断处理程序并执行。中断处理程序的处理流程如下。

    • 从控制器读出IO设备的状态,判断一下IO是否正常结束,如果正常结束会从设备中读入一个字的数据并经由CPU放在内存缓冲区中,否则根据异常原因调用响应处理程序。

    硬件是最后执行IO操作,有机械部件和电子部件组成。

    其中IO核心执行同指的是设备独立性软件,设备驱动程序,中断处理,假脱机技术是在用户软件层实现的

    假脱机技术

    脱机就是脱离主机的控制然后进行输入和输出。

    在早期批处理阶段引入了脱机输入和输出技术(用磁带完成)
    早期的计算机输入是靠在只带上打孔实现的,因为计算机只认识二进制,根据纸带上孔的分布来向计算机输入和输出数据,但是这样做的效率太慢,大大浪费了CPU的处理时间,因为处理纸带的时间比实际计算机计算的时间长了很多。这时引入脱机技术,在纸带和计算机之间多加了一个外围控制机,在外围控制机的控制下,慢速的输入设备仙贝送到快速的磁带上,然后计算机再从磁带上取数据,这样两者之间的速度之差就减少了许多。

    假脱机技术–输入井和输出井

    “假脱机技术”又称为“SpooLing技术”使用软件的方式模拟脱机脱机技术。SpooLing系统的组成如下:

    在这里插入图片描述

    输入井用来模拟脱机输入时的磁带,用于收容IO设备输入的数据。
    输出井用来模拟脱机输出的磁带,用于收容IO设备输出的数据。

    输入进程和输出进程

    输入进程模拟脱机时的控制机,输出进程模拟脱机输出时的外围控制机。

    在这里插入图片描述

    输入/输出缓冲区

    输入缓冲区用于暂存从输入设备输入的数据,之后再转存到输入井中
    输出缓冲区用于暂存从输出井输出的数据,之后发送到输出设备上

    在这里插入图片描述

    SpooLing技术可以将独占式的物理机虚拟成共享的设备

  • 相关阅读:
    easyui combobox 的取值问题
    关于Java中集合的讲解~
    面试中经常会被问到的70个问题
    80端口被NT kernel & System 占用pid 4
    java中try{}catch{}和finally{}的执行顺序问题
    Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)
    String,StringBuffer和StringBuilder三者的讲解
    String是基本的数据类型吗?
    jdk中那些常见的类不能被继承的
    关于java中getClass()和getSuperClass()的讲解
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181399.html
Copyright © 2020-2023  润新知