我正在做一个关于修改linux调度器的uni作业。
一般的想法是在每个任务的结构上添加一个整数,该整数将被初始化为零。
当调度程序被调用来执行这些任务时,如果整数为零,则应用正常的linux调度程序。如果它是一个,那么调度程序不会选择另一个任务,而是将控制权交还给该任务。
所以我遇到的问题是:
1.需要在task_struct上添加一个整数
1.需要创建一个终端命令,可以改变上述整数的值
1.需要在linux调度器上进行修改
我完全不知道如何做到这一点,甚至找不到内核代码中的task_struct定义。任何提示,答案或指南将不胜感激:)
已尝试从kernel.org下载所有内核代码(版本6.0.8)。搜索有用的资源,但没有找到。
1条答案
按热度按时间cgh8pdjw1#
对你的问题的一些回答
1.解决方案之一是在用户空间创建一些程序,这些程序将调用内核模块中的一些函数
1.当上下文执行从TASK_PLANNING更改为TASK_RUNNING时,可能需要更改变量值。这可以在/kernel/sched/core. c中完成。在代码中查找。
注意事项: