リアルタイムOSとタスク(real-time OS / task)
決められた時間内に処理を終えることを重く見るOS。切り替えて動かす処理の単位をタスクと呼ぶ。
もう少し詳しい説明
リアルタイムOSが重く見ること
| リアルタイムOS | パソコン向けのOS | |
|---|---|---|
| 重く見ること | 期限までに終わること | 全体で多くの仕事を片付けること |
| 切り替えにかかる時間 | 短く、ばらつきが小さい | 平均は速いが、ときどき大きく遅れる |
| 優先度の扱い | 高いものを必ず先に動かす | 公平に分け合う |
| 大きさ | 小さい | 大きい |
「速い」とは少し違います。 平均が速いことよりも、遅れが決まった範囲に収まることを重く見ます。
| 性質 | 言い換え |
|---|---|
| 平均が速い | ふだんは速い。ときどき大きく遅れるかもしれない |
| 期限を守る | ふだんの速さは普通でも、遅れの上限が決まっている |
機械を動かす場面では、後者が要ります。 100回のうち1回でも遅れると、動きがずれます。
タスク
リアルタイムOSが切り替えながら動かす、処理の単位です。
| 用語 | 使われる場所 |
|---|---|
| タスク | リアルタイムOSで多く使う言い方 |
| プロセス・スレッド | パソコンやサーバ向けのOSで使う言い方 |
考え方はプロセスとスレッドに近い形です。 同じものを別の言葉で呼んでいる場面もあります。
タスクの状態
| 状態 | 中身 |
|---|---|
| 実行状態 | いまCPUを使っている |
| 実行可能状態 | 動く用意はできているが、CPUが空いていない |
| 待ち状態 | 何かを待っている(時間、通知、センサーの値) |
待ち状態 ──通知が来た──→ 実行可能状態 ──CPUが空いた──→ 実行状態
↑ │
└────優先度の高いものに譲った─┘
待ち状態から、いきなり実行状態にはなりません。 実行可能状態を経ます(プロセスの状態遷移のページで扱っています)。
優先度と切り替え
| 方式 | 中身 |
|---|---|
| 優先度に基づく方式 | 実行可能なタスクのうち、優先度が最も高いものを動かす |
| プリエンプティブ | 動いている途中でも、より優先度の高いタスクが来たら取り上げる |
| ノンプリエンプティブ | 動いているタスクが自分で譲るまで、取り上げない |
リアルタイムOSは、取り上げる方式が基本です。 取り上げないと、優先度の高い処理が待たされます。
優先度を決めるときの考え方
| 優先度 | 当てる処理 |
|---|---|
| 高い | 期限が厳しいもの(例:モーターの制御、安全に関わる判定) |
| 中くらい | 定期的に測るもの(例:センサーの読み取り) |
| 低い | 急がないもの(例:記録の保存、外への送信) |
期限が短いものを高くします。 処理が重いかどうかではありません。
タスクどうしの連絡
| 仕組み | 中身 |
|---|---|
| 通知(イベント) | あるタスクが別のタスクに「これをしてほしい」と伝える |
| メッセージキュー | 送りたい内容を並べて渡す。受ける側が順に取り出す |
| セマフォ | 同じ資源を同時に使わないようにする印(セマフォ) |
| 排他制御 | 同時に触ると壊れる部分を、1つのタスクだけに使わせる |
どのタスクが、どのタスクに通知するかを図にすると、動きが追えます。 午後の問題では、これがそのまま設問になります。
優先度の逆転
優先度の低いタスクが資源を握っていると、高いタスクが待たされます。
| 段階 | 起きること |
|---|---|
| 1 | 優先度の低いタスクが、共有する資源を使い始める |
| 2 | 優先度の高いタスクが、その資源を使おうとして待つ |
| 3 | その間、中くらいのタスクが動いてしまう |
結果として、高いタスクが中くらいのタスクより後になります。 これを優先度の逆転と呼びます。資源を握っている間だけ優先度を上げる、という対処があります。
試験ではこう出る
科目A(旧・午前)では、リアルタイムOSが重く見ることが問われます。期限を守る、という部分が答えの軸です。
タスクの状態遷移も出ます。待ち状態から実行可能状態を経る、という順序です。
午後や応用情報(組込みシステム開発)では、タスクの表の空欄を埋める形で出ます。優先度の高さの理由、どのタスクが通知するか、という設問です。
表を読むときは、通知の向きを矢印で書き出してください。 誰が誰に伝えるかを紙に写すと、空欄が埋まります。
関連する用語
- プロセスとスレッド
- 同じく実行の単位。タスクの考え方はこれに近い
- プロセスの状態遷移
- 実行中・実行可能・待ちの移り変わり。タスクも同じ形で動く
- 割込み
- 外からの合図で処理を切り替える仕組み
- セマフォ
- タスクどうしが同じ資源を取り合わないようにする仕組み
- 組込みシステム
- リアルタイムOSが使われる場所
ミニクイズ
リアルタイムOSが、一般的なパソコン向けのOSと比べて重く見る点はどれか。
正解は 3番:決められた期限までに処理が終わることを保証しやすい作りであること
リアルタイムOSは、期限までに処理が終わることを重く見ます。優先度の高いタスクへの切り替えにかかる時間を短く、ばらつきを小さく保つ作りになっています。単位時間当たりの処理量を多くすることや、多数のアプリを同時に動かすことは汎用のOSが重く見る点です。画面の美しさや操作の分かりやすさも、組込み向けのOSで最優先になるものではありません。
この分野をまとめて解く → システム構成要素とソフトウェアのミニテスト(全28問)
最終更新:2026-11-09