応用情報技術者過去問題 平成21年秋期 午後問7
⇄問題文と設問を画面2分割で開く⇱問題PDF問7 組込みシステム開発
デジタルフォトフレームに関する次の記述を読んで,設問1~3に答えよ。
S社は,低価格のデジタルフォトフレームを開発することになった。このデジタルフォトフレームは,外部メディアに保存されている静止画像を表示するもので,マイコンを搭載しており,本体は画面,電源スイッチ,左キー,右キーなどで構成されている。
〔デジタルフォトフレーム仕様〕
デジタルフォトフレームの割込みハンドラ一覧を表1,タスク一覧を表2に示す。タスクには優先度があり,値の小さい方の優先度が高い。 タスク間通信はイベントを使って行われる。各タスクにはイベントキューがあり,イベントの情報はいったんイベントキューに蓄積される。イベントキューには上限があり,上限を超えたイベントは破棄される。イベント一覧を表3に示す。〔メインタスクの処理〕
メインタスクでは次の処理を行う。
自動切替えのシーケンスを図1,手動切替えのシーケンスを図2に示す。〔ファイルサイズの検討〕
画像を5秒間表示している間に表示準備を完了させることができるファイルサイズの上限について検討した。
読み込むファイルサイズをA(Mバイト)とすると,読込み時間はe秒で,デコード時間はf秒である。したがって,eとfの合計が5秒以内となるファイルサイズはgMバイト以下となる。
S社は,低価格のデジタルフォトフレームを開発することになった。このデジタルフォトフレームは,外部メディアに保存されている静止画像を表示するもので,マイコンを搭載しており,本体は画面,電源スイッチ,左キー,右キーなどで構成されている。
〔デジタルフォトフレーム仕様〕
- 外部メディアから画像データを読み込み,デコードしてから表示データを画面に表示する。
- 画像の表示切替えにはタイマで起動する自動切替え及びキー操作による手動切替えの二つの方法を用いる。
- 自動切替えでは,外部メディアのファイルパスの昇順で表示切替えを行う。表示データは5秒間画面に表示する。この間,次に表示する1画像分の画像データの読込み及びデコード(以下,表示準備という)を行う。電源を入れると,自動切替えを開始する。
- 手動切替えでは,左キー押下で現在表示中の画像の前の画像,右キー押下で次の画像に切替えを行う。画像を5秒間画面に表示して,キ一入力がなければ,自動切替えを開始する。
- 次に表示すべき表示データを用意できない間は,砂時計画像が表示される。砂時計画像の表示データはあらかじめROMに格納してある。
デジタルフォトフレームの割込みハンドラ一覧を表1,タスク一覧を表2に示す。タスクには優先度があり,値の小さい方の優先度が高い。 タスク間通信はイベントを使って行われる。各タスクにはイベントキューがあり,イベントの情報はいったんイベントキューに蓄積される。イベントキューには上限があり,上限を超えたイベントは破棄される。イベント一覧を表3に示す。〔メインタスクの処理〕
メインタスクでは次の処理を行う。
- 表示データを所定の画面表示用メモリ領域に格納することで,画面に表示する。メインタスクの処理時間は非常に短いので,メモリ領域に格納後,すぐに次の処理に移る。
- 自動切替え及び手動切替えを制御する。自動切替え及び手動切替えの動作を表4に示す。
自動切替えのシーケンスを図1,手動切替えのシーケンスを図2に示す。〔ファイルサイズの検討〕
画像を5秒間表示している間に表示準備を完了させることができるファイルサイズの上限について検討した。
読み込むファイルサイズをA(Mバイト)とすると,読込み時間はe秒で,デコード時間はf秒である。したがって,eとfの合計が5秒以内となるファイルサイズはgMバイト以下となる。
設問1
図1,図2中のa~dに入れる適切な字句を解答群の中から選び,記号で答えよ。
a,b,c,d に関する解答群
- イベントキューに蓄積
- イベントを破棄
- 画像データの読込み
- 画面表示用メモリ領域に格納
- 自動切替え
- 手動切替え
- 砂時計画像を表示
- タイマ(5秒間)をセット
- タイマのセットを解除
- 次の画像の表示準備
- 表示データへのデコード
解答入力欄
- a:
- b:
- c:
- d:
解答例・解答の要点
- a:キ
- b:エ
- c:ク
- d:ケ
解説
〔aについて〕
自動切替え・手動切替えに共通して読込み要求前に行われる動作です。しかし表4で読込み要求前の動作を見ると、自動切替えは「①タイマイベント受信後,表示データがなければ,…」手動切替えは「①キーイベント受信後,タイマのセットを解除する」とあり、読込み要求前に共通する動作は記載されていません。
そのため、問題文を精査してみると、〔デジタルフォトフレーム仕様〕(3)に「次に表示すべき表示データを用意できない間は,砂時計画像が表示される」とあります。ここで自動切替えのシーケンスを見てみると、図1の一番下に「表示準備完了後の画像を表示」という処理があります。事前に次の画像の読込み及びデコードが完了していればこの処理となるはずです。しかし、図1のタイマイベント受信時にはそうはなっていないことから、図1の1回目のタイマイベントで行っているのは、表示準備完了後の画像がないときの処理であることがわかります。また、手動切替えでも表示準備完了後の画像は用意されていません。
どちらも次の表示データが準備できていない状態なので、[a]に入る共通の処理は「砂時計画像を表示」であると判断することができます。
∴a=キ:砂時計画像を表示
〔b、cについて〕
シーケンス図を見ると、[b]と[c]はデコード完了後の動作で、自動切替え・手動切替えに共通するものだとわかります。
表4を見ると、デコード後の動作として、自動切替え・手動切替えともに「デコード後の表示データを画面表示用メモリ領域に格納後,タイマ(5秒間)をセットする」とあります。よって、「b:画面表示用メモリ領域に格納」して「c:タイマ(5秒間)をセット」がそれぞれ入ると判断できます。
∴b=エ:画面表示用メモリ領域に格納
c=ク:タイマ(5秒間)をセット
〔dについて〕
手動切替えと自動切替えのシーケンスを比較すると、自動切替えでは読込み要求前に[a]、手動切替えでは[d]及び[a]という動作があることから、[d]は手動切替えにのみ存在する処理です。
表4を見ると、読込み要求前における手動切替えの動作として「①キーイベント受信後,タイマのセットを解除する」、自動切替えは「①タイマイベント受信後,表示データがなければ…」とあります。よって、手動切替えのときにだけ必要な動作は「タイマのセット解除」です。
∴d=ケ:タイマのセット解除
自動切替え・手動切替えに共通して読込み要求前に行われる動作です。しかし表4で読込み要求前の動作を見ると、自動切替えは「①タイマイベント受信後,表示データがなければ,…」手動切替えは「①キーイベント受信後,タイマのセットを解除する」とあり、読込み要求前に共通する動作は記載されていません。
そのため、問題文を精査してみると、〔デジタルフォトフレーム仕様〕(3)に「次に表示すべき表示データを用意できない間は,砂時計画像が表示される」とあります。ここで自動切替えのシーケンスを見てみると、図1の一番下に「表示準備完了後の画像を表示」という処理があります。事前に次の画像の読込み及びデコードが完了していればこの処理となるはずです。しかし、図1のタイマイベント受信時にはそうはなっていないことから、図1の1回目のタイマイベントで行っているのは、表示準備完了後の画像がないときの処理であることがわかります。また、手動切替えでも表示準備完了後の画像は用意されていません。
どちらも次の表示データが準備できていない状態なので、[a]に入る共通の処理は「砂時計画像を表示」であると判断することができます。
∴a=キ:砂時計画像を表示
〔b、cについて〕
シーケンス図を見ると、[b]と[c]はデコード完了後の動作で、自動切替え・手動切替えに共通するものだとわかります。
表4を見ると、デコード後の動作として、自動切替え・手動切替えともに「デコード後の表示データを画面表示用メモリ領域に格納後,タイマ(5秒間)をセットする」とあります。よって、「b:画面表示用メモリ領域に格納」して「c:タイマ(5秒間)をセット」がそれぞれ入ると判断できます。
∴b=エ:画面表示用メモリ領域に格納
c=ク:タイマ(5秒間)をセット
〔dについて〕
手動切替えと自動切替えのシーケンスを比較すると、自動切替えでは読込み要求前に[a]、手動切替えでは[d]及び[a]という動作があることから、[d]は手動切替えにのみ存在する処理です。
表4を見ると、読込み要求前における手動切替えの動作として「①キーイベント受信後,タイマのセットを解除する」、自動切替えは「①タイマイベント受信後,表示データがなければ…」とあります。よって、手動切替えのときにだけ必要な動作は「タイマのセット解除」です。
∴d=ケ:タイマのセット解除
設問2
右キーを連続押下したとき,押下回数の分の画像が表示されない現象が発生した。この原因を20字以内で述べよ。なお,動作中は外部メディアを抜き出せない。
解答入力欄
- o:
解答例・解答の要点
- o:読込み要求イベントが破棄されたから (17文字)
解説
まず、右キーを押した場合の動作を確認しましょう。
問題文の〔ソフトウェア構成〕には「イベントキューには上限があり,上限を超えたイベントは破棄される」とあります。上限値は記載がないため、どの程度で破棄されるのかは不明ですが、読込み要求イベントのうちキューの上限を超えたものが破棄されてしまうことにより、押下回数分の画像が表示されない現象が発生する可能性があります。
∴読込み要求イベントが破棄されたから
- 右キーを押すとキー割込みハンドラが実行され、メインタスクにキーイベントが送信される。
- キーイベントは、メインタスクのイベントキューに蓄積される。
- メインタスクは、イベントキューからキーイベントを取り出し、図2のシーケンスに沿ってファイルタスクに読込み要求イベントを送信する。
- 読込み要求イベントは、ファイルタスクのイベントキューに蓄積される。
- ファイルタスクは、イベントキューから読込み要求イベントを取り出し、画像データを読み込む。
問題文の〔ソフトウェア構成〕には「イベントキューには上限があり,上限を超えたイベントは破棄される」とあります。上限値は記載がないため、どの程度で破棄されるのかは不明ですが、読込み要求イベントのうちキューの上限を超えたものが破棄されてしまうことにより、押下回数分の画像が表示されない現象が発生する可能性があります。
∴読込み要求イベントが破棄されたから
設問3
本文中のe,fに入れる適切な数式,及びgに入れる適切な数値を答えよ。数値は小数第2位以下を切り捨てて小数第1位まで求めよ。
解答入力欄
- e:秒
- f:秒
- g:Mバイト
解答例・解答の要点
- e:A/2
- f:20A/1000
- g:9.6
解説
〔eについて〕
ファイルサイズ÷読込み速度で計算します。
表2からファイルの読込み速度は2Mバイト/秒であることがわかります。読込むファイルサイズがA(Mバイト)のため、読込み時間は、
A÷2=A/2秒
∴e=A/2(0.5Aでも可)
〔fについて〕
ファイルサイズ×単位当たりのデコード時間で計算します。
表2からデコードに必要な時間は1Mバイト当たり20ミリ秒とわかります。20ミリ秒は20/1000秒で、ファイルサイズはA(Mバイト)ですから、デコードに必要な時間は、
20/1000×A=20A/1000秒
∴f=20A/1000(0.02AやA/50でも可)
〔gについて〕
[e]と[f]の合計時間を5秒以内に収めることのできるファイルサイズを計算します。A/2→0.5A、20A/1000→0.02Aにすると計算しやすいと思います。
0.5A+0.02A≦5
0.52A≦5
A=9.615…(小数第2位以下を切り捨て)9.6Mバイト
∴f=9.6
ファイルサイズ÷読込み速度で計算します。
表2からファイルの読込み速度は2Mバイト/秒であることがわかります。読込むファイルサイズがA(Mバイト)のため、読込み時間は、
A÷2=A/2秒
∴e=A/2(0.5Aでも可)
〔fについて〕
ファイルサイズ×単位当たりのデコード時間で計算します。
表2からデコードに必要な時間は1Mバイト当たり20ミリ秒とわかります。20ミリ秒は20/1000秒で、ファイルサイズはA(Mバイト)ですから、デコードに必要な時間は、
20/1000×A=20A/1000秒
∴f=20A/1000(0.02AやA/50でも可)
〔gについて〕
[e]と[f]の合計時間を5秒以内に収めることのできるファイルサイズを計算します。A/2→0.5A、20A/1000→0.02Aにすると計算しやすいと思います。
0.5A+0.02A≦5
0.52A≦5
A=9.615…(小数第2位以下を切り捨て)9.6Mバイト
∴f=9.6