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

IO软件层次结构

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

在这里插入图片描述

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

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

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

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

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

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

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

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

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

假脱机技术

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

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

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

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

在这里插入图片描述

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

输入进程和输出进程

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

在这里插入图片描述

输入/输出缓冲区

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

在这里插入图片描述

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

原文地址:https://www.cnblogs.com/itjiangpo/p/14181399.html