パソコンもスマホも、電源を入れた瞬間から裏方で働き続けるソフトがあります。それが「OS(オペレーティングシステム)」。アプリを動かし、メモリをやりくりし、機器をつなぐ司令塔です。この記事ではOSの役割、プロセスの並行実行、そして仮想記憶の仕組みを、つまずきやすいポイントごとに整理します。
OSって、結局WindowsとかMacのことだよね? なんかアプリと何が違うのかピンとこないんだよなあ。
いい疑問ね。
OSは、ハードウェアとアプリの間に立つ仲介役なの。
アプリが直接CPUやメモリを触るのではなく、OSにお願いして動かしてもらうのよ。
仲介役…えっと、お店でいう店員さんみたいな感じですかぁ?
ふふ、まさにそう。
お客さん(アプリ)が『この機械を使いたい』と言ったら、店員(OS)が裏の機械(ハードウェア)を操作して渡してくれる。
お客さんは機械の仕組みを知らなくていいのよ。
補足すると、OSの主な役割は5つです。
プロセス管理、メモリ管理、ファイル管理、入出力管理、それにユーザ管理やセキュリティですね。
マジか、そんなに働いてんの。
完全に縁の下の力持ちじゃん。
そうなのよ。
中でも試験でよく問われるのが、複数のアプリを同時に動かすマルチタスク。
実はCPUの1つのコアは、一度に1つの命令しか処理できないの。
えぇっ、1つだけ…? でも音楽を聴きながらレポート書けてますよぉ?
そこがポイントです。
CPUの時間をごく短く区切って、音楽→文書→音楽…と高速で切り替えているんです。
これをタイムスライス(時分割)といいます。
速すぎて、人間には同時に見えるだけですね。
パラパラ漫画みたいに、切り替えが速いと動いて見えるってことか。
なるほどね。
いい例えね。
その『どのプロセスにCPUを渡すか』を決めるのがプロセススケジューリング。
代表的なのは到着順のFCFS、一定時間ずつ順番に回すラウンドロビン、緊急度で決める優先度方式よ。
ラウンドロビンは、みんなで順番に少しずつCPUを使う方式です。
1人が長居しないので、対話的な操作の待ち時間が短くなるのが利点ですね。
順番こなら平等で安心ですぅ。
…ところで先生、もう一つよく聞く『仮想記憶』って何なのぉ?
よくぞ聞いてくれました。
仮想記憶は、実際の物理メモリより大きなメモリがあるかのようにアプリに見せる仕組みよ。
は? 無いものをあるように見せるって、ちょっと詐欺じゃん。
どうやんの?
種を明かすと補助記憶(SSDやHDD)を間借りしているんです。
メモリを一定サイズの区画に分けて管理するページングを使い、今すぐ使わないデータは補助記憶へ追い出します。
この入れ替えがスワップです。
なるほどぉ。
机が狭くなったら、今使わない本を一旦本棚にしまう感じですねぇ。
ほのかちゃん、その例えは完璧よ。
机がメモリ、本棚が補助記憶。
必要になったらまた本棚から取り出す。
ただし取り出すのに時間がかかるのが弱点なの。
そして本の出し入れが多すぎて、肝心の作業がほとんど進まなくなる状態をスラッシングというのよ。
メモリ不足のときに起こって、極端に遅くなるわ。
あー、だからメモリ(RAM)を増やすとサクサクになるのか! 机が広けりゃ本をしまわなくて済むもんね。
その通りです。
最後にOSの種類も押さえましょう。
UNIX系(LinuxやmacOS)、Windows系、そして家電や車に組み込まれ応答時間を保証するリアルタイムOSがあります。
整理するわね。
OSは仲介役で、CPUを時分割して複数の仕事を並行処理する。
仮想記憶は補助記憶を借りてメモリを広く見せ、入れ替えがスワップ、多発するとスラッシング。
この流れで覚えれば試験はばっちりよ。
確認クイズ
メインメモリが不足したとき、しばらく使わないデータを補助記憶に退避させ、必要になったら戻す動作を何というか。
- ページング
- スワップ
- キャッシング
- スプーリング
こたえを見る
正解: 2. スワップ
正解はスワップ。物理メモリが足りないとき、使っていないデータを補助記憶(SSD/HDD)に退避し、必要なときに戻す入れ替え動作です。ページングはメモリを固定長のページに分割して管理する方式そのものを指し、退避動作の名前ではありません。キャッシングは高速な記憶に頻用データを一時保持して速度を上げる技術、スプーリングは印刷データなどを一旦補助記憶にためて出力待ちを処理する仕組みで、いずれも別概念です。