電子書籍の厳選無料作品が豊富!

Windowsの問題です。
デュアルコアの一方のコアをコア1として、他方をコア2とします。
コア1でプログラムA,Bが動いていて、コア2でプログラムC,Dが動いていているとします。
プログラムC,Dが終了したときに、プログラムA,Bが動いているとします。
コア1のみビジーでコア2はアイドル状態になります。
このときプログラムBがコア1からコア2に移動して実行するのでしょうか。
それともコア1の上で動き続けるのでしょうか。コア1のみビジーでコア2はアイドル状態ままでいるのでしょうか。
もう1つの質問です。同じプログラムでも別のコアで動作するのでしょうか。
即ち、プログラムAをパラメタ1で起動し、プログラムAをパラメタ2で起動します。

パラメタ1で起動したプログラムAはコア1で、パラメタ2で起動したプログラムAは別のコアで実行するのでしょうか。
パラメタ1で起動したプログラムAとパラメタ2で起動したプログラムAは同じコアで実行するのでしょうか。
わかっている方がおりましたら、教えて下さい。

A 回答 (2件)

コンパイラ、リンカでプログラムの実行可能イメージ:*.exe,*.dll等が作られます。


プログラムの実行スケジュールはOS:スケジューラの役割です。
実行を要求するプログラムは一つのリストに優先度順に繋がれ、空き状態となったCPUはそのリストから先頭のプログラムをリストから外し、実行スケジュールします。(複数のCPUがあっても、このリストは共通に1個です)
従ってどちらのCPUで実行されるかはその時にならないと分かりません。
(特殊な例として、起動時に実行CPU.Noを指定する機能があるのはありますが、普通は使われていません)
    • good
    • 0

動作はコンパイラ次第でしょう。

意図的に動作を指示できる場合もありますが、ほとんどの動作はコンパイラが自動に割り振ります。
    • good
    • 0
この回答へのお礼

回答がおそくなって申し訳ありません。
説明不足だったかも知れないが、あなたは誤解されてるかも知れないが、
私の知りたいことは、OSの機能であって、プログラムのコンパイル環境ではないのです。あなたの「コンパイラ次第でしょう」との回答に、そうだとしたら、OSを作成するときにコンパイラ環境はどうなんでしょうか。
わかったら教えて下さい。

お礼日時:2009/10/07 11:54

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