![](http://kouoboe.com/wp-content/themes/cocoon-master/images/man.png)
先生、スプーリングがあまりよく分からないんですけど…
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/woman.png)
確か、プリンタと接続するときに必要なのよね?
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
いや、プリンタだけじゃないんだ。
処理の遅い装置と速い装置が接続するときに必要なんだよ。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
それじゃあ今回は、スプーリングについて学んでみよう!
PCとプリンタの関係性
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
スプーリングは主記憶と、処理速度の遅い入出力装置との間で行われるんだよ。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
特にイメージしやすいのがプリンタなんだ。
だからまずは、主記憶とプリンタの仕組みを解説していくよ。
PCは印刷してほしいページがあるとき、そのページと印刷してほしいという命令をプリンタに送ります。
もし印刷してほしいページが複数あるとき、その複数のページ全てが一度にプリンタに送られます。
![スプーリングの主記憶とプリンタの仕組みの画像](http://kouoboe.com/wp-content/uploads/2023/07/2c4d26cf7d3edd815d208816dfbf5623-1024x540.jpg)
しかし実はこの時、2つ問題があります。
それは、プリンタの速度が遅いこと、そしてプリンタは一枚ずつしかコピーできないということです。
プリンタは主記憶と比べると処理がとても遅く、さらに一枚ずつしか印刷できないんですね。
困りましたね…
仕方がないので、PCは一枚ずつページを渡して、残りは持っておくことにします。
![スプーリングの従来の主記憶とプリンタの関係の画像](http://kouoboe.com/wp-content/uploads/2023/07/844bef657a13e0d647579ccb71c0d5d7-1024x540.jpg)
しかしこれだと、PCはプリンタの処理が終わるまで何もできませんよね。
パソコン全体の処理が全てストップしてしまい、かなり効率が悪いです。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/man.png)
主記憶とプリンタの処理速度に差があるから、
待ち時間が発生してしまうんですね。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
そうなんだ。
でも、そんな不便さを解消してくれるのがスプーリングなんだよ。
スプーリング
さて、上記の効率の悪さを改善するために、スプーリングという機能があります。
今までは、主記憶が次にコピーするものをプリンタに手渡ししていました。
でもスプーリングでは、主記憶は今まで手で持っていた分を補助記憶装置に書き込んでおきます。
そしてプリンタ側も、PCからではなく、補助記憶装置から次にコピーするものを受け取ります。
このおかげで、主記憶がプリンタのコピーを待つ必要がなくなるのです。
これは、イメージでいうと、「コピーするものは、まとめてそこに置いておいて」という感じの機能です。
![スプーリングの画像](http://kouoboe.com/wp-content/uploads/2023/07/114b4bf095f4b3bf607656bd56921104-1024x541.jpg)
これによって、PCがプリンタの処理を待つ必要がなくなりました!
おかげで、PCは別の作業ができるようになり、スループットが上がることになります。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/man.png)
スプーリングのおかげで、PCはプリンタを待たずに、
別の仕事に取り掛かれるようになったんですね。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
そうなんだ。便利でしょ?
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/woman.png)
スループットって何ですか?
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
スループットは、PCが行う仕事の量のことだよ。
最後に少しスループットの解説をして終わるね。
スループット
スループットは、1秒間にどれだけの仕事をできるのかということです。
単位はbps (bit per second)が主に使われます。
今回の場合、スプーリングによって待ち時間が無くなったことで、PCが仕事をすることができ、
スループットが上がります。
まとめ
スプーリングは、主記憶のような高速装置と、プリンタのような低速装置の間に置かれる。
高速装置が低速装置の仕事を補助記憶装置に書き込むことで、待ち時間が無くなる。
結果として高速装置は別の仕事ができるようになり、スループットが上昇する。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
どうだったかな?
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/man.png)
スループットってすごく便利ですね。
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/woman.png)
これがあることで待ち時間が減るから、PC全体のパフォーマンスが上がるんですね
![](http://kouoboe.com/wp-content/themes/cocoon-master/images/b-man.png)
そうなんだ。
皆のPCを陰で支えてくれてるんだよ。
練習問題
問題1
スプーリング機能の説明として,適切なものはどれか。
(出典:平成30年度 秋学期 午前 問17)
ア、あるタスクを実行しているときに,入出力命令の実行によってCPUが遊休(アイドル)状態になると,ほかのタスクにCPUを割り当てる。
イ、実行中のプログラムを一時中断して,制御プログラムに制御を移す。
ウ、主記憶装置と低速の入出力装置との間のデータ転送を,補助記憶装置を介して行うことによって,システム全体の処理能力を高める。
エ、多数のバッファからなるバッファプールを用意し,主記憶にあるバッファにアクセスする確率を上げることによって,補助記憶装置のアクセス時間を短縮する。
答)ウ スプーリングは主記憶と低速装置の間に置かれます。補助記憶装置を使うことで待ち時間が無くなり、システムの処理能力を高めます。
問題2
スプーリングの説明として,適切なものはどれか。
(出典:平成27年度 春学期 午前 問17)
ア、キーボードからの入力データを主記憶のキューに一旦保存しておく。
イ、システムに投入されたジョブの実行順序を,その特性や優先順位に応じて決定する。
ウ、通信データを直接通信相手に送らず,あらかじめ登録しておいた代理に送る。
エ、プリンタなどの低速な装置への出力データを一旦高速な磁気ディスクに格納しておき,その後に目的の装置に出力する。
答)エ スプーリングは主記憶と低速装置の間に置かれます。補助記憶装置を使うことで待ち時間が無くなり、システムの処理能力を高めます。
問題3
スループットに関する記述のうち,適切なものはどれか。
(出典:平成26年度 春学期 午前 問14)
ア、ジョブとジョブの実行の間にオペレータが介入することによってシステムに遊休時間が生じても,スループットには影響を及ぼさない。
イ、スループットはCPU性能の指標であり,入出力の速度,オーバヘッド時間などによって影響を受けない。
ウ、多重プログラミングはターンアラウンドタイムの短縮に貢献するが,スループットの向上にはあまり役立たない。
エ、プリンタへの出力を一時的に磁気ディスク装置へ保存するスプーリングは,スループットの向上に役立つ。
答)エ スプーリングをすることで主記憶の待ち時間が減り、スループットは向上します。