【发布时间】:2013-02-19 02:56:48
【问题描述】:
我想了解当处理器为内核代码提供机会并执行维护和调节工作时的中断机制。我所知道的是定时器中断为操作系统提供了这种便利。
1) 我想知道什么是相关的中断号,以及在 Linux 的情况下调用的第一个 OS 例程是什么。如果我知道这个的文件和函数名会很好。
在 Linux 中,scheduler_tick 是调用来调度新任务的内核函数,但不知道是谁调用了 scheduler_tick 及其父函数?
2) 在 Linux 中是否还有其他调用 scheduler_tick 的中断?它们是哪些(如果有的话)?
/*
This function gets called by the timer code, with HZ frequency.
We call it with interrupts disabled.
*/
void scheduler_tick(void)
{
int cpu = smp_processor_id();
struct rq *rq = cpu_rq(cpu);
struct task_struct *curr = rq->curr;
.......
【问题讨论】:
-
可能来自定时器中断?我不知道。 :)
-
是的,它来自定时器中断——但是,这是唯一的来源吗?我看到它被多个函数调用,但不确定根是否只是定时器中断。