我想知道程序在执行过程中如何看到和使用中断。我已经读过关于中断的级别,边沿,混合和消息类型的信息,并且设备发送脉冲来指示中断,但程序如何看到中断?或者程序中可以看到中断? 感谢您的任何帮助程序执行和中断
程序执行和中断
回答
一般来说,中断的发生会导致处理器停止正在做的事情,记住它停止的地方并转到一段特定的代码,该代码会以某种方式反应它。无论处理器此刻还在做什么,硬件都会一直检查中断。所以它转到了一段特殊的代码,即所谓的interrupt handler,并在完成后返回到之前的操作。被中断的程序没有注意到任何事情。
中断处理程序所在的地址取决于处理器体系结构和中断类型。有时它需要位于内存中的固定点,其地址在处理器的数据表中给出。通常在内存的固定地址有一个称为intrrupt vector table的特殊数组,它存储处理不同类型中断的过程的地址。
在PC或任何其他稍微高级的电子设备上,中断处理程序和中断向量表是操作系统的一部分。除非您正在编写操作系统或编写嵌入式设备,否则您根本不需要受到中断的困扰。
处理器如何查看中断? – MNM
硬件。需要中断处理器的外设将直接或间接地将处理器芯片上的引脚拉低,从而触发处理器进入其中断确认总线协议。中断确认协议是依赖于设备的。例如,它可能要求中断外设发送一个中断号码,该中断号码可被转换为向量地址,以便为中断外设调用正确的处理程序。许多处理器系列还具有内部中断源,例如。内存管理器硬件,内核间通信。 –
取决于操作系统,如果有的话。在我们最熟悉的通用'桌面'操作系统上,用户模式程序不需要直接处理硬件中断。驱动程序处理来自诸如键盘,鼠标,磁盘,NIC等外围设备的中断。通常,'程序'中的线程发出读/写请求的API调用,并且调用在请求完成之前不会返回 - 这是程序到达硬件最近的地方。在内核中,调用线程被阻塞,直到寻址的驱动程序发出所请求的I/O已完成的信号。
- 1. 如何中断执行程序线程
- 2. 执行程序并杀死它时的信号和中断
- 3. 中断vs中断执行
- 4. 中断处理程序在不同的线程中执行?
- 5. java thead池执行程序如何处理中断线程
- 6. MSTest:断言线程执行
- 7. 程序执行和GUI
- 8. 如何在pic18中执行中断服务程序
- 9. Linq - 中断执行存储过程
- 10. 执行多次中断的Java线程
- 11. 可以中断JavaScript执行流程吗?
- 12. 添加线程中断执行run()
- 13. 另一个程序/进程如何中断我的程序执行?
- 14. 中断和调度程序
- 15. 中断执行器和更多
- 16. Django的`auth`和`contenttypes`中断执行syncdb
- 17. 从中断中断功能执行
- 18. 中断服务程序执行两次ATmega88
- 19. 创建自我中断执行程序服务
- 20. 我怎么能不PHP脚本执行外部程序中断
- 21. SIGPOLL(SIGIO)问题:中断在执行处理程序
- 22. 执行应用程序关闭执行程序应用程序
- 23. 从C程序中执行程序
- 24. 在程序中未执行@
- 25. 在C中执行程序
- 26. 在java中执行程序
- 27. 执行程序关闭后,为什么Runnable仍然在可执行的线程池执行程序中执行?
- 28. 程序集编程和中断处理
- 29. JavaScript方法执行中断
- 30. IEnumerable执行中断foreach
我们是在谈论一个在PC或微控制器上运行的程序吗? – lampak