关于多核处理器下优先级任务调度的问题

时间:2021-07-12 20:02:39
我没搞过多核的cpu,最近稍有学习,想到一个问题,很好奇。

linux下有cpu亲和力的概念,可以讲进程或者线程绑定到某个具体的cup运行,如果我采用不同的任务调度策略,比如把一些进程改成实时任务调度策略,这样他们的优先级就高了,如果这个时候系统有两个任务,我将高优先级任务绑定在cpu0上,将普通任务绑定在cpu1上,这个时候岂不是有可能普通任务先于实时任务运行完毕?

如果我不绑定任务进程到任务cpu,这个时候是不是说仍然两个任务各占一个cpu?

6 个解决方案

#1


没人理吗,求教。

#2


人呢?在哪?

#3


沉下去了啊,没人了解这个吗

#4


不绑定的话,应该是系统分配的,不会1个任务就在1个cpu上。 关于多核处理器下优先级任务调度的问题

#5


所谓的高优先级任务  就是在它ready的时候 最先获得CPU或者抢占CPU,可以理解它占有CPU的时间多一点和获取CPU的优先级高一些。 如果只有2个任务且都绑定在不同的CPU上  也就无所谓谁是实时任务  谁是普通任务了吧?

#6


首先,多核之间的运行的独立的并行的。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。

#1


没人理吗,求教。

#2


人呢?在哪?

#3


沉下去了啊,没人了解这个吗

#4


不绑定的话,应该是系统分配的,不会1个任务就在1个cpu上。 关于多核处理器下优先级任务调度的问题

#5


所谓的高优先级任务  就是在它ready的时候 最先获得CPU或者抢占CPU,可以理解它占有CPU的时间多一点和获取CPU的优先级高一些。 如果只有2个任务且都绑定在不同的CPU上  也就无所谓谁是实时任务  谁是普通任务了吧?

#6


首先,多核之间的运行的独立的并行的。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。