戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2009年 春期 午後 問07


携帯端末の省電力に関する次の記述を読んで、設問1~3に答えよ。

 X社の、電池で駆動する携帯端末(以下、端末という)では、次のように消費電力を少なくする工夫をしている。   〔MPUに対するクロック制御〕  MPUへのクロック供給、タイマ割込み及びクロック発振の停止/再開は専用のクロック制御回路で行う。  (1) MPUへのクロック供給   クロックは、発振直後から発振が十分安定するまでにTミリ秒かかる。MPUへのクロック供給は、クロック発振再開からTミリ秒後となっている。  (2) タイマ割込み   タイマ割込み時刻は、ソフトウェアで設定する。設定された時刻になると、タイマ割込みが発生する。タイマ割込みを発生させるタイマは、MPUへ供給するクロックとは異なるクロックを使用し、独自に時間を計測している。  (3) クロック発振の停止/再開   クロック発振の停止/再開のタイミングを図1に示す。   クロック発振の停止は、ソフトウェアで指示する。クロック制御回路は、停止の指示を受け取ると、次のタイマ割込みの時刻までの時間を調べ、この時間がTミリ秒より長い場合、クロック発振を停止し、Tミリ秒以下の場合、停止指示を取り消し、クロック発振を継続する。   クロック制御回路は、クロック発振を停止しているとき、タイマ割込みが発生するTミリ秒前になるかほかの割込みを検出すると、クロック発振を再開する。
応用情報技術者試験(平成21年度 午後 問07 図01)
〔リアルタイムOS〕  この端末は、次のリアルタイムOSを使用している。  ・タスクの状態は、実行状態、実行可能状態及び待ち状態がある。タスクの状態遷移を図2に示す。  ・タスクには優先度が付与され、あるタスク実行中に、より優先度の高いタスクが起動されると、実行中のタスクは実行可能状態となり、優先度の高いタスクが実行状態となる。  ・タスク間通信のためにメールボックスが用意され、タスクはメールをほかのタスクのメールボックスに送ることができ、ほかのタスクからのメールをメールボックスで受信することができる。  ・メールボックスの操作には、送信要求と受信要求があり、受信要求したタスクはメールボックスにメールが届くまで待ち状態になる。   応用情報技術者試験(平成21年度 午後 問07 図02) ↩設問3(2)
〔省電力状態〕  省電力状態は、スタンバイモードとアイドルモードがある。スタンバイモードは、MPUへのクロック供給が停止している状態である。アイドルモードは、クロック供給を停止せず割込みを検出するまでMPUの命令の実行を停止している状態である。割込みを検出するとアイドルモードを終了し、命令を実行できる状態となる。   〔タスク〕  クロックを制御するクロック制御タスクは、①クロック発振の停止を指示し、②MPUをアイドルモードにする。このタスクは①と②を繰り返す。  クロック制御タスク以外のすべてのタスクは、メールボックスに受信要求しメールを受信すると、そのメールの内容を解析し、それに応じた処理を行い、再び受信要求する。これらのタスクは、タスク固有のメールボックスを使用している。   〔クロック制御回路〕  クロック制御回路は、クロック制御タスクの①と②の間に割込みがあれば、その割込みを保留し、②の後にその割込みをMPUに通知する。   〔クロック再開時の処理〕  クロックの発振が再開し、MPUにクロックが供給されたとき、最初に実行される処理は、必ずaとなる。それがbであれば遅延なく実行されるが、b以外の場合は、ほかに割込みがなければ、割込み要求発生から、cミリ秒遅延してから実行される。   〔省電力の効果〕  MPUの単位時間当たりの消費電力は、命令を実行している場合P、アイドルモードの場合0.5×P、スタンバイモードの場合0である。  端末が通信中のとき、クロック供給は停止せず、80%は命令を実行している状態であり、20%はアイドルモードになっている。端末が通信中の単位時間当たりの消費電力はd×Pである。  端末が通信を行っていないとき、1秒ごとに10ミリ秒間MPUにクロックが供給され、それ以外の時間はスタンバイモードである。その10ミリ秒のうち90%は命令を実行している状態であり、10%はアイドルモードになっている。端末が通信を行っていないときの単位時間当たりの消費電力はe×Pである。

