中断:
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断可分为三类:
第一类是由CPU外部引起的,称作中断,如I/O中断、时钟中断、控制台中断等。
第二类是来自CPU的内部事件或程序执行中的事件引起的 过程,称作异常,如由于CPU本身故障(电源电压低于105V或频率在47~63Hz之外)、程序故障(非法操作码、地址越界、浮点溢出等)等引起的过程。
第三类由于在程序中使用了请求系统服务的系统调用而引发的过程,称作“陷入”(trap,或者陷阱)。前两类通常都称作中断,它们的产生往往是无意、
被动的,而陷入是有意和主动的。
第一类(中断)+第二类(异常)= 中断
第三类(系统调用)= 系统调用
补充:系统调用,由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
计算机系统将CPU执行状态分为管态和目态。
- 管态又称为特权状态、系统态或核心态。通常,操作系统在管态下运行。 掌管大权;
- 目态又叫做常态或用户态,用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。(另外调用访管指令(特权命令)也是会产生访管中断,交由操作系统执行)
状态转化:
从目态转换为管态的唯一途径是中断。(即当用户使用特权命令时,进行系统调用时)
从管态到目态可以通过修改程序状态字(psw字)来实现,这将伴随着由操作系统程序到用户程序的转换。