1、中断是I/O系统最低的一层,也是设备管理的基础。
2、中断和陷入 区分:
- 中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
- 陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。
举例内中断:系统调用、缺页中断
中断和陷入的主要区别:是信号的来源。
3、中断向量表:
为每种设备配以相应的中断处理程序,并把该程序的入口地址,放在中断向量表的一个表项中,并为每一个设备的中断请求,规定一个中断号,它直接对应于中断向量表的一个表项中。
4、对多中断源的处理方式
①屏蔽(禁止)中断:所有中断都将按顺序依次处理
②嵌套中断:当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求;
5、.中断处理程序工作:
①进行进程上下文的切换 ②对处理中断信号源进行测试 ③读取设备状态 ④修改进程状态
6、中断处理:
- 测定是否有未响应的中断信号
- 保护被中断进程的CPU环境
- 转入相应的设备处理程序
- 中断处理
- 恢复CPU的现场
设备驱动程序:
1、工作:
接收上层软件发来的抽象I/O要求,如read、write等命令;
再把它转化为具体要求,发送给设备控制器,启动设备去执行。
反方向,它也将由设备控制器发来的信号,传送给上层软件。
2、驱动程序功能:
(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
3、设备驱动程序的特点:
(1)驱动程序是 与设备无关的软件和设备控制器之间通信和转换的程序。
(2)驱动程序,与设备控制器和I/O设备的硬件特性,紧密相关。
(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。
(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
(5)驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。
4、 I/O控制方式:
1)程序I/O方式 (程序查询方式或轮询方式) 字(节)为单位进行I/O:
cpu对I/O设备的控制采取程序I/O方式,或称忙—等待方式。
2)中断驱动I/O方式:字(节)为单位进行I/O
CPU向相应的设备控制器发出一条I/O命令
然后立即返回继续执行任务。
设备控制器按照命令的要求去控制指定I/O设备。
这时CPU与I/O设备并行操作。
I/O设备输入数据中,无需CPU干预,因而可使CPU与I/O设备并行工作。从而提高了整个系统的资源利用率及吞吐量。
3)直接存储器访问DMA (数据传输的基本单位是 数据块):
所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作
4.3.1 DMA控制器的组成:
主机与DMA控制器的接口;
DMA控制器与块设备的接口;
I/O控制逻辑
4.3.2 DMA控制器中的寄存器 (为实现主机与控制器之间块数据的直接交换)
数据寄存器DR
内存地址寄存器MAR
数据计数器DC
命令/状态寄存器CR
4.3.3
4)I/O通道控制方式(组织传送的独立)
4.4.1
一次读多个数据块到内存不同区域,须由CPU分别发送多条I/O指令、进行多次DMA中断处理
通道 通过执行通道程序,与设备控制器共同实现对I/O设备的控制。
通道程序由一系列通道指令构成
CPU指令-》设备驱动程序解读-》通道程序-》通道
4.4.2 通道指令
操作码。
内存地址。
计数。
通道程序结束位。
记录结束标志。