2017-04-25 50 views
1

操作系統能夠確定如何將不同的進程/線程安排到不同的CPU核上,OS調度程序能夠很好地完成工作。那麼,我們何時需要爲進程調用sched_setafficity()之類的函數,或者爲pthread調用pthread_setaffinity_np()?linux c:「sched_setaffinity」函數的常見用例是什麼?我認爲它沒有用

它似乎沒有能夠顯着提高任何性能,如果可以的話,那麼我想我們需要重新編寫linux進程調度程序吧?

只是想知道我的應用程序何時需要調用這些函數? 謝謝。

+0

您可以在沒有任務計劃的情況下僅爲您的線程使用cpu。爲此,首先將isocpu patameter放入grub文件,然後Linux OS不使用CPU,然後使用sched_setafficity(),您將擁有一個專用CPU –

回答

1

這對於一些與DSP(數字信號處理)有關的計算密集型實時處理非常有幫助。 假設一個實時DSP相關進程PROCESS0在覈心CPU0上運行。由於某些調度算法需要發生CPU0先佔,因此process0必須在另一個CPU上運行。實時過程的這種切換是開銷。因此親和力。我們直接向內核指出process0應該在CPU0上運行。

相關問題