重调度中断(Rescheduling Interrupt)
在UNIX系统中,重调度中断(Rescheduling Interrupt)是操作系统用来确保处理器被高优先级进程使用的一种机制。当一个运行中的进程需要被抢占(preempt)让出处理器给一个更高优先级的进程时,可以通过重调度中断来实现。
在很多UNIX系统及其变种(比如Linux)中,这通常通过定时器(timer)中断来完成。当定时器中断发生时,如果内核检测到有高优先级的进程需要运行,它可能会触发重调度逻辑。在Linux中,这个机制叫作调度器(scheduler tick),它可以检查是否需要进行上下文切换。
在Linux内核代码中,重调度的概念被称为 need_resched
标志。这是一个在当前任务的线程信息(thread_info
结构体)中的标志位,用来表示当前任务需要被抢占。内核在适当的地方检查该标志位,以确定是否需要放弃当前的CPU时间片,让出处理器给另一个任务。