中断与异常

通常CPU执行的指令有两种,分别是操作系统内核程序和用户自编程序。因此操作系统将CPU的状态划分为两种,分为用户态(目态)和核心态(又称管态,内核态)。在这两种状态下分别运行非特权指令和特权指令。
在操作系统引入核心态和用户态这两种工作状态之后,就需要考虑两种状态的切换。操作系统不允许用户程序工作在核心态,但用户程序又需要某些核心态的功能,因此在操作系统中需要某些方法实现从用户态进入核心态,这种方法就是中断和异常。当发生中断和异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的,比如用某个特殊寄存器的某一位表示CPU工作状态,0表示核心态,1表示用户态。


  • 中断

中断也成为外中断,指来自CPU执行指令以外的时间发生,如I/O中断,时钟中断等。这一类中断通常与当前运行程序无关。

  • 异常

异常也成为内中断,指源于CPU执行指令内部的事件,如程序的非法操作码,地址越界等,对异常的处理一般依赖于当前程序的运行现场,且异常不能被屏蔽,一旦出现需要立即处理。


  • 系统调用

系统调用指用户在程序中调用操作系统提供的一些子功能,这些系统调用一般包括设备管理,文件管理,进程控制,进程通信,内存管理。系统调用的功能设计系统资源和进程管理等操作,需要某些特权指令才能完成。

用户可以执行陷入指令(访管指令)发起系统调用,请求操作系统提供服务。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容