映画のエンドロール観る派?観ない派?

マルチコアCPUのコア割り当て

基本的な質問ですが教えてください。

マルチコアCPUで実行コアの割り当てはどのように
振り分けているのでしょうか?
(ハードは正常に動作している条件で)

勝手な想定では、
1)OS(ドライバ)が効率よく、振り分けを行う。
2)APLのコーディングにより明示的に振り分ける。
3)OSもAPLも特に意識なく、CPUが自立的に振り分ける。
のいずれかと思っていますが、実際はどのような動作を
しているのでしょうか?

A 回答 (1件)

SMP(対象型マルチプロセッシング)で検索されれば答えは出てくるでしょうが、CPUの基本優先度とリソース割振がアプリケーション側で設定されていない場合は、OSカーネルがアプリケーション管理の過程で全てのリソース(CPUに限らず)に関するロードバランスを制御します。


割り振りの効率は、OSのロードバランス制御機構の精度(能力)によって変わります。

尚、SMPを利用するにはBIOSなどのハードウェアプラットフォーム側にマイクロコード(ファームウェア)が、整備されている必要があります。(すでにここ15年の環境ではSMP準拠のハードウェアプラットフォームになっています)

ちなみに、SMPとは反対の機構を持つのが、ASMP(非対称マルチプロセッシング)と呼ばれる物です。この機構では予めCPUに役割を与えその役割専用にプロセッサを利用します。

この回答への補足

ご回答ありがとうございました。
内容は理解できました。

>CPUの基本優先度とリソース割振が
>アプリケーション側で設定されて
>いない場合は....

ということは、アプリケーション側から意図的に
割り振ることができるのですね?

それは、マルチコアCPUの場合のみに
可能なのでしょうか?

補足日時:2010/05/23 22:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!