PCがオンになると、BIOSは最初のステップでブートローダプログラムを検索して実行します。 BSP(Bootstrap Processor)という名前のシングルコアがブートローダを実行します。
ブートローダはOSのカーネルを実行するようにシステムを導きます。 BSPは、ハードウェアおよび物理層で指定されたCPUコアの1つです。このコアは初期化およびシャットダウンプロセスに使用されます。 実際には、BSPはシステムの初期化とオペレーティングシステムの起動を担当します。 他のコアは、オペレーティングシステムの起動後にのみアクティブになります。 オペレーティングシステム(主スレッド)のカーネルは、通常BSPコアで実行され、現在のプロセスのスレッドを実行したり、いくつかのプロセスを一緒に実行するために他のコアを管理します。 また、コアはいくつかのアトミック命令を実行することができます。各コアについて、これらの命令は、共用メモリ・バス(高レベル・キャッシュ)が排他的所有権を既に有することを保証する。 これらの手順は、OSがソフトウェアミューテックスの実装によってすべてのプロセスとスレッドを優先度に従って管理するのに役立ちます。例えば
:
インテルのCPUは、 "ロック" という名前のプレフィックス命令をサポートしています。
lock inc [ebx]
この命令を実行しているコアは、すぐにバスを取得し、他のコアの動作は中断されるまで中断されます。
マルチCPUシステムについては何も分かりません。しかし、マルチCPUシステムでは、各CPUに専用のRAMがあり、すべてのCPUはQPIチャネル(Intel用)で接続されています。たぶん、分離されたRAMのために、並行性の問題は少なくなります。
downvoteの人には、根拠を提供できますか?またはコメント? –
通常、すべてを統治する1つのマスタープロセッサがあります。 – user3344003
これは本当に恐ろしい質問ではありません。 downvoteは、おそらくこれが技術的に中立であるという事実によって説明することができます。これは、コンピュータサイエンスのようなサイトに適しています(しかし、まずはサイトツアーを読んで、まずはオフフィクションであるかどうかを知る)。 – Carcigenicate