令和2年度 10月 午前Ⅱ 問7
オペレーティングシステム
リアルタイムOSの問題
リアルタイムOSにおけるコンテキストの使用方法に関する記述のうち,適切なものはどれか。
- アアプリケーションタスクを,アプリケーションタスク共有のコンテキストで実行させる。
- イアプリケーションタスクを,カーネルのコンテキストで実行させる。
- ウカーネルを,アプリケーションタスクのコンテキストで実行させる。
- エ割込み処理を,割込み処理ごとのコンテキストで実行させる。
答えと解説を見る
✓ これが正解エ割込み処理を,割込み処理ごとのコンテキストで実行させる。
解説
割込み処理は、割込み処理ごとのコンテキストで実行させます。
コンテキストは、レジスタの値やスタックなど、ある処理を実行するための状態一式です。リアルタイムOSは、処理を切り替えるたびにこの状態を保存したり復元したりすることで、複数の処理を互いに独立して動かします。割込み処理は、どのタスクが動いているかとは無関係に外からの要因で始まるので、実行中のタスクの状態を壊さないよう、割込み処理ごとのコンテキストで実行させます。例えばμITRON4.0仕様は、タスクも割込みハンドラも、それぞれ独立したコンテキストで実行されると定めています。コンテキストはタスクや割込み処理といった処理の単位ごとに分けて持たせる、という原則で見分けます。
ほかの選択肢はなぜ違うのか
- アアプリケーションタスクを,アプリケーショ…:タスクごとにレジスタの値やスタックを持つからこそ、タスクを切り替えても処理を途中から再開できます。複数のアプリケーションタスクが一つのコンテキストを共有すると、切り替えのたびに状態が上書きされてしまいます。
- イアプリケーションタスクを,カーネルのコン…:アプリケーションタスクをカーネルのコンテキストで実行させると、タスクの処理がカーネルの状態に入り込み、互いに影響し合うおそれがあります。タスクは自分のコンテキストで動かし、カーネルとは切り分けます。
- ウカーネルを,アプリケーションタスクのコン…:μITRON4.0仕様は、カーネル自身の処理を処理単位に含めず、カーネルが実行されるコンテキストはアプリケーションの振舞いに影響しないため規定しないとしています。コンテキストを使い分ける対象はタスクや割込み処理で、カーネルをタスクのコンテキストで動かすことは使い方として定められていません。
出典:令和2年度 10月 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)