二、中断处理程序
1、时钟中断
kernel/clock.c:
PUBLIC void clock_handler(int irq)
{
if (++ticks >= MAX_TICKS)
ticks = 0;
if (p_proc_ready->ticks)
p_proc_ready->ticks--;
if (key_pressed)
inform_int(TASK_TTY);
if (k_reenter != 0) {
return;
}
if (p_proc_ready->ticks > 0) {
return;
}
schedule();
}
调度函数schedule()在kernel/proc.c:
PUBLIC void schedule()
{
struct proc* p;
int greatest_ticks = 0;
/***每个进程都有一个ticks数&#