2013-02-20 22 views
1

考慮一個我們有多個處理器/內核和兩個線程的情況。是否有可能強制Linux調度程序在其執行的每個實例中總是將特定線程(兩者)調度到特定處理器。是設置處理器親和力線程,而創作,足以用於此目的強制調度程序將線程分配給特定處理器

回答

2

如果你看一下手冊頁taskset你可以看到下面的語句:

Linux調度會兌現給CPU親和力並且該進程不會在任何其他CPU上運行。

這意味着,爲特定進程設置CPU關聯將確保它始終在該CPU上運行。

存在允許您爲特定線程設置線程關聯的API,我想這也將被OS調度程序所尊重。

如果你看看sched_setaffinity你會看到這樣一行:

實際集上運行進程時使用的CPU的這些限制是默默由內核強加的。

這意味着這將確保您的線程只能在此函數設置的CPU上運行。

+0

感謝支持@託尼獅子。我使用了taskset命令。並遇到親和力列表和親和力掩碼。我需要知道 它們之間的差異以及如何在運行時設置/更改親緣關係 – naran 2013-02-21 05:19:37

+0

我對您所使用的操作系統做了一個假設,但是您確實在Linux上?如果是這樣,你應該使用'shed_setaffinity'在代碼中設置它。親和力掩碼你應該能夠查找。 – 2013-02-21 08:40:44

+0

是否可以將內核線程調度到特定內核 – naran 2013-04-15 10:18:21

相關問題