关于【实时线程】的问题
这么晚没睡只因为被实时线程的问题困扰,快来个人帮帮我啊!!!!!
周末终于搞懂了什么是linux 的实时线程,就是调度策略为FIFO 或者 RR,优先级小于99,的线程。是这样?
网上的资料都是在用户态程序创建和修改线程属性,或者用户态获得线程的pid 然后修改属性,那我要直接在内核模块中创建一个实时线程怎么办呢,用kthread_create()创建的线程优先级好像是120,但是我要的优先级要小于99,要怎么做呢,直接在内核模块的代码里怎么修改线程属性?
int pthread_attr_setschedparam() 和 sched_setscheduler() 这两个函数貌似都是 用户态的接口。
我可以 直接创建一个内核线程 struct task_struct *task;
然后 用 task->policy = SCHED_FIFO;
task->rt_priority = 20;
这样的笨办法去实现吗,这样做合适吗,会不会漏掉一些同样需要修改的参数?
谢谢各位大神