| 查看: 1400 | 回复: 0 | |||
[交流]
linux内核的进程迁移机制
|
|
阅读Linux内核有段时间了,想要在内核中加一个关于实时任务的调度算法。 众所周知,2.6版本的Linux内核中关于实时任务只有两种调度算法(FIFO和RR),分别对应两个调度策略:SCHED_FIFO(先到先服务)以及SCHED_RR(时间片轮转)。这两种调度策略都是通过一个函数集合rt_sched_class来定义和实现的。 现在想在内核中加入一个主要针对周期性任务的、根据每个任务的执行时间(任务运行前已确定)来确定其优先级的、基于优先级的调度算法。如果重新写一个调度类,那么必须实现调度类中给出定义的所有函数,其中有很多函数牵涉到了内核中的锁机制,很复杂。但是如果直接修改rt_sched_class,又担心会破坏内核中原有的两种实时调度机制。这是一点,希望大家可以说下自己的见解。 第二点,如果是多核平台,不可避免的,要实现核间的进程迁移机制。而linux中的进程迁移机制是基于plist数据结构来实现的。关于链表,Linux中有两种基本的双向链表组织形式:list和hlist。这两种链表形式比较简单,其中list就是很常见的双向链表形式,而hlist则主要应用在哈希链表中,用于快速定位进程,这里不需要深究。而plist的实现则是基于list形式的双向链表。plist_head及plist_node均定义在内核中的Plist.h头文件中。问题就是,具体这两个数据结构是怎样支持进程迁移机制的,我不太理解。希望大家可以讨论一下。 共同学习哈。 |
» 猜你喜欢
求助:我三月中下旬出站,青基依托单位怎么办?
已经有11人回复
不自信的我
已经有12人回复
假如你的研究生提出不合理要求
已经有5人回复
所感
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有28人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
26申博(荧光探针方向,有机合成)
已经有4人回复












回复此楼