マルチプロセッサー・システムでのプログラミング

ユニプロセッサー・システムでは、スレッドは交互にタイム・スライス方式で実行します。 これは、複数のスレッドが各使用可能プロセッサーで 1 つずつ同時に実行するマルチプロセッサー・システムとは対照的です。 異なるプロセス・スレッドを異なるプロセッサー上で実行することによって、 全体としてのパフォーマンスを改善できます。 ただし、個々のプログラムは、複数のスレッドを持っていなければ、 マルチプロセッシングを活用できません。

マルチプロセッシングは、オペレーティング・システム、およびオペレーティング・システムが実行するプログラムによって完全に処理されるので、大部分のユーザーからははっきり分かりません。 ユーザーは、プロセスをバインドする (強制的に特定のプロセッサーで実行する) ことができます。ただし、これは必須ではなく、普通のユーザーにはお勧めできません。 大部分のプログラマーにとって、マルチプロセッシングを利用するということは、 単に複数のスレッドを使用するということと同じです。 これに対して、カーネル・プログラマーは、 マルチプロセッサー・システムのコードを移植または作成するときには、 いくつかの問題を処理する必要があります。