0

我想研究如何将线程手动分配给多核机器上的特定内核。我发现 include/sched.h 定义了一些可以对此有所帮助的宏和函数(sched_setaffinity 等)。但是,这些函数是外部的,我找不到它们的定义。这些功能是否在任何地方实现?如果是,在哪里以及是否可以覆盖默认实现?如果没有,我该如何实施它们?

添加新的实现是否意味着我必须重新编译我的 Linux 内核?

4

2 回答 2

0

检查BFS的代码,它应该向您展示如何实现自己的 CPU 调度程序。

//edit ye​​s 添加一个新的调度器 impl 意味着你必须重新编译你的内核,但是你总是可以只用它来测试它,qemu -kernel /path/to/new/kerenl -initrd something以确保你的代码在真实机器上测试之前不会立即崩溃。

于 2010-12-14T19:22:13.370 回答
0

sched_setaffinity 的代码在内核中。头文件只是提供原型来调用它,满足它的库只是将调用转发给系统。

于 2010-12-14T19:29:00.420 回答