2017-01-11 11 views
-1

PCの電源を入れると、マルチコアプロセッサーはどうなりますか?ブートアップ中にすべてのCPUコアが使用されていますか?

つまり、私はブートローダがディスクから読み込まれて実行されていると思いますが、それはシングルコアで実行されていますか?どれ?または、ブートローダーがすでにすべてのコアを使用していますか?

OSの準備ができたら、使用可能なすべてのコアですべてのプロセスを分割するのはその責任ですか?これらの重要なプロセスは、複数のコア上でどのように連携していますか?ロック(マルチコアミューテックス?)は、より高価ですか?

最後に、マルチCPUマザーボード(CPU用の2つまたは4つのソケットを備えたサーバMoBosなど)を使用している場合、上記のすべてがどのように機能しますか?

+0

downvoteの人には、根拠を提供できますか?またはコメント? –

+0

通常、すべてを統治する1つのマスタープロセッサがあります。 – user3344003

+0

これは本当に恐ろしい質問ではありません。 downvoteは、おそらくこれが技術的に中立であるという事実によって説明することができます。これは、コンピュータサイエンスのようなサイトに適しています(しかし、まずはサイトツアーを読んで、まずはオフフィクションであるかどうかを知る)。 – Carcigenicate

答えて

2

PCがオンになると、BIOSは最初のステップでブートローダプログラムを検索して実行します。 BSP(Bootstrap Processor)という名前のシングルコアがブートローダを実行します。

ブートローダはOSのカーネルを実行するようにシステムを導きます。 BSPは、ハードウェアおよび物理層で指定されたCPUコアの1つです。このコアは初期化およびシャットダウンプロセスに使用されます。 実際には、BSPはシステムの初期化とオペレーティングシステムの起動を担当します。 他のコアは、オペレーティングシステムの起動後にのみアクティブになります。 オペレーティングシステム(主スレッド)のカーネルは、通常BSPコアで実行され、現在のプロセスのスレッドを実行したり、いくつかのプロセスを一緒に実行するために他のコアを管理します。 また、コアはいくつかのアトミック命令を実行することができます。各コアについて、これらの命令は、共用メモリ・バス(高レベル・キャッシュ)が排他的所有権を既に有することを保証する。 これらの手順は、OSがソフトウェアミューテックスの実装によってすべてのプロセスとスレッドを優先度に従って管理するのに役立ちます。例えば

インテルのCPUは、 "ロック" という名前のプレフィックス命令をサポートしています。

lock inc [ebx] 

この命令を実行しているコアは、すぐにバスを取得し、他のコアの動作は中断されるまで中断されます。

マルチCPUシステムについては何も分かりません。しかし、マルチCPUシステムでは、各CPUに専用のRAMがあり、すべてのCPUはQPIチャネル(Intel用)で接続されています。たぶん、分離されたRAMのために、並行性の問題は少なくなります。