两者之间有什么重大区别吗?是否可以在一个而不是另一个中完成任何事情?修改例如页面错误处理程序而不是计时器处理程序时,是否需要更加小心?
两者之间有什么重大区别吗?是否可以在一个而不是另一个中完成任何事情?修改例如页面错误处理程序而不是计时器处理程序时,是否需要更加小心?
中断是一种异步事件,通常由硬件(Ex,I / O)生成,不与处理器指令执行同步。异常是处理器在执行指令时检测到任何预定义条件时生成的同步事件。
中断处理程序可能被另一个中断处理程序等中断。中断处理程序可以推迟异常处理程序,但异常处理程序永远不会推迟中断处理程序。内核模式中唯一可能的例外是页面错误。
中断处理程序从不执行可能导致页面错误并因此可能进行调度的操作。如果它们引起页面错误,意味着它是一个错误。
在编写/修改中断处理程序时需要注意
中断和异常都会改变程序流程。该 区别 两者之间是中断用于处理 外部事件 (串口,键盘)和异常用于处理 指令 故障,(除以零,未定义的操作码)。
中断完成后由处理器处理 当前 指令。如果在其中断引脚上发现信号,则为 会抬头看 中断表中的中断处理程序的地址 并通过 常规控制。从中断返回后 处理器 例程,它将恢复程序执行 之后的指导 中断的指令。
另一方面,例外情况分为三种。 这些是 错误,陷阱和中止。检测并维修故障 通过 处理器之前的错误指令。陷阱是 服务后 导致陷阱的指令。用户定义的中断 进入这个 类别,可以说是陷阱;这包括MS- DOS INT 21h 例如,软件中断。中止仅用于 信号严重 系统问题,当不再可能运行时。