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上执行。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。
#1
没人理吗,求教。
#2
人呢?在哪?
#3
沉下去了啊,没人了解这个吗
#4
不绑定的话,应该是系统分配的,不会1个任务就在1个cpu上。
#5
所谓的高优先级任务 就是在它ready的时候 最先获得CPU或者抢占CPU,可以理解它占有CPU的时间多一点和获取CPU的优先级高一些。 如果只有2个任务且都绑定在不同的CPU上 也就无所谓谁是实时任务 谁是普通任务了吧?
#6
首先,多核之间的运行的独立的并行的。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。