OSの5大機能
経営情報システム 第6回
「ブラウザのタブを数十個開きながら、裏で音楽をストリーミング再生し、さらに重いファイルのダウンロードまで同時に行っているとします」。動画は、そんな身近な場面から始まります。このページでは動画の流れにそって、OSの主な機能であるジョブ管理、タスク管理、ユーザー管理、記憶管理、入出力管理を、図や設例を交えてまとめました。まず動画を聞いて、あとからここで復習するのがおすすめです。
ブラウザも音楽もダウンロードも、なぜ止まらない?
ブラウザのタブを数十個開き、裏で音楽をストリーミング再生しながら、重いファイルのダウンロードまで同時に走らせている。普通に考えれば、コンピューターが煙を上げてもおかしくない状況です。動画は、そうならない理由を、冷静で完璧な官僚組織のようなシステムが途方もない数の交通整理を瞬時にこなしているから、と語ります。その正体が、OS(オペレーティングシステム)です。
OSはコンピューター全体を管理し、制御するための機能を持っています。テキストの字面だけを追うと、無味乾燥な用語の羅列に見えがちです。動画がOSの主な機能として挙げるのは、次の5つです。
- ジョブ管理:ユーザーから見た仕事を、処理の単位に分けて実行させる。
- タスク管理:細かく分かれた処理の状態と、実行の順番を管理する。
- ユーザー管理:誰がどこまでコンピューターを使えるかを決める。
- 記憶管理:メモリにプログラムを効率よく置き、足りなければ工夫する。
- 入出力管理:周辺機器をスムーズに動かす。
動画は、これらが私たちが現実のビジネス現場で行っている組織のマネジメント、つまり限られた資源の最適配分そのものだと言います。丸暗記ではなく、システム設計の思想から理解していこう、というのがこの回の姿勢です。
(補足:動画の字幕では、講師が「ジョブ管理、タスク管理、ユーザー管理、記憶管理、そして入出力管理などがある」と述べ、聞き手が「5つですね」と受けています。診断士試験の教材でこの数え方が標準かどうかは、このページでは確認していません。名古屋大学の講義スライド「第4章 オペレーティングシステム」は、OSの機能をプロセス(タスク)管理・ファイル管理・メモリ(記憶)管理・入出力管理の4つで示し、ネットワーク管理・ユーザ管理・運用管理は「その他の管理」として並べています。機能の数え方や分け方は、資料によって違います。ここでは動画の5つの順に整理しますが、ファイルの読み書きを受け持つ「ファイル管理」が別にあることも頭の隅に置いておくと安心です。)
ジョブ管理:仕事を「ジョブ」「ジョブステップ」「タスク」に分ける
最初のテーマは、コンピューターに仕事を投げたときに何が起きるのか。日常会話では混ぜて使いがちなジョブとタスクは、コンピューターの世界では視点が違います。動画の説明は次のとおりです。
- ジョブ:ユーザーから見た、コンピューターの処理の単位。
- ジョブステップ:ジョブを終えるために必要な、一つひとつの要素に分けたもの。
- タスク:コンピューター内部での、処理の単位。
動画のたとえ:コース料理の注文
聞き手が出した例が、そのまま使われます。コース料理を注文するのが1つのジョブ。その注文を達成するための、スープを温めるといった工程がジョブステップ。さらに、野菜を切る、肉を焼くといった内部の細かい処理がタスクです。講師も「すごく良い例え」と受けています。
そのうえで、ジョブ管理とは、動画の説明では、ジョブステップに必要なハードウェアを割り当て、コンピューター内部の処理の単位であるタスクにまで分解して実行させることです。見えている大きな仕事と、内部の細かい処理が、はっきり分かれています。
(補足:名古屋大学の講義スライドは、ジョブを「人間がOSに与える仕事単位」、タスクを「OSの下での内部処理の単位」と整理し、1つのジョブが複数のタスクに分割されることもある、としています。一方、ジョブステップの定義は、一次資料では確かめられませんでした。ここは動画の説明として読んでください。)
ジョブとタスクって、日常会話ではごちゃ混ぜに使われますよね。コンピューターの世界では、どう区別されているんでしょうか。
ユーザーから見ている大きな単位がジョブ、コンピューターの内部で動く細かい単位がタスク、と視点で分けると整理しやすいです。
タスク管理:3つの状態とディスパッチング
細かく分けられた大量のタスクを整理するのがタスク管理です。これは、タスクの状態や実行を管理することで、タスクの状態は大きく3つあります。
| 状態 | 動画の説明 | 動画の例 |
|---|---|---|
| 実行状態 | 処理のため | 今まさに動 |
| 実行可能状 | CPUが割 | 準備は万端 |
| 待ち状態 | 入出力の終 | キーボード |
待ち状態のタスクは、CPUが空いていても進められません。まだデータが届いていないからです。そこで、CPUが空いたときは、実行可能状態のタスクを優先して使用権を与える必要があります。動画は、CPUが空いたときに実行可能なタスクへ使用権を与えることをディスパッチングと呼びます。聞き手は「号令をかけるみたいな響きですね」と感想を述べていました。
(補足:この図は動画にはなく、名古屋大学の講義スライド(タスクの状態遷移)をもとに描きました。実行中のタスクが入出力命令を出すと待ち状態になり、入出力が終わると、待ち状態から実行可能状態へ戻ります。実行状態へ直接は戻りません。また、実行状態のタスクは、タイムスライスを使い切ったときや、より優先順位の高いタスクが実行可能になったときに、実行可能状態へ移ります。)
CPUの使わせ方:優先度方式とラウンドロビン方式
使用権の決め方にはいくつか方式があります。動画が挙げたのは、代表的な次の2つです。
- 優先度方式:優先度の高い順に使用権を与える。重要なものから先に動く。
- ラウンドロビン方式:平等に、順番に使用権を与える。
ラウンドロビン方式では、一定時間が経つと、他のタスクにCPUの使用権を譲ります。譲ったタスクは、処理の待ち行列の最後に並び直して、また順番を待ちます。聞き手は「なんか効率悪そうに聞こえちゃいますけど」と引っかかりますが、講師はこう答えます。
途中で譲っちゃうと、なんだか効率が悪そうですよね。
一見そう見えます。でも、これがあるから、1つの重いタスクがCPUを独占するのを防げます。ブラウザも音楽も同時に動いているように見せられるんです。
細かく時間を区切って高速で回しているから、人間には全部が同時に動いているように錯覚するんですね。
数字で見てみましょう(動画にはない、このページの設例です)。タスクA・B・Cの処理時間がそれぞれ5ms・3ms・4ms、1回の持ち時間が2msとします。3つとも時刻0から実行可能で、切り替えにかかる時間は無視します。
A、B、C、A、B、C、Aの順に回ると、短いBが9ms、Cが11ms、重いAが12msで終わります。重いAが占有していたら、BやCはAが終わる5msまで一切動けません。持ち時間で区切ることで、全員が少しずつ前に進みます。
(補足:ラウンドロビンの「一定時間」はタイムスライスと呼ばれます。名古屋大学の講義スライドは、タイムスライスを「その時間を経過すると強制的に実行可能状態にする機能」とし、多くのプロセスに均等にプロセッサを割り付けられる、と説明しています。ラウンドロビン方式を「あらかじめ決めた一定時間だけ実行し、終わらなければ待ち行列の末尾に置く方式」とする解説は、組込みOSを扱うMONOistの記事にもあります。)
動画が試験向けに強調した区別
- 動画では、ジョブはユーザーから見た処理の単位、タスクはコンピューター内部の処理の単位、と区別して説明しています。
- 動画では、タスクの状態を実行・実行可能・待ちの3つとし、CPUが空いたときに実行可能状態のタスクへ使用権を与えることをディスパッチングと説明しています。
- 動画が挙げた使用権の決め方は、優先度方式とラウンドロビン方式です。
出題実績は、このページでは確認していません。動画が強調した点だけを並べています。
ユーザー管理:誰がどこまで使えるか
タスクが整理されたら、次は「誰がどこまでコンピューターを使えるか」という問題です。ユーザー管理は、動画の説明では、1台のコンピューターに複数のユーザーアカウントを作成する機能のことです。それだけでなく、次のような管理も含みます。
- アカウントごとにアクセス権限を設定する。このファイルは見られるが、あのフォルダーは開けない、といった具合です。
- 補助記憶装置上で利用できる記憶領域の範囲を、アカウントごとに割り当てる。使える記憶容量を制限する、ということです。
聞き手は、これを「誰か1人が会社のハードディスクをパンパンにしちゃわないように制限するわけだ。資源を賢く分け合うシステムですね」と受け止めていました。
記憶管理:仮想記憶方式で物理メモリの限界を超える
資源を分け合うという意味で、もう1つ重要なのが記憶管理です。メモリへプログラムを効率よく配置する機能ですが、最近のアプリは重く、メモリの容量が足りなくなることがあります。そこで出番となるのが仮想記憶方式で、メモリの容量を超えるプログラムやデータにも対応できるようにする機能です。
物理的なメモリの量を超えられちゃうんですか?
そうなんです。今すぐ使わないデータを一時的に補助記憶装置などへ入れてしまい、必要なものだけをメモリに置きます。これを入れ替えているんです。
物理的な限界を、ソフトウェアの工夫で超えているんですね。
動画は、この入れ替えを「高速で入れ替えている」と表現します。(補足:入れ替えが多発しすぎると、かえって性能が落ちます。名古屋大学の講義スライドでは、主記憶に収まらないページへ頻繁にアクセスしてページの入れ替えが輻輳する状態をスラッシングと呼び、対策として主記憶を増やすことなどを挙げています。同じ資料では、プログラムをページに分け、使うページを主記憶に置いて残りを補助記憶装置に追い出す、そのやりとりをページングと呼んでいます。図の「ページイン・ページアウト」はこの資料の用語で、動画には出てきません。)
入出力管理:デバイスドライバ、プラグアンドプレイ、スプーリング
最後は、周辺機器をスムーズに操る入出力管理です。入出力装置を管理する機能で、動画はここで3つの言葉を出します。
- デバイスドライバ:周辺機器を動作させるための専用プログラム。入出力装置は、このソフトウェアによって制御される。
- プラグアンドプレイ:周辺機器を接続するとき、特別な設定をしなくても、差し込むだけで使える機能。
- スプーリング:出力処理を高速化する方法。
聞き手が出したのは、こんな疑問でした。昔はデバイスドライバをCD-ROMでインストールしていたのに、最近はUSBのマウスを刺すだけで使える。あれはなぜか。答えがプラグアンドプレイです。コンピューターに新しいハードウェアを追加すると、OSが自動的に検出して、デバイスドライバの組み込みや設定まで行います。聞き手はこれを、ユーザーが気づかないうちに裏で準備してくれるアシスタントにたとえ、講師も「本当に有能なアシスタント」と応じます。
(補足:WindowsのPlug and Playマネージャーについて、Microsoftの資料は、デバイスの検出と列挙、稼働中に追加されたデバイスの処理、一致するドライバパッケージでの新しいデバイスのインストールを受け持つと説明しています。動画の説明と矛盾しません。)
さらに処理を速くするのがスプーリングです。印刷機のように動作の遅い周辺機器が、処理の間ずっとCPUを占有すると、他の処理ができなくなってしまいます。そこで、データを一時的にディスクなどの領域に置き、そこで処理をさせることで、CPUを解放します。聞き手の言葉では、CPUがプリンターに直接渡すのではなく、いったんバッファ領域という一時保管箱にデータをドンと置き、CPUは「あとはよろしく」と言ってすぐ別の仕事に戻る、というイメージです。
動画のたとえ:遅いレジと店長
動きの遅いレジに店長がずっとつきっきりになり、他のお客様の対応が全くできなくなる状態。それが、スプーリングなしの状態です。保管箱にデータを預けてしまえば、店長(CPU)はレジから離れて、他の仕事を続けられます。
(補足:動画は「ディスク等のバッファ領域」「一時保管箱」と説明します(「バッファ領域」の語は字幕で聞き取りが不確実な箇所です)。名古屋大学の講義スライドは、プリンターのような低速な装置ではバッファがすぐ一杯になって次の出力データを作れないため、入出力データを一時的に磁気ディスク装置に格納し、CPUはディスクをあたかも高速な入出力装置として扱う、と説明しています。これをスプーリングと呼びます。大学資料は保管先が磁気ディスク装置であることを明示しており、動画の「ディスク等」の説明と矛盾しません。)
まとめ:バラバラの用語ではなく、1つの巨大なシステム
動画は、ジョブ管理とタスク管理で仕事を細かく分けて時間を割り当て、ユーザー管理と記憶管理で権限と空間を最適に配分し、入出力管理ではプラグアンドプレイとスプーリングで周辺機器とのやり取りを高速化する、と振り返ります。見えないところで、これだけ複雑な交通整理が行われているわけです。
| 機能 | 受け持つこ | 動画のキー |
|---|---|---|
| ジョブ管理 | ジョブを分 | ジョブ・ジ |
| タスク管理 | タスクの状 | 実行・実行 |
| ユーザー管 | アカウント | アカウント |
| 記憶管理 | メモリへプ | 仮想記憶方 |
| 入出力管理 | 周辺機器を | デバイスド |
この回の押さえどころ
- OSの機能は、バラバラの用語ではなく、1つの巨大なシステムを効率よく動かすためのルールとしてつながっている。
- ジョブはユーザーから見た単位、タスクはコンピューター内部の単位。タスクの状態は、実行・実行可能・待ちの3つ。
- CPUが空いたとき、実行可能なタスクへ使用権を与えるのがディスパッチング。決め方には、優先度方式やラウンドロビン方式がある。
- 仮想記憶方式は、メモリ容量を超えるプログラムやデータに対応する機能。
- プラグアンドプレイは差すだけで使える機能。スプーリングは、データを一時的に置いてCPUを解放し、出力処理を速くする方法。
動画の最後は、リスナーへの問いかけで締めくくられます。ラウンドロビン方式のように、時間を区切ってタスクを回す手法。スプーリングのように、一時的な保管場所を作って自分の負担を減らす工夫。これらはあなたの日常業務やチームマネジメントに、どう応用できるでしょうか。コンピューターの賢い仕組みから、私たちの働き方のヒントが見つかるかもしれません。ぜひ考えてみてください。
動画で聞く
続けて読む
- 第1回 RAMとROMの分類経営情報システム・コンピュータ基礎 001
- 第2回 記憶装置とメモリ管理経営情報システム・コンピュータ基礎 002
- 第3回 記憶装置とCPU・GPU経営情報システム・コンピュータ基礎 003
- 第4回 USB規格とコネクター経営情報システム・コンピュータ基礎 004
- 第5回 バスとインターフェース経営情報システム・コンピュータ基礎 005
- 第7回 画像形式と音声デジタル化の仕組み経営情報システム・コンピュータ基礎 007
- 第8回 ソフトウェアの分類と階層構造経営情報システム・ソフトウェア 001
- 第9回 機械語からJavaへの進化の歴史経営情報システム・ソフトウェア 002
- 第10回 プログラミング言語の正体経営情報システム・ソフトウェア 003
- 第11回 ファイル分類と文字コード経営情報システム・ソフトウェア 004
- 経営情報システムのWebテキスト一覧同じ科目の48本を一覧・検索
- 中小企業診断士 1次の講座トップ科目別プレイリスト・人気の講義・ファイナルペーパー

