Operating system 操作系统中断并运行程序。

Operating system 操作系统中断并运行程序。,operating-system,Operating System,我很难理解发送到CPU的中断信号是如何影响所有并发调度和执行的进程的。我还不能确定进程调度机制如何工作的细节,因为我还没有到达那个章节,这可能是混乱的根源 当事件导致中断时,CPU保存其上下文(即进程状态字寄存器+可能的GPR)并启动中断服务例程。ISR完成后,它将加载被中断程序的状态,以便继续 CPU如何知道要中断哪个程序 在IRS执行期间,当前运行的所有程序是否都会停止?或者所有其他进程是否保持运行,即与队列中的IRS include同时运行 CPU如何知道要中断哪个程序 CPU不知道,或者

我很难理解发送到CPU的中断信号是如何影响所有并发调度和执行的进程的。我还不能确定进程调度机制如何工作的细节,因为我还没有到达那个章节,这可能是混乱的根源

当事件导致中断时,CPU保存其上下文(即进程状态字寄存器+可能的GPR)并启动中断服务例程。ISR完成后,它将加载被中断程序的状态,以便继续

  • CPU如何知道要中断哪个程序

  • 在IRS执行期间,当前运行的所有程序是否都会停止?或者所有其他进程是否保持运行,即与队列中的IRS include同时运行

  • CPU如何知道要中断哪个程序

    CPU不知道,或者需要知道。当CPU接收到中断时,当前在该内核上运行的线程停止执行。使用正确设计的ISR,被中断的线程完全不知道执行曾经停止过*。通常,中断被发送到特定的核心。中断不会试图中断特定进程或线程,除非软件碰巧将关联设置为与被中断的内核的关联相匹配,并且线程碰巧正在运行。在这一点上,多核系统上高效操作系统设计的一部分是配置硬件,将中断源分散到不同的核上,这样一个核就不会经常中断

    *在运行程序时检测中断是一件棘手的事情,您通常需要知道不间断执行的时间有多长。如果发生了许多虚假的(由于缺少更好的短语而呈假阳性)中断,那么副作用就是程序运行速度明显变慢

    当前运行的所有程序是否在运行期间停止 执行国税局?还是所有其他进程都在运行,即, 与IRS同时运行是否包括在队列中

    中断通常是必须立即维修的事件。把它们排在日程上会使目的落空。因此,ISR不会添加到调度程序队列中。实际上,首先触发调度器执行的通常是来自硬件计时器的中断。在多核系统中,未中断的线程将继续作为一个核心服务执行中断

    许多中断可能会触发一个信号量,使线程解除阻塞并开始执行,因为发生了一个事件。这是一种向线程发送信号的常见方式,表明数据已准备好从SATA或网络接口卡进行处理。通常这样做是因为实际解析数据包(例如)会很慢。ISR需要速度快,这样他们就可以简单地将CPU密集型的缓慢工作卸载到线程中