差分

移動先: 案内検索

マルチプロセッサとプロセス

325 バイト追加, 2021年10月8日 (金) 18:57
/* マルチコアが当たり前の時代に */
以前は(パッケージとしての)CPUの中に1つのプロセッサ(プロセッサ・コア)しか搭載されておらず、それをマザーボードに複数搭載してマルチプロセッサのシステムとして使っていました。
近年ではデスクトップPCでもノートPCでも採用しているCPUがマルチコアなのが当たり前という時代になってきました<ref>。近年ではデスクトップPCでもノートPCでも採用しているCPUがマルチコアなのが当たり前という時代になってきました。マルチコアとは物理的に1つのプロセッサ・チップ (あるいはプロセッサのパッケージの中に) に複数のプロセッサ・コアを搭載しているCPUパッケージのことです。に複数の物理的プロセッサ・コアを搭載しているCPUパッケージのことです。
部品としてのパッケージ化されたCPUは1つでも、その中には複数のプロセッサが存在しています。
2018年においては一般に販売されているPCでマルチコア以外はみかけません。スマートフォンにおいてもマルチコアのCPUを採用しています。</ref>。2018年においては一般に販売されているPCでマルチコア以外はみかけません。またスマートフォンやタブレットでもマルチコアのCPUを採用するのが主流となっています。
=== マルチプロセッサとプロセス ===
さらにそのSMPを構成しているハードウェア上で対称型マルチプロセッシング対称マルチプロセッサ(SMP) を構成しているハードウェア上でソフトウェアが対称型マルチプロセッシング(SMP: Symmetric multiprocessing)を実現しているのもSMPです。を実現しています。ハードウェアがSymmetric 理屈的にはハードウェアがSymmetric Multi-Processorでもソフトウェアでは(Symmetric ProcessorでもソフトウェアではSymmetric multiprocessingではないOSの実装もありえます<ref>ありえますが、筆者はそのような実装はみたことはありません。</ref>が、少なくともLinuxのカーネルと、その処理についての文脈でSMPと呼んでいる時、ハードウェアがSMPなものにソフトウェアもSMPを実装しているので結果としておなじ意味になります。
ある一定のデータを処理するプログラムをまず仮定します。プロセス単位で割り当てるならプログラム側はSMPを何にも意識しなくても構いません。たくさんのプロセスがスケジュールされている場合でもCPU が多い分、自分の番が回ってくる回数が増えるため負荷に強いという意味で、処理能力が向上します。CPUが1個の時に同時に2つのプロセスを動かす時の処理時間とCPUが2個の時に同時に2つのプロセスを動かす時の処理時間を比較すると、後者の方が速くなります。しかし1つのプロセスに着目してみればCPUが1個で1つのプロセスしか動いていない時の処理時間よりは速くなることがありません。
 
=== マルチプロセッサとスレッド ===