操作系统 第六章 2 中断 + 设备驱动程序

1、中断是I/O系统最低的一层,也是设备管理的基础。

2、中断和陷入 区分:

  •   中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
  •    陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断陷入(trap)。

  举例内中断:系统调用、缺页中断

   中断和陷入的主要区别:是信号的来源。

3、中断向量表:

 为每种设备配以相应的中断处理程序,并把该程序的入口地址,放在中断向量表的一个表项中,并为每一个设备的中断请求,规定一个中断号,它直接对应于中断向量表的一个表项中。

4、对多中断源的处理方式

①屏蔽(禁止)中断:所有中断都将按顺序依次处理

②嵌套中断:当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求;

5、.中断处理程序工作:

①进行进程上下文的切换 ②对处理中断信号源进行测试 ③读取设备状态 ④修改进程状态

6、中断处理:

  1. 测定是否有未响应的中断信号
  2. 保护被中断进程的CPU环境
  3. 转入相应的设备处理程序
  4. 中断处理
  5. 恢复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  通道指令

        操作码。

        内存地址。

        计数。

        通道程序结束位。

        记录结束标志。 

猜你喜欢

转载自blog.csdn.net/weixin_43214005/article/details/84427166