操作系统——第六章笔记(二)

3.中断机构和中断处理程序
中断在操作系统中有特殊而重要的地位,没有它就不可能实现多道程序。
中断是I/O系统最低的一层,也是设备管理的基础。
3.1中断简介
3.1.1中断和陷入
1)中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
2)陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。
3)中断和陷入的主要区别:是信号的来源。
3.1.2中断向量表
 中断向量表:为每种设备配以相应的中断处理程序,并把该程序的入口地址,放在中断向量表的一个表项中,并为每一个设备的中断请求,规定一个中断号,它直接对应于中断向量表的一个表项中。
3.1.3对多中断源的处理方式
1)屏蔽(禁止)中断:
 所有中断都将按顺序依次处理。
 当处理机正在处理一个中断时,将屏蔽掉所有新到的中断,让它们等待,直到处理机已完成本次中断的处理后,处理机再去检查并处理。
 优点是简单,但不能用于对实时性要求较高的中断请求。
2)嵌套中断:
 中断优先级:系统根据不同中断信号源,对服务要求的紧急程度的不同,它们分别规定不同的优先级。
 当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求;
 高优先级的中断请求,可以抢占正在运行低优先级中断的处理机,该方式类似于基于优先级的抢占式进程调度。
3.2中断处理程序
3.2.1主要工作
1)进行进程上下文的切换
2)对处理中断信号源进行测试
3)读取设备状态
4)修改进程状态
3.3.2中断处理流程
1)测定是否有未响应的中断信号
2)保护被中断进程的CPU环境
3)转入相应的设备处理程序
4)中断处理
5)恢复CPU的现场
4.设备驱动程序——最了解设备控制器的人
设备驱动程序是I/O系统的高层与设备控制器之间的通信程序,其主要任务:
 接收上层软件发来的抽象I/O要求,如read、write等命令;
 再把它转化为具体要求,发送给设备控制器,启动设备去执行。
 反方向,它也将由设备控制器发来的信号,传送给上层软件。
4.1驱动程序的功能
1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
4.2设备驱动程序的特点
1)驱动程序是与设备无关的软件和设备控制器之间通信和转换的程序。
2)驱动程序,与设备控制器和I/O设备的硬件特性,紧密相关。
3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。
4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
5)驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。
4.3设备处理方式
4.3.1具体分类
1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。这种方式比较适合于较大的系统;
2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作;
3)不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。这种方式目前用得较多。
4.4驱动程序处理过程
1)I/O设备与控制器间的通信转换程序
 了解抽象命令,了解控制器内部的寄存器结构
2)与硬件密切相关,每类设备配备一种驱动程序
 功能:接受解释指令(有通道的系统,自动通道程序)、相关判断、发送设备命令、响应中断
 特点,控制方式不同程序不同,部分固化进硬件,代码可重入。
4.5 I/O控制方式
4.5.1程序I/O方式
 cpu对I/O设备的控制采取程序I/O方式,或称忙—等待方式
 向控制器发送一条I/O指令;启动输入设备输入数据;把状态寄存器busy=1。
 然后不断测试标志。为1:表示输入机尚未输完一个字,CPU继续对该标志测试;直到为0:数据已输入控制器数据寄存器中。
 CPU取控制器中的数据送入内存单元,完成一个字的I/O 。
高速CPU空闲等待低速I/O设备,致使CPU极大浪费。
注:也称作程序查询方式或轮询方式。
4.5.2中断驱动I/O方式
1)步骤:
 CPU向相应的设备控制器发出一条I/O命令
 然后立即返回继续执行任务。
 设备控制器按照命令的要求去控制指定I/O设备。
 这时CPU与I/O设备并行操作。
 I/O设备输入数据中,无需CPU干预,因而可使CPU与I/O设备并行工作。从而提高了整个系统的资源利用率及吞吐量。
2)中断方式比程序I/O方式更有效。
3)但仍以字(节)为单位进行I/O,每当完成一个字(节),控制器便要请求一次中断。
4)CPU虽然可与I/O并行,但效率不高,存在频繁的中断干扰。
5)改进:
 CPU下指令通知控制器完成一块数据的I/O,控制器完成后才发中断,而不是每个字节都要向CPU发中断;
 多字节传输入内存过程不需要CPU搬运,由控制器控制完成(所以称直接存储器访问)——DMA(Direct Memory Access)控制方式引入
4.5.3直接存储器访问DMA(字节—块)
1)该方式的特点是:
 数据传输的基本单位是数据块;
 所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。
 CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
DMA方式成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
2)DMA控制器由三部分组成:
 主机与DMA控制器的接口;
 DMA控制器与块设备的接口;
 I/O控制逻辑。
在这里插入图片描述
3)DMA工作过程
 CPU先向磁盘控制器发送一条读命令。
 该命令被送到命令寄存器CR中。
 同时发送数据读入到内存的起始地址,该地址被送入MAR中;
 要读数据的字数则送入数据计数器DC中;
 将磁盘中的数据原地址直接送入DMA控制器的I/O控制逻辑上,按设备状态启动磁头到相应位置。
 启动DMA控制器控制逻辑开始进行数据传送
DMA控制器读入一个数据到数据寄存器DR中,然后传到内存MAR地址中;接着MAR+1,DC-1,判断DC是否为0,如否,继续,反之控制器发中断请求,传送完毕。
4.5.4 I/O通道控制方式(组织传送的独立)
1)DMA适用于读一个连续的数据块;
 如一次读多个数据块到内存不同区域,须由CPU分别发送多条I/O指令、进行多次DMA中断处理。
2)再进一步减少CPU的干预(减少中断), 引入通道。
 实现对一组数据块的读(写)及有关的控制和管理为单位的干预。
3)此时,CPU只需发一条I/O指令,给出通道程序的首地址及要访问设备即可。

  • CPU、通道和I/O设备三者的并行操作,提高整系统资源利用率。
    4)通道是一种通过执行通道程序管理I/O操作的控制器,它使主机(CPU和内存)与I/O操作之间达到更高的并行程度。由于它的任务是管理实现输入/输出操作,提供一种传送通道,所以将这种部件称作“通道”。
    5)通道程序:
     通道 通过执行通道程序,与设备控制器共同实现对I/O设备的控制。
     通道程序由一系列通道指令构成。
    CPU指令àà设备驱动程序解读à通道程序àà通道
     通道指令一般包含下列信息:
    a)操作码。规定指令所执行的操作。
    b)内存地址。
    c)计数。表示本指令所要操作的字节数。
    d)通道程序结束位。用以表示程序是否结束。
    e)记录结束标志。表示该指令是否与下条指令有关。
    4.5.5 宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。
    4.5.6 注意数据走向:设备(磁盘)–控制器缓冲—进程的内存

猜你喜欢

转载自blog.csdn.net/weixin_43271377/article/details/84494770