入出力制御方式とは?CPUとI/O装置のデータのやり取りのしかた

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

入出力制御方式とは(全体像)

CPUとI/O装置がデータをやり取りするとき、CPUがどれだけ手をかけるかで4つの方式がある。CPUが手をかけるほど、本来の計算が止まって遅くなる。

身近にたとえると、電子レンジで温めを待つやり方だ。

下にいくほどCPUの負担が軽く、速くなる。


詳しく:4方式とCPU負担の順だけ覚えれば戦える

ここが記事の心臓部。4方式を、CPU負担の重い順に並べよう。

入出力制御の4方式(CPU負担の重い順)

方式やり方CPU負担用途
プログラム制御CPUがループで「終わった?」と見張る大(低速)単純な組込み機器
割込み制御完了時に装置がCPUに知らせる一般のPC
DMA制御CPUを介さず直接転送(完了だけ通知)小(高速)現代の主流
チャネル制御専用のチャネルが並行して処理する最小メインフレーム

ここで取り違えやすいのがプログラム制御。「プログラム」という名前が能動的に見えるが、CPUがずっと見張りに張りつくので、他の処理ができず低速になる。名前にだまされないこと。

もう1つ、チャネル制御は「古い方式」と思われがちだが、今もメインフレームや大型ストレージで現役だ。

つまり、プログラム制御(遅い)→割込み→DMA→チャネル(速い・CPU負担小)の順で、CPUの負担と速さが改善していく、というわけだね。

わかりやすく言い換えると

要するに、4方式は「CPUがどれだけ手をかけるか」の違いだ。

プログラム制御 … レンジの前でずっと待つ(CPU占有・低速)

割込み制御 … 「ピー」で知らせてくれる(他の作業ができる)

DMA制御 … ロボットが運ぶ(指示と完了確認だけ・高速・現代主流)

チャネル制御 … 専属シェフに任せる(メインフレームで現役)

「プログラム制御は名前と違い低速」「チャネル制御は今も現役」だけは取り違えやすい。


試験のツボ

🔴 一番出る:4方式とCPU負担の順

①プログラム制御(重い・低速)→割込み制御(中)

②DMA制御(軽い・高速)→チャネル制御(最小)

🔴 次に出る:プログラム制御は名前と違い低速

①CPUがずっと見張りに張りつく(占有)

②他の処理ができず遅くなる

🟡 押さえると安定:DMAとチャネル

①DMAは現代の主流(CPUを介さず直接転送)

②チャネル制御は今もメインフレームで現役


よくある間違い

「プログラム制御は名前のとおり高速」→ ✗  CPUがずっと見張るので他の処理ができず、むしろ低速。

「チャネル制御は古い方式で、もう使われていない」→ ✗  今もメインフレームや大型ストレージで現役。

「DMA制御はCPUがデータを1つずつ運ぶ方式」→ ✗  DMAはCPUを介さず直接転送し、完了だけ通知する。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(4方式とCPU負担)

📝 オリジナル問題 1 4方式とCPU負担

入出力制御方式に関する次の記述のうち、正しいものはどれか。

  1. CPU負担はDMA制御が最も重く、プログラム制御が最も軽いという順になっている
  2. CPU負担はプログラム制御が重く、割込み・DMA・チャネルの順に軽くなっていく
  3. 入出力制御の方式は1種類しかなく、プログラム制御以外は存在しないものとされる
  4. どの方式もCPU負担はまったく同じで、速さにも違いはないものとされているものだ
ネトスパ
ネトスパ 解答・解説

解答は 2 である。

CPU負担はプログラム制御が重く、割込み・DMA・チャネルの順に軽くなっていくのだ。下にいくほど速くなるなるぞ。

選択肢1はDMAとプログラム制御が逆。選択肢3の「1種類」、選択肢4の「同じ」も誤りである。

選択肢判定理由
1プログラム制御が最も重い
2プログラム制御→割込み→DMA→チャネル
34方式ある
4負担も速さも違う

オリジナル問題2(プログラム制御)

📝 オリジナル問題 2 プログラム制御

プログラム制御に関する次の記述のうち、正しいものはどれか。

  1. プログラム制御はCPUがずっと見張りに張りつくため、他の処理ができず低速になる
  2. プログラム制御はCPUを介さず直接転送するため、4方式の中で最も高速とされている
  3. プログラム制御はCPUがいっさい関わらず、CPU負担がゼロになるものとされている
  4. プログラム制御は専用のチャネルが並行処理する、メインフレーム向けの方式である
ネトスパ
ネトスパ 解答・解説

解答は 1 である。

プログラム制御はCPUがずっと見張りに張りつくため、他の処理ができず低速になるのだ。名前は能動的だが遅いなるぞ。

選択肢2の「最も高速」、選択肢3の「CPU負担ゼロ」、選択肢4の「チャネル」はどれも誤りである。

選択肢判定理由
1CPU占有で低速
2直接転送はDMA
3CPUを占有する
4それはチャネル制御

オリジナル問題3(DMAとチャネル)

📝 オリジナル問題 3 DMAとチャネル

DMA制御とチャネル制御に関する次の記述のうち、正しいものはどれか。

  1. DMA制御はCPUがずっと見張る方式で、チャネル制御はもう使われていないものだ
  2. DMA制御もチャネル制御もCPU負担が最も重く、4方式で最も遅いものとされている
  3. DMA制御はCPUを介さず直接転送する現代の主流、チャネル制御は今も現役である
  4. チャネル制御は単純な組込み機器専用で、メインフレームには使えないものとされる
ネトスパ
ネトスパ 解答・解説

解答は 3 である。

DMA制御はCPUを介さず直接転送する現代の主流、チャネル制御は今もメインフレームで現役なのだ。どちらもCPU負担が軽いなるぞ。

選択肢1の「DMAは見張る」、選択肢2の「最も重い」、選択肢4の「組込み専用」はどれも誤りである。

選択肢判定理由
1DMAは直接転送・チャネルは現役
2CPU負担は軽い
3DMAは主流・チャネルは現役
4チャネルはメインフレーム向け

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る