設問1:

問題文を見る
クロック再開時の処理について、a~cに入れる適切な字句を答えよ。

模範解答

a:割込み処理 b:タイマ割込み処理 c:T

解説

解答の論理構成

  1. 端末がスタンバイモードから復帰する契機
    【問題文】には
    「クロック制御回路は、クロック発振を停止しているとき、タイマ割込みが発生するとTミリ秒前になるかほかの割込みを検出すると、クロック発振を再開する。」
    とあり、クロック発振を再開させる原因は“割込み”しかありません。したがって、MPUへのクロック供給が戻った瞬間に最初に動くのは割込みハンドラであり、a には「割込み処理」が入ります。
  2. “遅延なく実行”される割込みの種類
    図1の説明文では、タイマ割込みのときだけ「タイマ割込み発生のTミリ秒前」にクロックを再開させています。さらに
    「クロックは、発振直後から発振が十分安定するまでにTミリ秒かかる。MPUへのクロック供給は、クロック発振再開からTミリ秒後となっている。」
    とあるので、タイマ割込みの場合は発振再開からちょうどTミリ秒後に“割込み発生時刻”が訪れ、MPUにクロックが入る瞬間=割込み要求発生タイミングとなります。よって「遅延なく実行」されるのはタイマ割込みであり、b は「タイマ割込み処理」です。
  3. その他の割込み時の遅延時間
    「ほかの割込みを検出すると、クロック発振を再開する」とあるため、外部割込みなどは“割込み要求が来たその瞬間”に発振再開が指示されます。ところが、MPUが動き出せるのは「発振再開からTミリ秒後」です。したがって割込み要求~サービス開始までの空白は常にTミリ秒発生し、c は「T」となります。
  4. 結論
    a:割込み処理
    b:タイマ割込み処理
    c:T

誤りやすいポイント

  • 「最初に実行される処理」を“タスク切替”や“OS初期化”と勘違いしやすい。あくまでクロック再開を呼び込んだ主体は割込みであることを忘れないこと。
  • タイマ割込みだけが“発生予定時刻のTミリ秒前”にクロック再開を行う点を読み落とし、「すべての割込みでTミリ秒遅延」と誤答しやすい。
  • Tの起点を「クロック供給再開後」ではなく「割込み検出後」と混同すると、cに や を入れてしまうミスが発生する。

FAQ

Q: クロック再開後に複数の割込み要求が同時にあった場合、どの割込み処理が先に実行されますか?
A: 通常の割込み優先度制御に従い、優先度が最も高い割込みハンドラが先に実行されます。本設問は「最初に実行される処理」を問うだけなので、単に“割込み処理”と答えれば十分です。
Q: Tミリ秒はハードウェア固有値ですが、問題解答で具体的な数値を入れる必要はありますか?
A: いいえ。設問は記号「T」をそのまま解答欄に入れることを求めています。
Q: MPUがクロックを受け取った直後にアイドルモードへ落ちる可能性はありますか?
A: ありません。再開契機が必ず割込みなので、最低でも該当割込みのサービスルーチンが実行されるまではアイドルモードへ移行しません。

関連キーワード: 省電力, スタンバイモード, アイドルモード, タイマ割込み, クロック制御

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

省電力の効果に関する、MPUの消費電力Pについて、d、eに入れる適切な数値を答えよ。

模範解答

d:0.9 e:0.0095

解説

解答の導き方

結論:、。
まず、計算の前提を本文から確認します。本文には「MPUの単位時間当たりの消費電力は、命令を実行している場合P、アイドルモードの場合0.5×P、スタンバイモードの場合0である。」とあります。これにより各状態の瞬時消費は明確です。
(1) 通信中の場合() 本文に「端末が通信中のとき、クロック供給は停止せず、80%は命令を実行している状態であり、20%はアイドルモードになっている。」とあります。よって単位時間あたりの平均消費は、命令実行時の消費とアイドル時の消費の時間加重平均になります。
計算手順:
  • 命令実行(時間割合 )の寄与:
  • アイドル(時間割合 )の寄与:
  • 合計:
