当前位置: 技术问答>linux和unix
关于多核处理器下优先级任务调度的问题
来源: 互联网 发布时间:2017-05-28
本文导语: 我没搞过多核的cpu,最近稍有学习,想到一个问题,很好奇。 linux下有cpu亲和力的概念,可以讲进程或者线程绑定到某个具体的cup运行,如果我采用不同的任务调度策略,比如把一些进程改成实时任务调度策略,这...
我没搞过多核的cpu,最近稍有学习,想到一个问题,很好奇。
linux下有cpu亲和力的概念,可以讲进程或者线程绑定到某个具体的cup运行,如果我采用不同的任务调度策略,比如把一些进程改成实时任务调度策略,这样他们的优先级就高了,如果这个时候系统有两个任务,我将高优先级任务绑定在cpu0上,将普通任务绑定在cpu1上,这个时候岂不是有可能普通任务先于实时任务运行完毕?
如果我不绑定任务进程到任务cpu,这个时候是不是说仍然两个任务各占一个cpu?
linux下有cpu亲和力的概念,可以讲进程或者线程绑定到某个具体的cup运行,如果我采用不同的任务调度策略,比如把一些进程改成实时任务调度策略,这样他们的优先级就高了,如果这个时候系统有两个任务,我将高优先级任务绑定在cpu0上,将普通任务绑定在cpu1上,这个时候岂不是有可能普通任务先于实时任务运行完毕?
如果我不绑定任务进程到任务cpu,这个时候是不是说仍然两个任务各占一个cpu?
|
所谓的高优先级任务 就是在它ready的时候 最先获得CPU或者抢占CPU,可以理解它占有CPU的时间多一点和获取CPU的优先级高一些。 如果只有2个任务且都绑定在不同的CPU上 也就无所谓谁是实时任务 谁是普通任务了吧?
|
首先,多核之间的运行的独立的并行的。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。
如果进程绑定,两个进程在两个cpu上并行运行,哪个进程先运行结束,取决于进程内部所做的事情。
如果不绑定,高优先级进程会被优先分配到一个cpu上运行,如果这时还有空闲cpu,会将低优先级的进程分配到空闲cpu上执行。
|
不绑定的话,应该是系统分配的,不会1个任务就在1个cpu上。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。