Linux下如何强制中断一个程序的执行?(利用按键,而不是kill命令)

Linux下如何强制中断一个程序的执行?(利用按键,而不是kill命令),第1张

Linux下档唯强制中断一个程序的执行,利用按键,而不是kill命令。

可尝试以下方法:

1.CTRL + c  中断。

2.CTRL + z  暂停放到后台。

3.CTRL + d  保存退出。

如上述方法不能解决问题可尝试:

进入相关网站询问客服人员。

寻找线下维修人员,进行询问。

寻找专业人员,寻斗逗求帮助。

寻找相关书行销培籍,进行知识解答。

当Linux网卡端口断开时,系统会发出一个“netlink”消息,这个消息会被内核的网裂亮银络堆栈捕获,键帆然后会调用网络设备驱动程序的net_device_notifier函数。这个函数会检测网络设备的状态,如果网络设备的状态发生变化肆宴,它会向系统发出一个事件,用来通知系统网络设备的状态发生了变化。在这种情况下,当网卡端口断开时,系统会发出一个“NETDEV_DOWN”事件,用来通知系统网络设备的状态发生了变化。

什么是中断

Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。如果要管理这些设备,首先得和它们互相通信才行,一般有两种方案可实现这种功能:

轮询(polling) 让内核定期对设备的状态进行查询,然后做出相应的处理;中断(interrupt) 让硬件在需要的时候向内核发出信号(变内核主动为硬件主动)。

第一种方案会让内核做不少的无用功,因为轮询总会周期性的重复执行,大量地耗用 CPU 时间,因此效率及其低下,所以一般都是采用第二种方案 。

对于中断的理解我们先看一个生活中常见的例子:QQ。第一种情况:你正在工作,然后你的好友突然给你发送了一个窗口抖动,打断你正在进行的工作。第

二种情况:当然你有时候也会每隔 5 分钟就去检旁辩老查一下 QQ

看有没有好友找你,虽然这很浪费你的时间。在这里,一次窗口抖动就可以被相当于硬件的中断,而你就相当于 CPU,你的工作就是 CPU

这在执行的进程。而定时查询就被相当于 CPU 的轮询。在这里可以看到:同样作为 CPU 和硬件沟通的方式,中断是硬件主动的方式,较轮询(CPU

主动)更有效些,因为我们都不可能一直无聊到每隔几分钟就去查一遍好友列表。

CPU

有大量的工作需要处理,更不会做这些大量无用功。当然这只是一般情况下。好了,这里又有了一个问题,每个硬件设备都中断,那么如何区分不同硬件呢?不同设

备同时中断如何知道哪个中断是来自硬盘、哪个来自网卡呢?这个很容易,不是每个 QQ 号码都不相同吗?同样的,系运升统上的每个硬件设备都会被分配一个

IRQ 号,通过这个唯一的 IRQ 号就能区别张三和李四了。

从物理学的角度看,中断是一种电信号灶激,由硬件设备产生,并直接送入中断控制器(如

8259A)的输入引脚上,然后再由中断控制器向处理器发送相应的信号。处理器一经检测到该信号,便中断自己当前正在处理的工作,转而去处理中断。此后,

处理器会通知 OS 已经产生中断。这样,OS

就可以对这个中断进行适当的处理。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识,这些值通常被称为中断请求线。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12471556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存