导图社区 输入输出系统思维导图
计算机操作系统第六章输入输出系统,包含了缓冲区管理、设备驱动程序、中断机构和中断处理程序等内容,克收藏。
编辑于2021-07-03 16:15:12输入输出系统
I/O系统的功能,模型和接口
管理对象:I/O设备,设备控制器以及I/O通道 管理目标:完成用户提出的I/O请求,提高I/O速率和设备利用率 功能:设备分配与回收,设备处理,虚拟设备,设备独立性,缓存管理 I/O系统层次:(P180)
I/O设备和设备控制器
I/O设备类型
按使用特性分类
存储设备
I/O设备
按传输速率分类
高速设备(磁盘,DVD光驱)
中速设备(打印机,扫描仪)
低速设备(键盘,鼠标器)
设备控制器之间的接口
数据信号线
用于在设备和设备控制器之间传输信号
控制信号线
作为由设备控制器向I/O设备发送控制信号时的通路
状态信号线
用于传送指示设备当前状态的信号
设备控制器
设备控制器时计算机中的一个硬件实体,其主要功能时控制一个或者多个I/O设备,以实现I/O设备和计算机之间的数据交换。 在微型机小型机中的控制器,常做成印刷电路卡形式,称为接口卡。 例如:声卡,显卡,网卡
设备控制器的基本功能
设备控制器的组成
I/O通道
I/O通道是控制输入输出过程的处理机 在大中型计算机中使用 连接和控制不同的外围设备包括字符设备和块设备 具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作
中断机构和中断处理程序
中断简介
中断和陷入
中断(Interrupt):是指CPU对I/O设备发来的中断信号的一种响应(中断信号来自CPU外部)。CPU暂停正在执行的程序,保留CPU环境后,自动地转去执行该I/O设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。 陷入(Trap):由CPU内部事件所引起的中断,例如进程在运算中发生了上溢或下溢,又如程序出错,如非法指令、地址越界,以及电源故障等。通常把这类中断称为内中断或陷入。
中断处理程序
设备驱动程序
设备驱动程序概述
(P192)
设备驱动程序的功能
设备驱动程序的特点
设备处理方式
设备驱动程序的处理过程
对I/O设备的控制方式
I/O分类
I/O控制方式的发展宗旨: 尽量减少主机对I/O控制的干预,把主机从繁杂的I/O事务中解脱出来,以便更多地完成数据传输任务
使用轮询的可编程I/O方式
用于早期的计算机 cpu对于I/O干预的方式为:全程干预 cpu的高速性和I/O设备的低速性,造成cpu资源的极大浪费
使用中断的可编程I/O方式
以字(节)为单位 cpu对于 I/O设备的干预是以字(节)为单位,这种方式对于块设备数据传输效率很低
直接存储器方式(DMA)
DMA技术:可以在存储器与输入输出设备间传输数据 设备控制:DMA控制器 DMA方式下,cpu对于I/O的干预是以数据块为单位的。 问题: cpu每发出一条I/O指令,只能读写一个数据块,不能处理复杂的数据传输任务
I/O通道方式
I/O通道是独立于cpu专门负责数据输入/输出传输工作的处理机 通道可以执行通道程序,完成复杂的数据传输任务 功能单一,与cpu共享内存 I/O通道方式下,cpu对于I/O干预是以一组数据块为单位进行的
与设备无关的I/O软件
与设备无关软件的基本概念
设备独立性(设备无关性),即应用程序独立作用与具体使用的物理设备。 为实现设备独立性,必须再在设备驱动程序上设置一层软件,称为与设备无关的I/O软件,或者设备独立性软件 为实现从逻辑设备名称和物理设备名称之间的映射,系统配置了一张逻辑设备表
逻辑设备
物理设备
与设备无关的软件
设备分配
分配对象:设备,设备控制器和通道 数据传输通路
设备分配中的数据结构
设备控制表(DCT)
系统为每个设备设置了一张用于记录本设备状态的DCT
设备控制器表(COCT)
系统为每一个控制器都设置了用于记录控制器情况的控制器控制表
通道表(CHCT)
系统为每一个控制器都设置了用于记录控制器情况的控制器控制表
系统设备表(SDT)
系统设备表是系统范围的数据结构,记录了系统中全部设备的情况,每个设备占一个表目
设备分配过程

用户层的I/O软件
系统调用与库函数
系统调用是OS内核为应用程序提供的服务例程 
假脱机(Spooling)系统
假脱机技术
SPOOLing技术:又称为假脱机技术,是一种虚拟设备技术 通过假脱机技术,可将一台物理I/O设备虚拟为多台逻辑I/O设备,这样允许多个用户共享一台物理I/O设备 当系统引入了多道程序技术后,利用一道程序来模拟脱机输入时的外围控制机功能,把低速1/0设备上的数据传送到高速磁盘上。 另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。 此时外围操作与CPU对数据的处理是同时进行的。 我们把这种在联机情况下实现的同时外围操作的技术称为SPOOLing(Simultaneous Peripheral Operation On-Line)技术,或称为假脱机技术。 
SPOOLing的组成
输入井和输出井
这是在磁盘上开辟出来的两个存储区域。 输入井模拟脱机输入时的磁盘,用于存放I/O设备输入的数据。 输出井模拟脱机输出时的磁盘,用于存放用户程序的输出数据。 输入腧出井中的数据一般以文件的形式组织管理,我们把这些文件称为井文件。
输入缓冲区和输出缓冲区
这是在内存中开辟的两个缓冲区,用于缓和I/O设备和磁盘之间速度不匹配的矛盾。 输入缓冲区用于暂存由输入设备传送的数据,之后再传送到输入井。 输出缓冲区用于暂存从输出井传送的数据,之后再传送到输出设备。
输入进程和输出进程
输入进程用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入井。 当CPU需要输入设备时,直接从输入井读入内存。 输出进程用于模拟脱机输出时的外围控制机,把用户要求输入的数据从内存传送并存放到输出井。 待输出设备空闲时,再将输出井中的数据经过输出缓冲区输出至输出设备上。
井管理程序
用于控制作业与磁盘井之间信息交换。
SPOOLing的特点
1.提高了I/O的速度。缓解了外部设备和CPU速度不匹配的矛盾。 2. 将独占设备改造为共享设备。 3. 实现了虚拟设备功能。
假脱机打印机系统
磁盘缓冲区
它是在磁盘上开辟的一个存储空间(输出井),用于暂存用户程序的输出数据,在该缓冲区中可以设置几个盘块队列,如空盘块队列、满盘块队列等。
打印缓冲区
用于缓和CPU和磁盘之间速度不匹配的矛盾,设置在内存中,暂存从磁盘缓冲区送来的数据,以后再传送给打印设备进行打印。
假脱机管理进程和假脱机打印进程
由假脱机管理进程为每个要求打印的用户数据建立一个假脱机文件,并把它放入假脱机文件队列中,由假脱机打印进程依次对队列中的文件进行打印。
缓冲区管理
缓冲的引入
引入缓冲的原因