オーバーヘッドと多重度(overhead / multiprogramming level)

分類
テクノロジ系 ソフトウェア
出る試験
基本情報応用情報
重要度
★★★☆☆

本来の仕事とは別にかかる手間がオーバーヘッド。同時に抱えている処理の数が多重度。

もう少し詳しい説明

この2つは、セットで出題されます。多重度を上げても性能が思ったほど上がらない理由が、オーバーヘッドにあるためです。

オーバーヘッド:目的ではない手間

オーバーヘッドは、やりたいことそのものではないのに、やらないと進まない手間です。

引っ越しにたとえます。荷物を運ぶのが目的です。けれども実際には、段ボールを組み立て、荷物を詰め、ガムテープを貼り、着いたら開けて中身を出す作業が入ります。このあいだ、荷物を運ぶ作業は1つも進んでいません。

コンピュータの中にも、同じものがいくつもあります。

どれも無駄ではありません。けれどもそれ自体は成果を生みません。

ゼロにはできないところが要点です。減らす工夫はできますが、無くすと仕組みが成り立ちません。

多重度:同時に抱えている数

多重度は、同時に実行状態(いまCPUをもらって動いている状態、またはその順番を待っている状態)にある処理の数です。多重度が3なら、3つの処理を抱えている状態を指します。

ここで言う「同時」は、本当に同時に走っているという意味とは違います。プロセッサ(計算と命令の実行を受け持つ部品。CPUと同じものを指します)が1つなら、ある瞬間に進められるのは1つだけです。細かく切り替えて、交互に少しずつ進めます。これを多重プログラミングと呼びます。

なぜ多重にするのか

1つずつ順番に片づけたほうが、切り替えの手間が無くて済みそうに見えます。それでも多重にするのは、処理が待っている時間が長いためです。

プログラムは、ディスクから読む、通信の返事を待つ、人の入力を待つといった場面で止まります。この待ちのあいだ、プロセッサは何もしていません。

片づいた仕事の量0204060701234567同時に走らせた数(多重度)素直に伸びた場合実際
破線は「2本なら2倍、3本なら3倍」と素直に伸びた場合の線です。実線が実際に片づいた量です。はじめのうちは伸びますが、4本あたりで伸びが止まり、そこから先は増やすほど下がっています。下がる分がオーバーヘッド(切り替えや順番待ちに取られる手間)です。

そこで、待っているあいだに別の処理を進めます。遊んでいた時間が仕事に変わるので、全体で片づく量が増えます。

上げすぎると、逆に減る

上の図の実線を見てください。途中から下がっています。 試験で問われるのは、この形です。

多重度を上げるほど、次の3つが増えていきます。

とくに主記憶が足りなくなると、仮想記憶(主記憶が足りないぶんを補助記憶で補い、大きく見せる仕組み)の入れ替えばかりが起きて、仕事が進まなくなります。この状態をスラッシングと呼びます。

ちょうどよい多重度がある、というのがこの図の読み方です。多ければよいのでも、少なければよいのでもありません。

1件あたりの速さは、別の話

全体で片づく量と、1件あたりの速さは、同じ方向に動きません。

多重度を上げると、1つの処理から見れば順番待ちが増えます。自分が止められて、ほかの処理が進む時間が挟まるためです。

全体の量は増えても、1件あたりは遅くなることがあります。 ターンアラウンドタイム(依頼を出してから結果が全部出そろうまでの時間)が伸びるのは、このためです。

同じ「多重度」という別の言葉

ここは混ざりやすいところです。多重度という語は、試験の中で2か所に出てきます。

どこで出るか何を指すか
ソフトウェア(この項目)同時に実行状態にある処理の数
クラス図線の両端に書く、つながる相手が何個あるか

綴りも読みも同じですが、中身は関係ありません。問題文がプロセッサや主記憶の話なら前者、図や矢印の話なら後者です。

試験ではこう出る

科目A(旧・午前)のソフトウェア分野(OSの働き)で出ます。

いちばん多いのは、多重度を上げたときにどうなるかを選ばせる問題です。「ある点を超えると、かえって処理量が減る」が答えの向きになります。グラフを見せて、頂点のある曲線を選ばせる形もあります。

オーバーヘッドは、単独では用語の説明を選ばせる形で出ます。「本来の処理に直接寄与しない、付随的な処理の負荷」という表現が答えになります。

誤答として並ぶのは、比例して増え続けるという選択肢です。比例するなら、多重度をいくらでも上げればよいことになります。そうならない理由がオーバーヘッドだと押さえてください。

応用情報では、スラッシング(入れ替えばかりが起きて仕事が進まない状態)と結び付けた形まで出ます。多重度を上げる→主記憶が足りなくなる→入れ替えが増える、という順でつながっています。

関連する用語

プロセスとスレッド
実行の単位。切り替えるたびにオーバーヘッドがかかる
ターンアラウンドタイムとレスポンスタイム
速さの測り方。多重度を上げすぎると、どちらも悪くなる
仮想記憶
主記憶より大きく見せる仕組み。多重度を上げすぎるとスラッシングが起きる
マルチプロセッサ
プロセッサを複数並べる構成。こちらも台数に比例しては速くならない
クラス図と多重度
同じ「多重度」という語だが、こちらは図の中の個数を表す別の意味

ミニクイズ

1つのプロセッサで複数の処理を切り替えながら実行するとき、多重度(同時に実行状態にある処理の数)を上げていった場合の説明として、最も適切なものはどれか。

正解は 2番:ある程度までは処理できる量が増えるが、切り替えなどの手間が増えるため、上げすぎると逆に減る

多重度を上げると、入出力の待ち時間にほかの処理を進められるので、はじめのうちは処理できる量が増えます。ただし切り替えの手間や主記憶の取り合いが増えていき、ある点から先は上げるほど減ります。この「本来の仕事ではない手間」がオーバーヘッドです。比例してどこまでも増えることはなく、まったく変わらないわけでもありません。1件あたりの所要時間については、多重度を上げると順番待ちが増えるため、短くなるとは限りません。

間違えた用語の復習リストを見る →

この分野をまとめて解く → システム構成要素とソフトウェアのミニテスト(全28問)

最終更新:2026-11-05