假设我的CPU陷入困境,我想检查是否有来自任何硬件设备的中断? 例如:按下键盘CPU没有响应,然后我想知道处理器是否处理了我的键盘中断。有没有要检查的界面。
答案 0 :(得分:1)
键盘处理程序本身通常是确定系统是否处于活动状态的良好界面。在默认模式下,tty线路规则将回显在键盘上键入的字符(此回显由内核完成,并且不依赖于任何用户空间进程的调度)。因此,如果您坐在系统控制台上的空闲命令行中,并且您没有看到键入的字符回显到屏幕上,那么您的系统很可能会被锁定。但请注意,模式可以通过程序(例如vi / vim)更改,并且可以关闭此回显(在这种情况下,您只能看到vim进程在屏幕上打印的内容)。
第二个测试是从网络访问机器。从另一台机器发送时,有几件事应该导致响应。如果发送ping(ICMP Echo Request),内核应自动响应ICMP Echo Reply数据包。或者,如果您知道在端口5000(例如)上运行的服务器,您应该能够创建到该端口的连接,即使服务器进程本身永远不会有机会运行(响应中发送的TCP SYN-ACK) SYN完全在内核中完成)。如果这些工作正常,您就知道正在处理网络中断,并且正在安排内核的网络软中断处理程序。
还有其他一些东西可以告诉你键盘中断是否正在触发和处理,但这些通常要求你有一个工作命令行链接到机器。
如果您有这样的链接,cat /proc/interrupts
将显示每个CPU的每个中断的计数。例如,如果键盘正在中断,则每次中断都会增加其中一个计数。
您永远不应该遇到中断但没有得到服务的情况。在恢复用户空间处理之前,将处理所有中断。 (服务中断的确切含义取决于驱动程序,可能因设备/设备类型而异。)
如果根本没有中断服务,您的系统将完全锁定并且无法使用,因为通常不会出现任何输入或输出而没有中断。