摘要: 最近翻看linux较早版本的内核,在定时器处理函数do_timer()【linux/kernel/sched.c】中有这么一段代码觉得想不透彻: if (cpl) current->utime++; else current->stime++;其中不解之处就是对cpl的理解。网上普遍的理解是cpl=0为内核态,否则>0表示用户态。但是定时器中断处理函数都是在内核态进行的,赵炯博士的树上是这么解释的,0表示超级任务,即内核态任务,linux的idle任务和任务1即是此类任务,该任务与其他任务的区别就是其代码段和数据段都是在640K的内核区域之内的,>0表示普通任务。至于我 阅读全文
posted @ 2011-12-18 14:50 Orig 阅读(1511) 评论(0) 推荐(0) 编辑