OSとプロセスとは?タスク管理の仕組みをやさしく解説

OSとプロセスとは?タスク管理の仕組みをやさしく解説

OSとプロセスの仕組みを知りたい基本情報受験者のイメージ
「OSって、結局なにを管理しているの?」
「プロセスとスレッドは、何がどう違う?」
「同時に動いて見えるのは、どんな仕組み?」

アプリのアイコンをダブルクリックした瞬間、裏側ではOSが動き出します。OSとは、CPU・メモリ・アプリを裏で束ね、コンピュータ全体を回す基本ソフトです。プロセス・スレッド・スケジューリング・仮想記憶——この記事の主役は、どれもこの「回し方」の話です。

あなたの目には何も映りませんが、その一瞬にOSは複数の仕事を同時に片づけています。

 

そこで本記事は、1つのアプリが起動してから閉じるまでを追いながら、OSが各場面で何をするかを順に開きます。基本情報 科目A テクノロジ系のOS設問に、そのまま効きます。

 

1. アプリを開いた瞬間、OSが動き出す

OSが裏でコンピュータ全体を束ねるイメージ

あなたがアイコンをダブルクリックすると、OSはまずそのアプリを動かすためのプロセスを1つ用意し、必要なメモリを割り当て、CPUに順番を回します。この一連を仕切るのがOSの仕事です。担うのは大きく4つ、プロセス管理・メモリ管理・入出力管理・ファイル管理。その中核プログラムをカーネルと呼びます。

 

たとえるなら、空港の管制官です。滑走路は1本しかなくても、離陸したい便・着陸したい便を管制官が順番にさばくから、全体が滞りなく回る。OSも、CPUという1本の滑走路に、動きたいアプリを次々と割り込ませてさばく管制官の役です。

 

ここで押さえたいのは、アプリは自分で勝手にCPUやメモリを奪えないという点です。あらゆる要求はいったんOSを通す。だからこそ、複数のアプリが互いを壊さずに共存できます。ハード側の前提となるCPUとメモリの役割分担は CPUとメモリの違いとは で押さえると、OSが「何を」さばいているのかがつながります。

 

2. プロセスとスレッドは、何がどう分かれるのか

プロセスとスレッドの関係を整理するイメージ

起動したアプリの実体がプロセスです。プロセスは自分専用のメモリ空間を持ち、他のプロセスからは干渉されません。そのプロセスの中で、実際の処理を動かす細かい単位がスレッドです。1つのプロセスは複数のスレッドを内側に抱えます。

 

両者を分ける核心は、メモリを分けるか、共有するかの1点です。表で押さえてください。

 

観点 プロセス スレッド
メモリ空間 独立して持つ 同じプロセス内で共有する
切り替えコスト やや重い 軽い
互いの影響 1つ落ちても他は無事 共有データの壊し合いに注意
包含関係 スレッドを内側に持つ プロセスに属する

 

ブラウザを思い浮かべると腑に落ちます。タブごとにプロセスを分ける設計なら、1つのタブが固まっても他のタブは生き残る。その1タブの中で、画像の読み込みと画面の描画が別々のスレッドとして同時に進みます。分けることで安全を、共有することで軽さを取る——この使い分けが設計の勘所です。

 

複数のスレッドが同じデータを同時に書き換えると、結果が壊れる競合状態が起きます。これを防ぐのが排他制御(ロック)やセマフォです。「スレッドは軽い代わりに、共有データの管理という宿題が付く」——この対で覚えると、関連語がひとまとまりになります。

 

3. 1つのCPUで複数を同時に動かす仕組み

CPUがタスクを高速に切り替えるイメージ

あなたが「アプリを同時に動かしている」と感じるその体感の正体は、じつは錯覚です。CPUのコアは、ある瞬間には1つの処理しか進められません。高速で切り替えて、同時に見せているだけです。この切り替えの順番を決めるのがタスクスケジューリングで、代表的な3方式が科目Aで問われます。

 

方式 並べ方 強み / 弱み
FCFS(到着順) 来た順に処理 公平/長い処理が前だと後続が待つ
SJF(最短時間順) 処理が短い順 平均待ち時間が短い/長い処理が後回しに
ラウンドロビン 一定時間で順繰り 応答が速い/切り替えの手間が増える

 

言葉だけだと差が見えにくいので、FCFSとラウンドロビンで処理の進み方がどう変わるかを図にしました。短い処理Bが、長い処理Aの後ろで待たされるか、割り込めるかの違いです。

 

FCFS(到着順) 処理A(長い) B Bはずっと待たされる ラウンドロビン(順繰り) A B A B A 交互に進むのでBが早く終わる

 

スケジューリングの狙いは、CPUを遊ばせず、応答性と公平性を両立することです。FCFSは公平だが待ち時間が読みにくい、SJFは待ち時間を最短化するが長い処理が飢える、ラウンドロビンは応答が均等——それぞれ何を優先した方式かで捉えると、丸暗記が要りません。

 

4. メモリが足りない時、OSは何をするか

仮想記憶で物理メモリより大きな空間を見せるイメージ

アプリを何本も開くと、物理メモリ(主記憶)はすぐ足りなくなります。それでも動き続けられるのは、OSが仮想記憶という手品を使うからです。物理メモリより大きな空間があるように見せかけ、あふれた分を補助記憶(SSD/HDD)へ一時的に逃がします。

 

この出し入れの単位がページで、ページ単位で物理メモリと補助記憶を入れ替える方式がページングです。あなたが何本もアプリを開いても破綻しないのは、この仕組みのおかげです。物理メモリに無いページが要求されると、補助記憶から読み込むページフォルトが発生します。ページフォルト自体は正常な動作で、故障ではありません。

 

ただし、逃がす作業が多すぎて、処理よりページの出し入れに時間を食う状態をスラッシングと呼びます。「メモリを足したら急に軽くなった」体験の裏側は、たいていこれです。仮想化の発想そのものは クラウドコンピューティングとは でも土台になっており、OSの仮想記憶はその原型にあたります。

 

5. 試験でつまずく、よくある取り違え

OS分野の頻出の引っかけを整理するイメージ

ここまでの知識は、科目Aでは決まった角度で問われます。落としやすいポイントを、先に3つ潰しておきましょう。

 

  • プロセスとスレッドの包含関係: 並列に見えても、スレッドはプロセスの内側。独立したメモリ空間を持つのはプロセスの方
  • ページフォルトとスラッシングの混同: ページフォルトは正常な読み込み、スラッシングは出し入れ過多で処理が進まなくなる行き詰まり
  • スケジューリング方式の目的: 「平均待ち時間が最短」ならSJF、「対話処理に向く」ならラウンドロビン、と目的から逆引きする

 

この3点は、用語の意味を覚えるだけでは取りこぼします。あなたに効くのは「独立か共有か」「正常か行き詰まりか」「何を最優先した方式か」という判断の軸を持つことです。設問が言葉を言い換えてきても、あなたが軸さえ握っていれば正解の側に立てます。OSは科目Aの中でも用語が絡み合う分野なので、この記事の順路——起動から終了までの流れ——をそのまま思い出せば、関連語が一本の線でつながります。

 

次のステップ

科目A テクノロジ系の全体像から先に地図を持ちたいなら、基本情報技術者試験の試験範囲と勉強法ガイド でOSがどのあたりに位置するかを確認しておくと、学習の順番に迷いません。

読んだ内容を得点に変える近道は、実際の設問に手を動かすことです。基本情報技術者 科目A テクノロジの問題集 で、OS関連の問われ方に慣れておきましょう。