平成23年度 特別 午前Ⅱ 問7
オペレーティングシステム
コンテキストに関する問題
リアルタイムOSにおけるコンテキストの使用方法に関する記述のうち,適切なものはどれか。
- アアプリケーションタスクを,アプリケーションタスク共有のコンテキストで実行させる。
- イアプリケーションタスクを,カーネルのコンテキストで実行させる。
- ウカーネルを,アプリケーションタスクのコンテキストで実行させる。
- エ割込み処理を,割込み処理ごとのコンテキストで実行させる。
答えと解説を見る
✓ これが正解エ割込み処理を,割込み処理ごとのコンテキストで実行させる。
解説
割込み処理は、割込み処理ごとのコンテキストで実行させます。
コンテキストとは、プログラムの実行を中断して再開するために必要なレジスタやスタックなどの状態のことです。見分ける軸は、実行の単位ごとにコンテキストが分かれているかどうかです。リアルタイムOSでは、タスクごとに独立したコンテキストを持たせ、切り替えるときに保存と復元を行います。割込み処理もタスクとは別の実行の流れなので、割込み処理ごとのコンテキストで実行させれば、割り込まれたタスクの状態を壊さず、処理の後で元の実行へ戻れます。実行の単位ごとにコンテキストを分けるという原則に合うかどうかで選びましょう。
ほかの選択肢はなぜ違うのか
- アアプリケーションタスクを,アプリケーショ…:アプリケーションタスクが一つのコンテキストを共有すると、タスクを切り替えたときにレジスタやスタックの内容が混ざり、中断した位置から再開できません。タスクにはそれぞれ専用のコンテキストを持たせるのが基本です。
- イアプリケーションタスクを,カーネルのコン…:アプリケーションタスクをカーネルのコンテキストで動かすと、タスクの誤動作がカーネルの状態を直接壊すおそれがあり、タスクとカーネルを分けて管理できなくなります。タスクは自分のコンテキストで実行させます。
- ウカーネルを,アプリケーションタスクのコン…:カーネルを特定のアプリケーションタスクのコンテキストで実行させると、そのタスクの状態とカーネルの状態が分けられなくなります。カーネルはタスクから独立して資源を管理する立場なので、この使い方は適切ではありません。
出典:平成23年度 特別 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)