我想研究如何将线程手动分配给多核计算机上的特定核心。我发现include / sched.h定义了一些可以帮助解决这个问题的宏和函数(sched_setaffinity等)。但是,功能是外部的,我找不到他们的定义。这些功能是在任何地方实现如果是,在哪里可以覆盖默认实现?如果不是,我该如何实施?
并且添加新的实现意味着我必须重新编译我的Linux内核吗?
答案 0 :(得分:0)
检查BFS的代码,它应该向您展示如何实现自己的CPU调度程序。
//编辑是添加新的调度程序impl意味着您必须重新编译内核,但是您始终可以使用qemu -kernel /path/to/new/kerenl -initrd something
对其进行测试,以确保您的代码在真正测试之前不会立即崩溃机。
答案 1 :(得分:0)
sched_setaffinity的代码在内核中。头文件只提供原型来调用它,而满足它的库只是将调用转发给系统。