OS(二十):设备管理之中断、驱动程序

发布时间 2023-08-23 17:33:35作者: 无虑的小猪

1、中断处理程序

  中断处理程序的主要工作:进程上下文的切换、对处理中断信号源进行测试,读取设备状态和修改进程状态。

  当一个进程请求I/O操作时,该进程将被挂起直到I/O设备完成I/O操作,设备控制器便向CPU发送一中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应处理,处理完后1结束相应进程的阻塞状态。

中断处理流程如下:

 0

1.1、唤醒被阻塞的驱动进程

  中断处理程序开始执行时,首先唤醒处于阻塞状态的驱动进程。若采用信号量机制,可执行signal操作;若采用信号机制,将发送一信号给阻塞进程。

1.2、保护被中断进程的CPU环境

  由硬件自动将处理机状态字PSW和程序技术器PC中的内存,保存在中断保留区(栈)中,然后把被中断进程的CPU现场信息都压入中断栈中。

中断现场保护示意图:

 0

1.3、转入相应的设备处理程序

  处理机对各个中断源进行测试,以确定引起本次中断的I/O设备,并发送一应答信号给发出中断请求的进程,使之消除该中断请求信号,然后将相应的设备中断处理程序的入口地址装入到程序计数器中,使处理机转向中断处理程序。

1.4、中断处理

  首先从设备控制器中读出设备状态,判别本次中断是正常完成的中断,还是异常结束的中断。

  正常完成的中断,中断程序进行结束处理,若还有命令,可再向控制器发送新的命令,进行新一轮的数据传送。

  异常结束的中断,根据发生异常的原因做相应的处理。

1.5、恢复被中断进程的现场

  当中断处理完成后,可将保存在中断栈中的被中断进程的现场信息取出,并装入到相应的寄存器中。

2、设备驱动程序

  设备驱动程序,也叫设备处理程序,是I/O进程与设备控制器之间的通信程序,由于它常以进程的形式存在,故以后简称为设备驱动程序。

  主要任务是接收上层软件发来的抽象I/O要求,如read或write命令,在把它转换为具体要求后,发送给设备控制器,启动设备区执行,它也将由设备控制器发来的信号传送给上层软件。

2.1、设备驱动程序功能

  接收命令和参数,并将命令中的出现要求转换为具体要求;

  检查I/O合法性;

  发出I/O命令;

  及时响应由控制器或通道发来的中断请求。

2.2、设备驱动程序特点

  驱动程序主要是指在请求I/O的进程和设备控制器之间的一个通信和转换程序;

  驱动程序与设备控制器和I/O设备的硬件特性紧密相关,不同类型的设备应配置不同的驱动程序;

  驱动程序与I/O设备所采用的I/O控制方式紧密相关;

  启动程序可重入。