中断和异常

weblog 747 0 0

《操作系统》

中断机制的诞生

早期的计算机各程序只能串行执行,执行完这一个才能执行下一个,所以系统资源利用率低。

为了解决上述问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行本质:发生中断就意味着需要操作系统介入,开展管理工作。

中断的概念和作用

1.当中断发生时,CPU立即进入核心态

2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理

3.对于不同的中断信号,会进行不同的处理

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/o设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

用户态、核心态之间的切换是怎么实现的?

“用户态→核心态”是通过中断实现的。并且中断是唯一途径。

“核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”

中断的分类

Step 1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号

Step 2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSw、程序计数器PC、各种通用寄存器)

Step 3:根据中断信号类型转入相应的中断处理程序

Step 4:恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

外中断的处理过程

总结


猜你喜欢
java虚拟机(jvm) 4363 java捕获分析思考问题:调用下面的方法分别会返输出回什么?packagecom.itdragon.controller;importorg.junit.Test
java基础 2135 Java体系java体系继承图ThrowableThrowable类是所有的父类,见的子类有两个Error、Exception。ErrorError类就是程序运行时候抛出的最严重级别的
工具 1834 web项目判请求是否为ajax步请求importjavax.servlet.http.HttpServletRequest;publicclassAjaxUtil
spring/springmvc 2094 springmvc统一返回信息当服务器代码为: @RequestMapping("/res") publicMyAjaxResultres(@RequestParam(name
java基础 3484 StackOverflowErrorOutOfMemoryError。五、Java堆  对于Java应用程序来说,Java堆(JavaHeap)是虚拟机所管理的内存最大的一块。Java堆是被所有线程共享的一块内存区域,在
框架 2251 参数校验失败统一返回给前端信息参数校验如何使用参考:http://www.jiajiajia.club/blog/artical/yjw520/248校验需要的pom依赖
数据库基础 2524 sql用的数学函数
official 703 《深入理解java虚拟机》[TOC]一、运行时数据区域  Java虚拟机在执行Java程序的过程会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建销毁的时间,有的区域随
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。