如果某个线程正在等待来自网络的数据,则内核会对其进行反调度,以允许其他线程使用该CPU。
一旦网络设备提供了数据,如果该线程的优先级大于正在运行的线程,则必须再次调度该线程。谁负责重新运行调度程序,处理中断的设备驱动程序或内核(哪个部分)?
马努
答案 0 :(得分:3)
两者。驱动程序和内核本质上是一个中断处理程序,它可以决定从中断返回到与被中断的线程不同的线程。驱动程序处理中断,发出等待线程已准备就绪的信号,并跳转/调用OS入口点,以便调度程序可以更改就绪/正在运行的线程集。通常,操作系统将提高I / O等待后刚刚准备好的线程的优先级,因此您的网络线程很有可能“立即”运行。