【OS】並行処理と並列処理
はじめに
OSを勉強していると並行処理と並列処理というよく似た言葉が出てきます。
私も最初はこの2つの違いがよくわからなかったのですが、実は明確な違いがあることがわかりました。
今日はできるだけわかりやすく説明してみたいと思います。
基本概念: 並行処理と並列処理の違い
並行処理(Concurrency)とは
並行処理とは、1つのCPUコアで複数の処理を少しずつ交互に切り替えて進める方法です。
処理が小刻みに切り替えられることで、ユーザーから見ると、複数の処理が同時に進んでいるように見えます。
具体的な仕組み
CPUが「動画再生 → ファイルダウンロード → 動画再生 → ...」のように、高速で処理を切り替えます。処理は1つずつ順番にしか行われないが、非常に速いため「同時進行」のように見えるのが特徴です。実際には1つのCPUコアで順番に処理しているだけなのです。
並列処理(Parallelism)とは
並列処理とは、複数のCPUコアを使って、物理的に同時に複数の処理を行なうことです。
最近のパソコンやスマートフォンのCPUには複数のコアが搭載されており、それぞれが別々のタスクを同時に処理できます。
具体的な仕組み
コアAで動画再生、コアBでファイルダウンロードを同時に行なう。並列処理は「実際に同時に複数の処理をする」方法です。高性能なCPU・マルチコア環境が必要になります。
例: 動画を再生しながらファイルのダウンロードを行なう場合
-
並行処理:古いシングルコアCPUのPCでは、OSがミリ秒単位で「動画再生」と「ファイル転送」を切り替えて実行します。
-
並列処理:新しいマルチコアCPUのPCでは、1つのコアで動画再生、別のコアでファイル転送を同時に処理できます。
それぞれの利点と欠点
「並列処理の方が優れている」と思われるかもしれませんが、必ずしもそうではありません。
並列処理を活用するには、適切なハードウェアとソフトウェアのサポートが必要です。
一方、並行処理は単一のCPUコアでも実現可能で、より広範な環境で利用できます。
実際のOSでは、この2つの技術を状況に応じて巧みに組み合わせることで、ユーザーにシームレスなマルチタスク環境を提供しているのです。
OSはこれらの技術を駆使して、限られたリソースを最大限に活用しているのです。
まとめ
「並行処理」と「並列処理」は、どちらも複数の処理を効率よく進めるための重要な技術ですが、その仕組みには明確な違いがあります。
・並行処理は、1つのCPUコアでタスクを高速に切り替えて「同時進行風」に見せる技術
・並列処理は、複数のCPUコアを使って“実際に同時”に処理を進める技術
見た目は似ていても、動き方や前提条件は大きく異なります。
現代のOSはこの2つをうまく使い分け、ユーザーにとって快適なマルチタスク環境を実現しています。
抽象的に感じられるかもしれませんが、日常の作業やPCの動きと照らし合わせて考えることで、イメージがつかめるようになっていくでしょう。一つ一つ丁寧に動作原理を理解していきましょう!
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion