FreeBSD中的抢占

时间:2012-01-11 14:23:00

标签: kernel freebsd

我现在正在寻找一段处理FreeBSD中内核抢占的源代码。

在Linux内核中,有一个名为“sched.c”的c源文件,其中set_current_state()宏用于设置进程状态(TASK_RUNNING,TASK_INTERRUPTIBLE或其他)。这些宏在“sched.h”中定义。你能告诉我FreeBSD内核源代码树中相应的源文件(如果FreeBSD中存在这些宏的定义)吗?

1 个答案:

答案 0 :(得分:3)

相关文件是src/sys/kern/sched_4bsd.c(4BSD调度程序)和src/sys/kern/sched_ule.c(ULE调度程序)。但是没有TASK_ * definitions或set_current_state()宏,因为FreeBSD和Linux使用不同的调度程序。

您可能需要阅读其中一个(我推荐4bsd,因为它更简单)来找到您感兴趣的内容。

BTW,有一个项目要移植Linux的BFS调度程序,代码是http://rudot.blog.com/。您可能会发现它很有用。