您好,登錄后才能下訂單哦!
這篇文章主要介紹vxworks中SMP的Affinity怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
CPU Affinity一般翻譯為CPU的親和力或親和性,是多核OS里的一種技術(shù),指的是可以將任務(wù)綁定到某個CPU上。在VxWorks的SMP里,默認每個任務(wù)都可以在每個CPU上執(zhí)行,而指定Affinity后,就可以把某些任務(wù)固定下來,讓其只在特定的CPU上執(zhí)行。相關(guān)的函數(shù)是taskCpuAffinitySet()和taskCpuAffinityGet()
與cpuset_t相關(guān)的,還有幾個宏??疵謶摼湍懿鲁鍪巧兑馑?,宏定義也是非常簡單↘
如果不指定Affinity呢?新創(chuàng)建的任務(wù)會繼承Parent任務(wù)的Affinity,看個例子
如果任務(wù)的Affinity指定到某個CPU了,而那個CPU一直忙于更高優(yōu)先級的任務(wù),一時半會兒還輪不到這個任務(wù)執(zhí)行,怎么辦?VxWorks的SMP還提供了一種特殊的功能:保留CPU。被保留的CPU,就只運行那些Affinity是這個CPU的任務(wù)。另外提供參數(shù)VX_SMP_CPU_EXPLICIT_RESERVE,用來排除那些不能被保留的CPU。
可以看到CPU2(0x1是CPU0、0x2是CPU1、0x4是CPU2…0x80是CPU7)被保留下來,而目前只有任務(wù)t1指定到它上邊了。因此,不管t1的優(yōu)先級高低,只要t1進入就緒隊列,它就會在CPU2上執(zhí)行了。
以上是“vxworks中SMP的Affinity怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。