したがって です(通信中の単位時間当たりの消費は )。
(2) 通信していない場合() 本文に「端末が通信を行っていないとき、1秒ごとに10ミリ秒間MPUにクロックが供給され、それ以外の時間はスタンバイモードである。その10ミリ秒のうち90%は命令を実行している状態であり、10%はアイドルモードになっている。」とあります。ここで重要なのは「10ミリ秒のうち90%は9ミリ秒、10%は1ミリ秒」である点です(90%×10ms=9ms、10%×10ms=1ms)。
計算手順(1秒あたりで平均を取る):
  • 命令実行による消費エネルギー相当:
  • アイドルによる消費エネルギー相当:
  • 1秒(1000 ms)あたりの合計エネルギー相当:
  • 平均消費(1秒あたり)=
したがって です(通信していないときの単位時間当たりの消費は )。

誤りやすいポイント

  • 10ミリ秒の内訳の読み間違い:その10ミリ秒の90%は「9ミリ秒」であり「0.9ミリ秒」ではありません。割合を時間に直す際に小数の桁を一つ間違えるミスに注意してください。
  • 単位の取り扱いを忘れる:1秒=1000ミリ秒であることを忘れ、そのまま割合を掛けて終わらせると平均化で誤ります。秒換算(またはミリ秒で統一)を必ず行ってください。
  • アイドル時の消費をPと同じ扱いにする誤り:アイドルは「0.5×P」と定義されています。時間割合だけでなく、状態ごとの消費率を正しく掛け合わせる必要があります。
  • スタンバイは消費0であることを問題文で明示している点を見落とすと余分に消費を見積もってしまいます。
  • 表現の混同(どの空欄がどの文に対応するか):設問中の空欄の位置を文脈で確実に対応付けてから計算してください。

FAQ

Q: をパーセントで表すとどうなりますか?
A: で、 の に相当します。
Q: スタンバイモードの消費が0とあるが、実務では微小な消費があるはずでは?
A: 実務では確かにリークなどの消費は存在しますが、設問は「スタンバイモードの場合0である」と明示しています。試験では与えられた数値をそのまま使って計算してください。
Q: アイドルの「0.5×P」は時間あたりの瞬時消費ですか?平均消費ですか?
A: 問題文は瞬時消費率として「アイドルモードの場合0.5×P」と定義しています。したがって、その状態の時間割合と掛け合わせて平均を出します。

関連キーワード: リアルタイムOS、スタンバイモード、アイドルモード、タイマ割込み、消費電力

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:クロック制御タスクについて、(1)、(2)に答えよ。

問題文を見る
(1)クロック制御タスクの優先度はどのように設定すべきか、ほかのタスクの優先度を考慮して、25字以内で答えよ。

模範解答

「ほかのタスクより低い優先度とする。」 または 「すべてのタスクの中で最も低い優先度とする。」

解説

解答の論理構成

  1. 省電力を実現するクロック制御タスクは、問題文で
    「クロック制御タスクは、①クロック発振の停止を指示し、②MPUをアイドルモードにする。このタスクは①と②を繰り返す。」
    と述べられています。つまり主目的は端末全体の電力削減であり、業務ロジックを直接処理するわけではありません。
  2. 一方、他のタスクはメール受信後すぐに業務処理を行う必要があります。リアルタイムOSの特性として
    「タスクには優先度が付与され、あるタスク実行中に、より優先度の高いタスクが起動されると、実行中のタスクは実行可能状態となり、優先度の高いタスクが実行状態となる。」
    という表現があり、優先度が高いタスクほど即時にCPUを占有できます。
  3. さらに、クロック制御タスクが動作している最中に割込みが入るケースについて、問題文は
    「クロック制御回路は、クロック制御タスクの①と②の間に割込みがあれば、その割込みを保留し、②の後にその割込みをMPUに通知する。」
    と明示しています。クロック制御タスクが長時間実行状態にあると、割込み処理や他タスクの起動が遅延し、リアルタイム性を損なうおそれがあります。
  4. よって、クロック制御タスクはできるだけ速やかにCPUを明け渡す必要があるため、
    「ほかのタスクより低い優先度とする。」
    もしくは
    「すべてのタスクの中で最も低い優先度とする。」
    という設定が妥当となります。

