INTERACTIVE LAB / COMPUTER SYSTEMS
OSの仕事.
アプリを動かす。
その裏で、OSは何をしている?
アプリを起動すると自動で再生。一定の速さで進み、「一時停止」でじっくり観察できます。表示を切り替えても、ほかのアプリは起動したままです。
01 アプリを操作する
表示は1つだけ02 CPUを見る
1コア / 時間分割処理する仕事を待っています
1回の割り当ては最大3 tickCPUの実行履歴
過去 → 現在バックグラウンドで動くアプリ
起動済み・終了不可
03 メモリを見る
448 / 1024 MB 使用中起動するとメモリを確保。CPUが必要なときだけ、OSが順番に時間を割り当てます。
プロセスの状態・イベントログを見る
実行中=CPUを使用 実行待ち=CPUの順番待ち イベント待ち=入力・通信・音声出力などを待つ メモリ待ち=必要な空き領域を待つ
| プロセス | 起動 | 表示 | 状態 | メモリ |
|---|
イベントログ 新しい順 / 直近80件
試し方と、このモデルの単純化
- Webを起動すると最初のページを読み込み始める。「受付 → 通信待ち → 描画 → 完了」とCPUの動きを比べ、完了後も表示が続くことを確かめる。
- 音楽を起動すると最初の曲の再生が始まる。写真加工を起動し、画像の読み込みと展開が終わったら加工を始める。CPUが写真を処理していても、音声バッファが減りながら再生が続くことを確かめる。
- 最初から起動している通知アプリ・クラウド同期・セキュリティ対策を見る。通知の到着、ファイルの変更、予約スキャンをきっかけに、待機からCPUの順番待ちへ変わる様子を比べる。
- 一時停止してCPUの履歴やイベントログを確認する。起動中でもCPUを使わない時間があること、操作するアプリの終了でメモリが戻ることを確かめる。
CPUの順番待ちでは、処理が進むまでメモリを保持します。必要なメモリが足りない操作は「メモリ待ち」になり、空きができると自動で進みます。一時停止中は、OSの再生後に進みます。
メモリ待ちを試す
- 初期状態ではOSと常駐アプリで448 MBを使用。Web・音楽・写真を起動すると1008 MB・空き16 MBになり、写真加工の作業用200 MBは確保待ちになります。Webを終了すると空き216 MBになり、加工が自動で始まります。
- リセット後、写真と音楽を起動して加工を始めると1008 MBを使用。Webの起動はメモリ待ちになります。加工が完了すると200 MBが解放され、Webが自動で起動します。
実際のしくみとの違い
1 tickは教材の仮想時間で、実際の1秒ではありません。観察のため処理やOSの仕事を引き延ばしています。1コア・最大3 tickのラウンドロビン方式を使い、各アプリを1プロセスとして扱います。実際のOSは優先度、複数コア、複数スレッドなども扱います。
通知やクラウド側の変更は、不規則に届く様子を再現します。同じ条件で繰り返し観察できるよう、到着順と時刻はあらかじめ用意しています。クラウド同期は、写真加工後の保存や仮想のクラウド側の変更を受け、変わったファイルの準備・通信待ち・結果保存を行います。変更がなければ、ファイル全体を繰り返し同期しません。
セキュリティ対策は、予約されたクイックスキャンの例です。実際の製品はファイルを開くときなどのリアルタイム保護も行いますが、この教材では扱いません。通知も、実際にはOSの通知サービスや短時間のバックグラウンド処理を利用できます。比較のため、ここでは3種類をそれぞれ起動し続ける1プロセスにまとめ、終了できないようにしています。実際の通信・ファイル同期・セキュリティ検査は行いません。
写真は起動時に、CPUで読み込みを要求し、記憶装置の応答を待ち、CPUで画像を展開する流れを模擬します。読み込み待ちの間はCPUをほかの処理に渡します。実際のファイル読み込み時間や画像のデコード時間を測るものではありません。
メモリ総量は1024 MB、アプリの使用量は固定の教材用値です。写真加工中だけ作業用200 MBを追加確保し、完了時に解放します。空きができるまで要求を保留する動作も教材用の単純化で、仮想メモリや断片化は扱いません。
画面は描画済みの内容を保持し、音楽は準備済みデータを音声出力装置が消費する状態を表します。実際にも描画更新や音声準備などにはCPUの仕事が必要です。音楽はパブリックドメインの3曲から選び、再生・一時停止・音量調整・消音ができます。音声バッファは教材用のモデルで、実際のデコード処理を計測するものではありません。CPUの混雑で補充が間に合わないと一時的に音が途切れますが、CPUが補充すると続きから自動で再開します。OSの一時停止やバッファ残量に合わせて音も停止し、ブラウザのタブを離れると自動で一時停止します。