今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御
● OSのタスク・スケジューリングにもくふうが必要
このように,ハードウェア的にマルチプロセッサ構成を取っていても,通常,マスタ・プロセッサ以外のCPUは,ブート処理後に休止状態になります.休止状態のCPUを起こすのはOSの役目です(図5).つまり,マルチプロセッサ対応でないOSでは,一つのCPUしか使えないことになります.
シングル・プロセッサ上で動作するOSは,待ち行列に投入された実行可能タスクの中から,実行優先度などによるタスク・スケジューリングでタスクを選び,プロセッサに実行させます.マルチプロセッサ・システムでは,OSが複数のプロセッサにタスクを割り当て,複数のプロセッサがそれぞれタスクを実行することで,システムの処理性能を高めます.いちばん素朴な実装としては,OSは全CPUが共有するタスクの待ち行列にタスクを投入しておき,空いているCPUに待ち行列からタスクを取り出して実行させます.