2011-07-21 50 views
1

Erlang進程如何綁定到特定的調度器?Erlang進程如何綁定到特定的調度程序?

+0

請您再擴展一下嗎?我不確定你在問什麼。 –

+0

http://stackoverflow.com/questions/605183/how-if-at-all-do-erlang-processes-map-to-kernel-threads/605631#605631 - 這個答案可能實際上回答你的問題。在綁定到特定調度程序的過程中,AFAIK在Erlang VM ATM中是不可能的。 – gleber

回答

1

an old mail from Kenneth Lundin讀:

Erlang的VM不支持SMP具有運行在主 進程線程1個調度器。調度器從運行隊列中選擇可運行的Erlang進程 和IO-jobs,並且因爲只有一個線程訪問它們,所以不需要鎖定數據結構 。

支持SMP的Erlang VM可以有1到多個調度程序,它們是 ,每個調度程序運行在1個線程中。調度程序從一個公共運行隊列中選擇可運行的Erlang進程 和IO-jobs。在SMP虛擬機中,所有共享數據結構都受到鎖保護,運行隊列是一個使用鎖保護的數據結構的示例 。

從OTP R12B如果OS報告多於1個CPU(或核)和相同數量的 作爲調度的CPU或內核的虛擬機的SMP版本自動啓動 默認。

不知道這是否回答你的問題。你能擴展一點嗎?

+0

每個調度程序在R13B中都有自己的獨立運行隊列獨立的其他調度程序。 – zhangxinrun

2

當前進程沒有綁定到特定的調度程序(儘管您可以通過非目標函數強制它,不推薦)。調度程序線程可以使用cpu拓撲和綁定類型綁定到邏輯處理器。虛擬機使用其中的一些信息來增強其正常調度方案的性能。

相關問題