关于程序中断i/o方式的进一步认识
2017-11-28 15:58
344 查看
上一篇文章了解了操作系统下程序中断的分类和各个概念的区分以及核心态和用户态切换的大致执行过程,下面通过计组中的I/O方式中的程序中断对中断过程进一步进行硬件上的认识;
1、还是分类的问题,由计组课本来看,与操作系统分类差别并不大,都是从内中断外中断也即是中断源的角度进行分类,至于同步异步或者可屏蔽不可屏蔽这些就是额外的点缀;
2、中断的应用很广泛,I/O方面只是其中之一,还有上篇文章所介绍的操作系统上所认识的目态和管态的状态切换等等;考试的话主要以这两种应用为主,另外实现人机交互、实现多道程序切换等等都需要有一些了解;
3、还有很重要的一点就是中断优先级的区分,有时候选择题会有那么一道,需要牢记下面六点:硬件故障中断属于最高级,其次是软件中断,然后非屏蔽中断优于可屏蔽中断,DMA请求中断优于I/O设备传输的请求中断,高速设备优于低速设备,输入设备优于输出设备,实施设备优于普通设备;
4、(计组是从硬件的角度进行认识的,之所以说是硬件角度,是因为这里很多地方都用到了寄存器,可以与操作系统有所对比,但是也不能完全copy,否则会很混乱)类似的,要想执行中断,需要由用户态切换到核心态,这个时候:
1)首先起作用的就是中断隐指令,中断隐指令并不是指令系统中的一条真正的指令,他没有操作码,所以中断隐指令是一种不允许为用户所使用的特殊指令(这个跟访管指令还不一样,所以不能盲目类比);
2)中断隐指令它的主要功能是三点:关中断(保证执行期间不被打断)、保存断点(保证能够返回到原来程序处)、引出中断服务程序(类似于访管指令引出特定的特权指令);
3)还要认识一点,引出中断服务程序实质就是取出中断服务程序的入口地址并传送给程序计数器;(区分中断向量和中断向量地址)
5、上面其实类似于状态切换,下面才是真正的在核心态下的执行过程:
首先要区分两个概念:
1)进入中断服务程序之后首先要保存现场,一般是指程序状态字、中断屏蔽寄存器、CPU中某些寄存器的内容;
2)开中断(方便中断嵌套)
3)执行中断服务程序(即执行我们的作业或者说任务)
4)关中断(保证恢复现场前不被中断)
5)恢复现场和屏蔽字
6)开中断、中断返回(最后一条指令是一条中断返回指令,此时还在核心态)
*****************************************************
目前来看中断屏蔽技术(用于多重中断)在真题大题中还未出现过;
不过在王道八套卷第五套有一道大题是这个,可以参考
1、还是分类的问题,由计组课本来看,与操作系统分类差别并不大,都是从内中断外中断也即是中断源的角度进行分类,至于同步异步或者可屏蔽不可屏蔽这些就是额外的点缀;
2、中断的应用很广泛,I/O方面只是其中之一,还有上篇文章所介绍的操作系统上所认识的目态和管态的状态切换等等;考试的话主要以这两种应用为主,另外实现人机交互、实现多道程序切换等等都需要有一些了解;
3、还有很重要的一点就是中断优先级的区分,有时候选择题会有那么一道,需要牢记下面六点:硬件故障中断属于最高级,其次是软件中断,然后非屏蔽中断优于可屏蔽中断,DMA请求中断优于I/O设备传输的请求中断,高速设备优于低速设备,输入设备优于输出设备,实施设备优于普通设备;
4、(计组是从硬件的角度进行认识的,之所以说是硬件角度,是因为这里很多地方都用到了寄存器,可以与操作系统有所对比,但是也不能完全copy,否则会很混乱)类似的,要想执行中断,需要由用户态切换到核心态,这个时候:
1)首先起作用的就是中断隐指令,中断隐指令并不是指令系统中的一条真正的指令,他没有操作码,所以中断隐指令是一种不允许为用户所使用的特殊指令(这个跟访管指令还不一样,所以不能盲目类比);
2)中断隐指令它的主要功能是三点:关中断(保证执行期间不被打断)、保存断点(保证能够返回到原来程序处)、引出中断服务程序(类似于访管指令引出特定的特权指令);
3)还要认识一点,引出中断服务程序实质就是取出中断服务程序的入口地址并传送给程序计数器;(区分中断向量和中断向量地址)
5、上面其实类似于状态切换,下面才是真正的在核心态下的执行过程:
首先要区分两个概念:
保护断点:由系统自动完成,方便中断服务程序执行完后,可以返回到断点处继续运行。 保护现场:指的是进入中断服务程序或子程序后,由于寄存器有限,主程序和中断服务程序或子程序中用到相同的寄存器,所以为防止冲突,在中断服务程序前或在子程序前用进栈指令保护那些可能受到冲突的寄存器,然后在返回前恢复
1)进入中断服务程序之后首先要保存现场,一般是指程序状态字、中断屏蔽寄存器、CPU中某些寄存器的内容;
2)开中断(方便中断嵌套)
3)执行中断服务程序(即执行我们的作业或者说任务)
4)关中断(保证恢复现场前不被中断)
5)恢复现场和屏蔽字
6)开中断、中断返回(最后一条指令是一条中断返回指令,此时还在核心态)
*****************************************************
目前来看中断屏蔽技术(用于多重中断)在真题大题中还未出现过;
不过在王道八套卷第五套有一道大题是这个,可以参考
相关文章推荐
- 关于Unity程序在IOS和Android上显示内嵌网页的方式
- 关于两种错误处理方式(返回值,异常)的浅显认识
- cc2530裸机编程系列笔记2--定时器Timer1模模式程序(中断方式)
- 关于51单片机外部中断的触发方式
- 关于图片元素img的进一步认识
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第二版;接受部分可用,但是容易掉帧,采用的读取dm9000中断寄存器的方式获取数据
- 关于串口通讯查询与中断两种方式
- [Happy BASH] 关于BASH程序的输入方式小结
- ARM9 S3C2440按键中断方式点亮LED的汇编程序
- 关于中断和异常的几点认识
- 关于oracle 10g调度程序PLSQL_BLOCK方式无法使用truncate的问题
- 关于Chrome扩展程序开发 popup.html页面通过jsonp的方式与服务端交互问题
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- 关于uCOS-II进出临界区时使用开关中断方式的疑问
- UART通信程序-中断方式
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第三版;采用外部引脚中断方式获取中断,优化掉帧现象
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- 关于51单片机“外部中断触发方式”的经验总结
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案