美文网首页
二、中断,异常,系统调用

二、中断,异常,系统调用

作者: Shaw007 | 来源:发表于2019-01-05 22:43 被阅读0次

    1、中断
    由于外设等原因导致的中断,系统将设置中断标记,将内部和外部事件设置中断标记,中断事件将会有相应的ID标记;软件方面将会保存当前处理状态,然后CPU将会根据中断ID跳到相应的中断服务程序处理,处理完将清楚中断标记,恢复之前保存的处理状态。

    中断是对应用程序透明的。

    负责中断请求的是连接外围设备的I/O控制器,负责实施中断处理程序的是CPU,为了进行,为了进行区分,外围设备的中断请求会使用不同于I/O端口的其他编号,该编号称为中断编号。


    中断设备.png

    在I/O控制器和CPU中有中断控制器的IC进行缓冲,可把从多个外围设备发出的中断请求有序地传递给CPU

    CPU接收到来自中断控制器的中断请求后,会把当前正在运行的主程序中断,并切换到中断处理程序。中断处理程序首先会将CPU所有寄存器中的数组保存到内存中的栈中,在中断处理程序完成外围设备的输入输出后,把栈中保存的数值还原到CPU寄存器中,再进行主程序的处理。

    中断请求处理顺序.png

    由于大部分的外围设备,都会频繁地发出中断请求,使用中断可以实时处理从外围设备输入的数据。例如实现键盘输入的文字实时显示在显示器,而对于打印机等输出用的外围设备中,可使用中断来通知外围设备接收数据的状态

    2、异常
    异常同样也会保存异常编号,保存现场,异常处理-将会杀死异常的程序,或者重新执行异常指令,处理完会恢复现场

    3、系统调用
    应用程序主要是通过高层次的API接口而不是直接进行系统调用,Win32 API用于Windows, POSIX API用于POSIX-based systems, 这些API定义了能提供哪些系统调用,完成哪些功能。应用程序通过访问API库进行系统调用,操作系统完成从用户态到内核态的转换,控制权从应用程序转换为操作系统,注意这里有堆栈的转换,开销较大。

    相关文章

      网友评论

          本文标题:二、中断,异常,系统调用

          本文链接:https://www.haomeiwen.com/subject/afcioftx.html