誤りやすいポイント

  • 省電力機能を「重要だから高優先度」と誤解しがちですが、リアルタイム応答を阻害しない方が優先されます。
  • 割込み遅延の原因をOS側のプリエンプション設定と混同し、「同一優先度で良い」と判断してしまう。
  • クロック発振停止はハードウェアが自律的に実行するため、タスクの優先度が高くなくても電力削減効果は維持できる点を見落とす。

FAQ

Q: クロック制御タスクを最下位にしても、省電力のタイミングが遅れませんか?
A: ハードウェア側が「次のタイマ割込みの時刻までの時間」を判定して停止するため、タスクが少し遅れても停止タイミング自体は大きく変わりません。
Q: 同一優先度でラウンドロビンにする案はダメですか?
A: 割込み保留の間は他タスクも起動できず遅延します。確実に即時切替が起こるよう、明示的に最下位へ設定する方が安全です。
Q: クロック制御タスクをイベント駆動(割込みハンドラ内)に配置する方法は?
A: 割込み処理時間を長くするとレスポンスが悪化するため、タスクとして実装し優先度を下げる設計が推奨されています。

関連キーワード: 優先度制御, リアルタイムOS, プリエンプション, 省電力, 割込み管理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:クロック制御タスクについて、(1)、(2)に答えよ。

問題文を見る
(2)クロック制御タスクが実行状態にあるとき、ほかのタスクが取り得る、タスクの状態をすべて選び、図2の状態で答えよ。

模範解答

待ち状態

解説

解答の論理構成

  1. 【問題文】は、他タスクの基本動作を
    「“クロック制御タスク以外のすべてのタスクは、メールボックスに受信要求し…再び受信要求する。”」
    と規定しています。
  2. メールボックスの受信要求を行ったタスクは、
    「“受信要求したタスクはメールボックスにメールが届くまで待ち状態になる。”」
    と明示されています。
  3. したがって、クロック制御タスク以外のタスクは
    ①受信要求を出した直後に必ず待ち状態へ遷移し、
    ②メールが届くまでは実行状態にも実行可能状態にも戻りません。
  4. 今、設問が想定している瞬間は「クロック制御タスクが実行状態にあるとき」です。
    この瞬間は、他タスクに新しいメールが届いておらず、条件②により全てが待ち状態で停止している場面だけが成立します。
  5. 以上から、クロック制御タスクが実行状態にあるときに他タスクが取り得る状態は「待ち状態」のみとなります。
  6. 図2の表記をそのまま用いて答えると、解答は「待ち状態」です。

誤りやすいポイント

  • 「実行可能状態」を含めてしまう
    ─ メール未着ならタスクは待ち状態固定であり、スケジューラの対象にも上がりません。
  • 「優先度が高いタスクがあればプリエンプトするはず」と考える
    ─ 優先度より先に“待ち状態から実行可能状態へ出る条件=メール着信”が必要です。
  • 図2の遷移を暗記だけで判断し、実際のタスク動作シーケンスを読み落とす

FAQ

Q: 他タスクに割込みハンドラが送信するメールで即座に実行可能状態になりませんか?
A: 割込みハンドラがメールを送ると確かに“メール受信”イベントが発生しますが、その時点ではクロック制御タスクは既に実行状態を失っています。設問は「クロック制御タスクが実行状態にあるとき」を聞いているため該当しません。
Q: “実行状態”や“実行可能状態”を同時に取るケースは皆無なのですか?
A: メール受信後の処理区間では他タスクは実行状態/実行可能状態を取り得ます。しかし、その間クロック制御タスクは実行状態にありません。設問は両者が同時に起きる瞬間を問うているわけではありません。
Q: メールボックスに既にメールが溜まっている場合は?
A: 受信要求を出した直後にメールが存在すれば即座に受信→解析→再び受信要求となり、最終的にやはり受信要求で待ち状態へ入ります。したがって「クロック制御タスクが実行状態になる瞬間」には、他タスクは待ち状態です。

関連キーワード: タスク状態遷移, リアルタイムOS, メールボックス通信, 待ち状態, 優先度制御

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

応用情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について