中断的类型有哪些?
中断是来自连接到计算机的设备或计算机内程序的信号,它要求操作系统停止并确定下一步该做什么。
中断系统是这样的:当CPU可以处理程序时,如果CPU需要任何IO操作,则将其发送到队列,并进行CPU处理。稍后,输入/输出(I/O)操作准备就绪。
I/O设备中断可用的数据并执行剩余的处理;中断就是这样有用的。如果没有中断,CPU需要空闲一段时间,直到IO操作完成。因此,为了避免CPU等待时间,引入了中断。
处理器处理中断
每当发生中断时,它都会导致CPU停止执行当前程序。然后,控制权转移到中断处理程序或中断服务例程。
以下是ISR处理中断的步骤:
步骤1 - 当发生中断时,假设处理器正在执行第i条指令,程序计数器将指向下一条指令(i+1)。
步骤2 - 当发生中断时,程序值存储在进程堆栈上,程序计数器加载中断服务例程的地址。
步骤3 - 中断服务例程完成后,进程堆栈上的地址被弹出并放回程序计数器。
步骤4 - 现在它执行第(i+1)行的恢复。
中断类型
中断主要分为以下两种类型:
硬件中断
外部设备和I/O设备产生的中断信号,在指令准备就绪时向CPU发出中断。
例如 - 在键盘上,如果我们按下某个键来执行某些操作,则按键会产生一个信号,该信号被发送到处理器以执行操作,此类中断称为硬件中断。
硬件中断分为以下两种类型:
可屏蔽中断 - 当处理器发生最高优先级中断时,可以延迟的硬件中断。
不可屏蔽中断 - 不能被延迟并立即由处理器服务的硬件中断。
软件中断
内部设备和软件程序产生的中断信号需要访问任何系统调用,然后就会出现软件中断。
软件中断分为两种类型:
普通中断 - 由软件指令引起的中断称为软件中断。
异常 - 异常是在执行程序时发生的意外中断。例如 - 在执行程序时,如果我们得到一个被零除的值,则称为异常。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP