中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断流程图如下:
中断过程
按照事件发生的顺序,中断过程包括:
①中断源发出中断请求
②判断当前处理机是否允许中断和该中断源是否被屏蔽
③优先权排队
④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序
⑤执行中断服务程序
⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。
上述过程中前四项 *** 作是由硬件完成的,后两项是由软件完成的。
扩展资料
众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然降低内核效率。
既然硬件的响应这么慢,那么内核就应该在此期间处理其他事务,等到硬件真正完成了请求的 *** 作之后,再回过头来对它进行处理。想要实现这种功能,轮询(polling)可能会是一种解决办法。可以让内核定期对设备的状态进行查询,然后做出相应的处理。
不过这种方法很可能会让那个内核做不少无用功,因为无论硬件设备是正在忙碌着完成任务还是已经大功告成,轮询总会周期性的重复执行。更好的办法是由我们来提供一种机制,让硬件在需要的时候再向内核发出信号(变内核主动为硬件主动),这就是中断机制。
中断使得硬件得以与处理器进行通信。举个例子,在你敲打键盘的时候,键盘控制器(控制键盘的硬件设备)会发送一个中断,通知 *** 作系统有键按下。中断本质是一种特殊的电信号,由硬件设备发向处理器。
处理器接受到中断后,会马上向 *** 作系统反映此信号的到来,然后就由os负责处理这些新到来的数据。硬件设备生成中断的时候并不考虑与处理器的时钟同步——换句话说就是中断随时可以产生。因此,内核随时可能因为新到来的中断而被打断。
不同的设备对应的中断不同,而每个中断都通过一个惟一的数字标识。因此,来自键盘的中断就有别于来自硬盘的中断,从而使得 *** 作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样, *** 作系统才能给不同的中断提供不同的中断处理程序。
在它执行程序的时候,如果有另外的事件发生(比如用户又打开了一个程序)那么这时候就需要由计算机系统的中断机制来处理了。
中断机制包括硬件的中断装置和 *** 作系统的中断处理服务程序。
让硬件在需要的时候再向内核发出信号。
参考资料来源:百度百科-中断机制
参考资料来源:百度百科-中断
早期计算机各个程序只能串行执行、系统资源利用低。为了解决上述问题,人们就发明了 *** 作系统,引入了中断机制,实现了多道程序的并发执行,提高了系统资源的利用率。
中断是多程序并发执行的前提条件。
从上面过程可以看出:
中断的本质: 发生中断就意味着需要 *** 作系统介入,开展管理工作。
当发生了中断,就意味着需要 *** 作系统的介入,开展管理工作。由于 *** 作系统的管理工作( 如进程切换、分配IO设备)需要使用特权指令,因此CPU要从用户态转换为核心态。 中断就可以使CPU从用户态转换为核心态,使 *** 作系统获得计算机的控制权。因此,有了中断,才能实现多道程序并发执行。
用户态到核心态的转换就是通过中断机制实现的,并且中断是唯一途径。
核心态到用户态的切换时通过执行一个特权指令,将程序状态字(PSW)标志位设置为用户态。
中断可以分为:内中断和外中断。
内中断 :内中断的信号来源于CPU内部、与当前执行的指令有关。如整数除0。
外中断 :外中断的信号来源于CPU外部、与当前执行的指令无关。如用户强制结束一个进程、IO设备完成 *** 作发生的中断信号。
(1) 执行完每个指令后,CPU都要检查当前是否有外部中断信号。
(2) 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如 程序状态字PSW、程序计数器、各种通用寄存器 )。
(3) 根据中断信号类型转入相应的中断处理程序。
(4) 恢复进程的CPU环境并退出中断,返回原进程继续往下执行。
(1) 中断是为了实现多道程序并发执行而引入的一种技术。
(2) 中断的本质就是发生中断时需要 *** 作系统介入开展管理工作。
(3) 发生CPU会立即进入核心态,针对不同的中断信号,采取不同的处理方式。
(4) 中断是CPU从用户态进入核心态的唯一途径。
(5) 中断分为内中断和外中断。
(6) 进程中断时, *** 作系统会保存CPU的运行环境,如程序状态字(PSW)、程序计数器、各种通用寄存器,这是为了当进程再次运行时可以从中断的状态处继续运行。
本文完
如发现错误,请指正!!!
这种系统中断通常出现于win7和win10系统当中。从理论上来讲,这种多半是因为硬件或系统设置导致的不兼容所产生的系统中断。通常是由于在调用相关驱动程序或者硬件组合兼容性的过程当中引发的相关程序迭代过程中不连通导致的系统中断,这种通常需要更新相关的驱动或者是装载系统过程中针对于兼容性的调和。还有一种出现系统中断的可能性,是因为设置上面出现了一些矛盾导致的中断。常见于电源设置或者是电源计划过程当中关于休眠和相关组件休眠过程中设置起冲突。导致系统在执行这些计划和执行这些有矛盾的相关设置过程中,导致相互起冲突而导致系统中断。系统中断表现的最大的一个特点就是CPU。占用高。
解决这种情况只有通过两种方案,如果是硬件的问题,则需要通过三元排除法。就是保留三大件,其他组件全部拆除的方式逐步逐步排除看问题出现在哪一个部分。或者是通过计算机管理中的硬件管理,通过逐步禁用的方式将相关硬件逐一排除。当拆除到解决好系统终端的时候,便能够查出相关的问题。通常这样的一步计划和在实施的过程中需要耗费的时间比较长。
假如你已经排除了是硬件问题导致的系统中断,则意味着你需要去检查一下你软件是否有相悖论的相关设置。例如电源计划中的休眠和是否关闭电源和电源设置计划中的一些冲突点。可以通过电脑运行的日志产生错误的关键节点和一些警告来看得出。也需要通过一些时间节点去设置最常见的电源设置计划是6小时起冲突。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)