Questions tagged «interrupt»

1
什么是软件和硬件中断?如何处理?
我不确定我是否了解硬件和软件中断的概念。 如果我理解正确,则硬件中断的目的是引起CPU的注意,这是实现CPU多任务处理的一部分。 那么什么发出硬件中断?它是硬件驱动程序过程吗? 如果是,硬件驱动程序进程在哪里运行?如果它在CPU上运行,那么它就不必通过硬件中断来引起CPU的注意,对吗?那么它在其他地方运行吗? 硬件中断是直接中断CPU,还是先联系内核进程,然后内核进程联系/中断CPU? 另一方面,我认为软件中断的目的是让当前正在CPU上运行的进程请求一些资源。 有哪些资源?它们都是以运行过程的形式存在吗?例如,CPU驱动程序进程和内存驱动程序进程是否代表CPU和内存资源?I / O设备的驱动程序进程是否代表I / O资源?该进程是否还希望与其他正在运行的进程进行资源通信? 如果是,软件中断是否通过内核进程间接联系进程(代表资源)?与硬件中断不同,软件中断从不直接中断CPU,而是中断/联系内核进程,对吗?


4
为什么ED无法通过Cc退出?
该程序ed是最小的文本编辑器,无法通过使用Ctrl- 发送中断信息来退出C,而是打印错误消息“?”。到控制台。为什么ed收到中断后不退出?当然,没有理由为什么隐式错误消息在这里比退出更为有用。此行为导致许多新用户进行以下类型的交互: $ ed hello ? help ? exit ? quit ? ^C ? ^C ? ? ? ^D $ su # rm -f /bin/ed 这样的悲剧性浪费—如果ed简单地同意被打断就很容易避免。 另一个表现出类似行为的顽固程序less似乎也没有太多原因可以忽略C-c。为什么这些程序不只是提示?
20 less  interrupt  ed 

3
系统调用,消息传递和中断之间有什么关系?
我正在阅读有关过程管理的Wikipedia文章。我的重点是Linux。我无法弄清楚系统调用,消息传递和中断之间的关系和区别。它们全都用于向内核请求资源和服务的进程吗? 文章中的某些语录和其他一些语录: OS有两种可能的方法可以在程序执行期间重新获得对处理器的控制,以使OS执行取消分配或分配: 该进程发出系统调用(有时称为软件中断);例如,发生I / O请求,请求访问硬盘上的文件。 发生硬件中断;例如,按下键盘上的一个键,或定时器用完(用于抢先式多任务处理)。 在用户模式下执行的程序可以通过两种技术来请求内核的服务: * System call * Message passing 中断是表示需要注意的异步信号,或者是表示需要更改执行方式的软件中的同步事件。 硬件中断使处理器保存其执行状态并开始执行中断处理程序。软件中断通常以指令集中的指令的形式实现,这导致上下文切换到类似于硬件中断的中断处理程序。

3
Linux内核如何处理共享的IRQ?
根据到目前为止的读物,“当内核收到中断时,将调用所有已注册的处理程序。” 我了解每个IRQ的已注册处理程序都可以通过进行查看/proc/interrupts,并且我也了解已注册处理程序来自调用了request_irq传递大致形式的回调的驱动程序: irqreturn_t (*handler)(int, void *) 根据我所知道的,应该调用与特定IRQ相关的每个中断处理程序回调,并且由处理程序确定是否确实应由该中断处理该中断。如果处理程序不应该处理特定的中断,则它必须返回内核宏IRQ_NONE。 我无法理解的是,每个驱动程序如何确定是否应该处理中断。我想如果他们期望中断,他们可以在内部保持跟踪。如果是这样,我不知道他们将如何处理同一个IRQ后面的多个驱动程序都希望中断的情况。 我试图了解这些细节的原因是因为我弄乱了在kexec系统操作过程中重新执行内核的机制,同时使用了PCIe桥以及下游PCI上的复位引脚和各种寄存器设备。这样做时,重新启动后,我可能会出现内核崩溃,或者其他驱动程序抱怨即使没有进行任何操作,它们也会收到中断。 处理程序如何决定应由其处理中断是一个谜。 编辑:如果相关,则所讨论的CPU体系结构为x86。
14 linux  kernel  pci  interrupt  irq 

3
如何使继续编译?
我知道我可以make随时中断进程,而不必再次重新编译整个源代码树。据我所知,make只有在尚未编译目标时才编译目标,或者在最后一次编译后才修改源代码。 但是,如果我打断了make,肯定会有一个或多个(取决于并发级别)半就绪的二进制文件。下次我跑步时,对他们有make什么影响?还是在我按Ctrl+ C来避免部分编译的二进制文件时完成当前目标?

1
如何调试ksoftirqd资源使用过多的原因?
man ksoftirqd指示: 如果ksoftirqd占用的CPU时间超过一小部分,则表明该计算机处于较高的软中断负载下。 我正在使用Debian Wheezy系统,该系统通常具有很高的系统利用率,其中ksoftirqd进程在短时间内使用了过多的cpu和磁盘资源。在此期间,系统以蜗牛般的速度运行。 如何开始理解导致ksoftirqd资源利用率飙升的根本原因?
9 interrupt  load 

4
Ctrl + C不会杀死进程
我一直在寻找答案,但到目前为止没有发现任何答案。我目前正在登录我的Ubuntu服务器,并且在运行进程时无法在其上运行任何中断。这是我的姿势-a: user@Ubuntu1:~$ stty -a speed 38400 baud; rows 93; columns 200; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.