1
考慮一個我們有多個處理器/內核和兩個線程的情況。是否有可能強制Linux調度程序在其執行的每個實例中總是將特定線程(兩者)調度到特定處理器。是設置處理器親和力線程,而創作,足以用於此目的強制調度程序將線程分配給特定處理器
考慮一個我們有多個處理器/內核和兩個線程的情況。是否有可能強制Linux調度程序在其執行的每個實例中總是將特定線程(兩者)調度到特定處理器。是設置處理器親和力線程,而創作,足以用於此目的強制調度程序將線程分配給特定處理器
如果你看一下手冊頁taskset
你可以看到下面的語句:
Linux調度會兌現給CPU親和力並且該進程不會在任何其他CPU上運行。
這意味着,爲特定進程設置CPU關聯將確保它始終在該CPU上運行。
存在允許您爲特定線程設置線程關聯的API,我想這也將被OS調度程序所尊重。
如果你看看sched_setaffinity
你會看到這樣一行:
實際集上運行進程時使用的CPU的這些限制是默默由內核強加的。
這意味着這將確保您的線程只能在此函數設置的CPU上運行。
感謝支持@託尼獅子。我使用了taskset命令。並遇到親和力列表和親和力掩碼。我需要知道 它們之間的差異以及如何在運行時設置/更改親緣關係 – naran 2013-02-21 05:19:37
我對您所使用的操作系統做了一個假設,但是您確實在Linux上?如果是這樣,你應該使用'shed_setaffinity'在代碼中設置它。親和力掩碼你應該能夠查找。 – 2013-02-21 08:40:44
是否可以將內核線程調度到特定內核 – naran 2013-04-15 10:18:21