2

我正在尝试实现某种新的 Linux 任务调度程序,所以我发现这篇文章http://www.eetimes.com/design/embedded/4204929/Real-Time-Linux-Scheduling-Part-1 真的很有帮助。但是,它说我们不仅需要在 /kernel-source-code/include/linux/sched.h 中定义新的调度宏,还需要在 /usr/include/bits/sched.h 中定义相同的东西。

那么既然调度程序工作在内核中,为什么我们需要更改用户空间头文件。我不知道为什么我们有用户空间的头文件?无论如何,用户空间程序不能直接使用内核中定义的函数(除非通过系统调用),对吧?如果我们还需要更改用户空间文件来实现一个新的调度器,那么调度器如何能够移植,因为用户不仅需要使用新的内核映像,还需要更改他们的用户空间文件?

4

1 回答 1

3

这篇文章讨论了添加新的调度或新的调度策略,而不是大规模替换内核调度算法。您需要用户空间进程能够选择策略sched_setscheduler(2),因此需要用户空间可见的头文件。

这里查看更多详细信息。

于 2012-06-21T16:10:55.780 回答