平成23年秋期試験午後問題 問7

問7 組込みシステム開発

⇱問題PDF
地上デジタル放送対応テレビの放送ダウンロード機能に関する次の記述を読んで,設問1~4に答えよ。
 X社では,放送ダウンロード機能を搭載した地上デジタル放送対応テレビ(以下,テレビという)を開発している。
 放送ダウンロード機能とは,テレビの機能を実現しているソフトウェアを更新する機能である。ソフトウェア更新データ(以下,更新データという)は,特別に割り当てられた地上デジタル放送の電波で配信される。更新データの配信時刻情報は,地上デジタル放送とともに配信される。テレビ本体は,配信時刻になると更新データを受信して,テレビ本体のソフトウェアを更新する。

〔テレビ本体の電源状態〕
 テレビ本体の電源状態には,パワーオン状態,パワーオフ状態,スタンバイ状態の三つがある。テレビ本体の電源状態一覧を表1に,電源状態選移を図1に示す。
pm07_1.png
〔放送ダウンロード機能の動作〕
 放送ダウンロード機能は,スタンバイ状態のときだけ実行するように,次の順序で動作する。
  • パワーオン状態でリモコンの電源ボタンを押すと,次回の放送ダウンロード機能を開始できるように,テレビ本体の時刻管理機能(以下,RTCという)に次回の放送ダウンロード開始時刻を設定する。RTCへのクロック供給は,MPUへのクロック供給と独立していて,スタンバイ状態でも継続される。
  • スタンバイ状態で放送ダウンロード開始時刻になると,放送ダウンロード機能の動作を開始し,更新データを受信する。
  • 受信した更新データでテレビ本体のソフトウェアを更新して,再度テレビ本体の電源スイッチをオンにしたときの処理を行う(以下,再起動という)。
〔放送ダウンロード機能に関連するソフトウェア〕
 放送ダウンロード機能に関連するタスク一覧を表2に,割込みハンドラ一覧を表3に示す。タスクには優先度があり,値が小さいほど優先度が高い。
pm07_2.png
〔更新データの受信時間〕
 地上デジタル放送の情報レートを16.85Mビット/秒とすると,300Mバイトの更新データの受信時間はa秒となる。

〔MPUへのクロック供給〕
 MPUへのクロック供給は,クロック制御回路で行う。クロック供給の停止は,ソフトウェアで指示する。クロック制御回路は,クロック供給が停止しているときに割込みを検出すると,MPUへのクロック供給を再開する。

〔ソフトウェアの動作〕
 電源管理タスクが実行状態のとき,アイドルタスクはbである。リモコンでテレビ本体をスタンバイ状態にすると,電源管理タスクはRTCに次回の放送ダウンロード開始時刻を設定し,cとなる。その結果,アイドルタスクはdとなり,MPUへのクロック供給を停止する。
 放送ダウンロード機能の動作を開始するとき,MPUへのクロック供給が再開した直後にeが実行される。

設問1

本文中のaに入れる適切な数値を答えよ。答えは小数第2位以下を切り上げて,小数第1位まで求めよ。

解答例・解答の要点

a:142.5

解説

aについて〕
地上デジタル放送の情報レートが16.85Mビット/秒であるときの、300Mバイトの更新データの受信時間を考えます。

まず計算のために情報レートと更新データの単位をビットに統一します。1バイト=8ビットですので、更新データの大きさは「300Mバイト×8=2,400Mビット」です。

受信時間は「更新データ÷情報レート」で求めることができるので、

 2,400M÷16.85M=142.43…秒
(小数第2位以下を切り上げて)142.5秒

したがって「142.5秒」が正解となります。

a=142.5

設問2

〔ソフトウェアの動作〕について,(1)~(3)に答えよ。
  • 本文中のbdに入れる適切な字句を解答群の中から選び,記号で答えよ。
  • 本文中のeに入れる適切な字句を答えよ。
  • eの処理後,実行状態となるタスク名を答えよ。
b,c,d に関する解答群
  • 実行可能状態
  • 実行状態
  • 待ち状態

解答例・解答の要点

  • b:
    c:
    d:
  • e:タイマ割込みハンドラ
  • 電源管理

解説

  • bについて〕
    電源管理タスクが実行状態のときのアイドルタスクの状態を考えます。
    表2中のアイドルタスクの説明には「待ち状態にはならない」という記述があります。この記述から、アイドルタスクの状態は"実行可能状態"または"実行状態"のいずれかになります。2つのタスクが同時に"実行状態"になることはできないので、電源管理タスクが実行状態ということは、必然的にアイドルタスクは「実行可能状態」であると判断できます。

    b=ア:実行可能状態

    cについて〕
    図1の状態遷移図を見ると「リモコンでテレビ本体をスタンバイ状態するとき」とは、リモコンの電源ボタンが押され"パワーオン状態"から"スタンバイ状態"に遷移したときであることがわかります。このときの、電源管理タスクの状態を考えます。
    表3中のリモコンハンドラの説明には「電源ボタン信号の場合,電源管理タスクに電源オン/オフメッセージを送る」の記述があります。この記述から、リモコンでテレビ本体を"スタンバイ状態"にするとき、電源管理タスクに電源オフメッセージが送られることがわかります。表2中の電源管理タスクの説明には、「電源オフメッセージを受けたとき,テレビ視聴関連のタスクを終了して,次回の放送ダウンロード開始時刻を設定し,電源オン/放送ダウンロード開始メッセージ待ちになる」とありますから、電源オフメッセージを受けた電源管理タスクは「待ち状態」に遷移すると判断できます。

    c=ウ:待ち状態

    dについて〕
    電源管理タスクが"待ち状態([c])"になったときのアイドルタスクの状態を考えます。
    [a]で解説した通り、電源管理タスクの実行中、アイドルタスクは"実行可能状態"になっています。その後、電源管理タスクが"待ち状態"になると、他に"実行可能状態"になっているタスクがないのでアイドルタスクは「実行状態」に遷移することになります。そして、「MPUへのクロック供給を停止する」処理を実行します。

    d=イ:実行状態

  • eについて〕
    表3のタイマハンドラの説明及び本文中には以下の記述があります。
    • 放送ダウンロード開始時刻になったときに実行される。
    • クロック制御回路は,クロック供給が停止しているときに割込みを検出すると,MPUへのクロック供給を再開する。
    つまり、放送ダウンロード機能の動作を開始するときは、①開始時刻になりRTCからタイマ割込み、②MPUへのクロック供給の再開、③タイマ割込みハンドラの実行、という流れで行われることになります。したがって、MPUへのクロック供給が再開した直後に実行されるのは「タイマ割込みハンドラ」です。

    e=タイマ割込みハンドラ

  • タイマ割込みハンドラの処理後、実行状態となるタスク名を考えます。
    表3中のタイマ割込みハンドラの説明には「電源管理タスクに放送ダウンロード開始メッセージを送る」とあり、表2中の電源管理タスクの説明には「放送ダウンロード開始メッセージを受けたとき、受信タスクに更新データ受信開始メッセージを送って、待ち状態となる」とあります。この2つの記述から以下の処理の流れがわかります。
    1. タイマ割込みハンドラが電源管理タスクに放送ダウンロード開始メッセージを送る
    2. 電源管理タスクが実行状態になる
    3. 電源管理タスクは、受信タスクに更新データ受信開始メッセージを送り、待ち状態になる
    4. 受信タスクが実行状態になる
    よって、タイマ割込みハンドラの処理後、実行状態になるタスクは「電源管理」タスクです。

    ∴電源管理

設問3

テレビ本体のソフトウェア更新中に,他のソフトウェアにディスパッチしないよう,排他制御を行う必要がある。排他制御の代表的な実装方式としては,セマフォ及び割込み禁止があるが,更新タスクでセマフォを使用しなかった理由を30字以内で述べよ。

解答例・解答の要点

割込みハンドラの動作を排他制御できないから (21文字)

解説

セマフォとは、共有資源にアクセス可能な数を表す値のことです。この値を増減することで排他制御を行います。

セマフォを獲得できない(共有資源にアクセスできない)と、タスクは共有資源のセマフォが解放されるまで待ち状態になります。これにより排他制御が可能です。一方、割込みは、CPUで現在実行中の処理を一時中断させ、強制的に特定の処理を行わせるOSの処理ですから、タスクのようにセマフォのコーディングで制御することはできません。このため、本問では割込み禁止を使用して割込みハンドラの排他制御を行っています。

∴割込みハンドラの動作を排他制御できないから

設問4

各タスクの優先度を変えて,放送ダウンロード機能が動作するかを確認した。放送ダウンロード機能が動作した組合せを解答群の中から一つ選び,記号で答えよ。
解答群
pm07_3.png

解答例・解答の要点


解説

"実行可能状態"であるタスクが複数ある場合には、優先度の最も高いタスクが実行状態に移されます。優先度の値は小さいほど、優先度が高いことを示しています。

アイドルタスクは"待ち状態"にならず、"実行状態"でないときは常に"実行可能状態"にあるので、他のタスクよりも優先度を低く設定しておく必要があります。そうでなければ、他のタスクとアイドルタスクがともに"実行可能状態"になったときに、アイドルタスクが"実行状態"に移され、MPUへのクロック供給が停止してしまう不具合が発生します。

したがって、正しく動作するのは、アイドルタスクの優先度が他の3つのタスクよりも低く設定されている「イ」だけです。

∴イ
  • 電源管理タスクから受信タスクに更新データ受信開始メッセージが送られたとき、受信タスクとアイドルタスクが"実行可能状態"になりますが、優先度の高いアイドルタスクが"実行状態"になるので、受信タスクが実行されません。
  • 正しい。アイドルタスクの優先度が他の3つのタスクよりも低く設定されているので、適切に動作します。
  • タイマ割込みハンドラから電源管理タスクに放送ダウンロード開始メッセージが送られたとき、電源管理タスクとアイドルタスクが"実行可能状態"になりますが、優先度の高いアイドルタスクが"実行状態"になるので、電源管理タスクが実行されません。
  • 「ウ」と同じ理由で誤りです。
模範解答

Pagetop