一、I/O系统的功能、模型和接口
1、基本任务:
1)完成用户提出的I/O请求,
2)提高I/O速率、改善I/O设备的利用率。
3)为更高层进程方便使用设备提供手段
2、主要功能:
1)隐藏物理设备细节,方便用户
用户使用抽象的I/O命令即可
2)实现设备无关性,方便用户
用户可用抽象的逻辑设备名来使用设备,同时也提高了OS的可移植性和易适应性。
3)提高处理机和设备的并行性,提高利用率:缓冲区管理
4)对I/O设备进行控制:控制方式、设备分配、设备处理
5)确保对设备正确共享:虚拟设备及设备独立性等
6)错误处理
3、I/O软件的分层
二、I/O设备和设备控制器
1、I/O系统的组成
1)需要用于输入、输出和存储信息的设备;
2)需要相应的设备控制器;
3)控制器与CPU连接的高速总线;
4)有的大中型计算机系统,配置I/O通道;
2、
3、I/O设备中的接口
1)数据信号线(进出数据转换、缓冲后传送)
2)控制信号线(读\写\移动磁头等控制)
3)状态信号线
4、I/O逻辑
¨将启动命令发送给控制器;
¨同时通过地址线把地址发送给控制器
¨控制器的I/O逻辑对收到的地址和命令进行译码,再根据所译出的命令选择设备进行控制。
5、处理机与设备控制器间
¨数据线:数据线通常与两类寄存器相连接,第一类是数据寄存器;第二类是控制/状态寄存器。
¨地址线
¨控制线
6、I/O通道
1)字节多路通道
2)数组选择通道
3)数组多路通道
三、中断机构和中断处理程序
1、中断和陷入
¨中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
¨陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。
¨中断和陷入的主要区别:是信号的来源。
2、对多中断源的处理方式
1)屏蔽中断
2)嵌套中断
3、中断处理程序主要工作
¨①进行进程上下文的切换
¨②对处理中断信号源进行测试
¨③读取设备状态
¨④修改进程状态
4、中断处理流程
¨测定是否有未响应的中断信号
¨保护被中断进程的CPU环境
¨转入相应的设备处理程序
¨中断处理
¨恢复CPU的现场
四、设备驱动程序
1、驱动程序的功能
(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
2、特点
(1)驱动程序是与设备无关的软件和设备控制器之间通信和转换的程序。
(2)驱动程序,与设备控制器和I/O设备的硬件特性,紧密相关。
(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。
(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
(5)驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。
3、设备处理方式
¨(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。这种方式比较适合于较大的系统;
¨(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作;
¨(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。这种方式目前用得较多。
4、I/O控制方式
程序I/O方式
中断驱动I/O方式
直接存储器访问DMA(字节—块)
I/O通道控制方式(组织传送的独立)
宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。
5、DMA控制器的组成
1.主机与DMA控制器的接口;
2.DMA控制器与块设备的接口;
3.I/O控制逻辑。
6、DMA工作方式流程图
五、与设备无关的I/O软件
1、设备分配中的数据结构
¨设备控制表
¨控制器控制表
¨通道控制表
¨系统设备(总)表
2、独占设备的分配过程
1)分配设备
2)分配控制器
3)分配通道