エンベデッドシステムスペシャリスト 2019年 午後1 問01
気象観測・予測システムに関する次の記述を読んで、設問1~3に答えよ。
A社は、ディジタル百葉箱を使って気象データを収集し、局地的大雨などの気象の予測を行う気象観測・予測システムを開発している。気象観測・予測システムは、担当するエリアの気象の観測・予測のほか、インターネットを介して、外部の研究機関及び気象データを利用する企業に、気象データ及び予測結果の提供も行う。
気象観測・予測システムは、気象データを収集するディジタル百葉箱、データを中継するアクセスポイント、データを蓄積するサーバ、及びデータを解析して気象の急激な変化を予測したり、各ディジタル百葉箱に指示をしたりする分析装置から成る。気象観測・予測システムの構成を図1に示す。

〔分析装置の処理〕
分析装置は、ディジタル百葉箱の位置情報を保持しており、この情報を基にディジタル地図を作成する。
分析装置は、ディジタル百葉箱から周期的に受信した気象データを、サーバに記録するとともにインターネットを介して取得した気象データと併せて、ディジタル地図上に展開する。ディジタル地図上に展開した気象データの時系列変化から、気象の急激な変化の有無をAIエンジンで予測して、その予測結果をサーバに記録する。また、気象の急激な変化が予測される地点のディジタル百葉箱に対して、データ収集周期を短くしたり、動画撮影を指示したりする。
分析装置は、各ディジタル百葉箱と1対1で情報の交換を行う通信(1対1通信)の機能と、全てのディジタル百葉箱に対して一斉に同一情報を伝える通信(同報通信)の機能をもつ。1対1通信の場合、各ディジタル百葉箱に割り当てられた番号を通信IDとして使用する。同報通信の場合、全ビットが1である通信IDを使用する。
〔ディジタル百葉箱の構成〕
ディジタル百葉箱のブロック図を図2に、ディジタル百葉箱の構成要素を表1に示す。


〔ディジタル百葉箱の動作〕
ディジタル百葉箱は、蓄電池の電池残量に応じて、通常モード・節電モード・停止モードの三つの動作モードを切り替えながら動作を行う。ディジタル百葉箱の動作モードを表2に示す。

〔ディジタル百葉箱の制御部のソフトウェア概要〕
ディジタル百葉箱の制御部では、リアルタイムOSを使用する。制御部のタスク構造とメッセージ通信を図3に、制御部のタスクの処理概要を表3に示す。
各タスクは、次の二つのイベントで動作する。
・RTCからの1分ごとの割込みによってメインタスクが起床される。メインタスクが各タスクにメッセージを通知して、それぞれのタスクが動作する。
・分析装置から指示を受信すると、通信タスクが起床される。通信タスクが各タスクに指示を通知して、それぞれのタスクが動作する。

設問1:気象観測・予測システムについて、(1)、(2)に答えよ。
設問1(1)
問題文を見る気象データの時系列変化から、気象の急激な変化を予測するには、全てのディジタル百葉箱による気象データの収集時刻が一致している必要がある。RTCの時刻設定において、どの機器がどのような動作をすればよいか。気象観測・予測システムの構成を参考にして、30字以内で述べよ。
模範解答
分析装置が同報通信で時刻の設定を指示する。
解説
解答の導き方
-
まず、気象データの収集時刻をそろえるには、各ディジタル百葉箱が持つRTCの時刻をそろえる必要があります。表3では、メインタスクがRTCから時刻情報を取得し、その時刻情報を計測タスクに通知します。したがって、RTCの時刻が機器ごとに異なると、収集した気象データに付加される時刻もそろいません。
-
RTCの時刻を設定する処理について、表3には「通信タスクから時刻設定指示を受けると、指定された時刻をRTCに設定する」とあります。つまり、時刻設定指示は分析装置から通信タスクを通じて届き、メインタスクがRTCに設定します。
-
次に、どの通信方法で指示を送るかを考えます。本文では、分析装置の通信機能として、個々のディジタル百葉箱と情報を交換する1対1通信と、全てのディジタル百葉箱に同一情報を伝える同報通信が示されています。全ての機器の時刻をそろえるための指示なので、各機器へ共通の時刻設定指示を送る同報通信が適切です。
以上から、分析装置が同報通信で時刻の設定を指示し、各ディジタル百葉箱ではメインタスクがRTCにその時刻を設定する、と考えられます。
誤りやすいポイント
- RTCに時刻を設定するのはメインタスクですが、時刻設定指示を送る機器は分析装置です。両者の役割を混同しないようにします。
- 1台ずつ時刻を設定する1対1通信ではなく、全てのディジタル百葉箱に共通の指示を送る同報通信を選びます。
- 時刻情報を収集データに付加する処理だけでは、機器ごとの時計のずれは解消されません。RTC自体の時刻設定が必要です。
FAQ
Q: 分析装置が各ディジタル百葉箱のRTCを直接設定するのですか?
A: 直接設定するのではなく、分析装置が時刻設定指示を送り、各ディジタル百葉箱のメインタスクがRTCに設定します。
A: 直接設定するのではなく、分析装置が時刻設定指示を送り、各ディジタル百葉箱のメインタスクがRTCに設定します。
Q: なぜ同報通信を使うのですか?
A: 全てのディジタル百葉箱に同じ時刻設定指示を伝えるためです。本文では、同報通信に全ビットが1である通信IDを使用すると説明されています。
A: 全てのディジタル百葉箱に同じ時刻設定指示を伝えるためです。本文では、同報通信に全ビットが1である通信IDを使用すると説明されています。
Q: RTCの時刻がそろうと、どの処理に役立ちますか?
A: 各ディジタル百葉箱が気象データに付加する時刻情報がそろい、気象データの時系列変化を比較しやすくなります。
A: 各ディジタル百葉箱が気象データに付加する時刻情報がそろい、気象データの時系列変化を比較しやすくなります。
関連キーワード: 時刻同期、RTC、同報通信、通信ID、時系列データ
設問1(2)
問題文を見る分析装置は、気象の急激な変化の有無をAIエンジンで予測するために、ディジタル百葉箱との通信で用いられる通信IDに対応する、ある情報を参照する必要がある。どのような情報か。30字以内で答えよ。
模範解答
ディジタル地図におけるディジタル百葉箱の位置情報
解説
解答の導き方
-
まず、通信IDが何を識別するために使われるかを確認します。本文には「各ディジタル百葉箱に割り当てられた番号を通信IDとして使用する」とあります。したがって、1対1通信で使う通信IDから、どのディジタル百葉箱のデータなのかを特定できます。
-
次に、気象データを予測に使う方法を確認します。本文には、分析装置が「ディジタル地図上に展開した気象データの時系列変化」から気象の急激な変化を予測するとあります。データをディジタル地図上の正しい地点に展開するには、どのディジタル百葉箱がどこにあるかを知る必要があります。
-
その情報は、分析装置が「ディジタル百葉箱の位置情報を保持しており、この情報を基にディジタル地図を作成する」とあることから分かります。通信IDで特定したディジタル百葉箱について、分析装置が参照するのは、ディジタル地図上でのその箱の位置情報です。
誤りやすいポイント
- 通信IDそのものを位置情報と考えないようにします。通信IDはディジタル百葉箱を特定するための番号であり、位置情報はその番号に対応付けて参照する情報です。
- 気象データの内容と、気象データを地図上に配置するための情報を混同しないようにします。ここで問われているのは、通信IDに対応する位置の情報です。
- 全ビットが1の通信IDは同報通信に使われます。これは全てのディジタル百葉箱への通信に使うもので、個々の箱の位置を特定する通信IDとは区別します。
FAQ
Q: 通信IDに対応させるのは、気温や湿度などの気象データではないのですか?
A: 気象データは予測に使う観測値です。通信IDに対応する情報として必要なのは、その観測値を地図上のどの地点に展開するかを決めるための位置情報です。
A: 気象データは予測に使う観測値です。通信IDに対応する情報として必要なのは、その観測値を地図上のどの地点に展開するかを決めるための位置情報です。
Q: 通信IDだけでディジタル百葉箱の場所まで分かるのですか?
A: 通信IDは箱を識別する番号です。分析装置が保持する位置情報と対応付けることで、識別した箱の位置を参照できます。
A: 通信IDは箱を識別する番号です。分析装置が保持する位置情報と対応付けることで、識別した箱の位置を参照できます。
Q: 同報通信の通信IDも、特定の位置情報を参照するために使いますか?
A: 同報通信の通信IDは全ての箱に同じ情報を伝えるためのものです。個々の箱の位置を特定する場合は、各箱に割り当てられた番号を使う1対1通信の考え方と区別します。
A: 同報通信の通信IDは全ての箱に同じ情報を伝えるためのものです。個々の箱の位置を特定する場合は、各箱に割り当てられた番号を使う1対1通信の考え方と区別します。
関連キーワード: 通信ID、位置情報、時系列解析、データ対応付け
設問2:ディジタル百葉箱のハードウェアについて、(1)、(2)に答えよ。
設問2(1)
問題文を見る節電モードにおけるディジタル百葉箱の消費電力量は1日当たり何Whか。答えは小数第2位を切り上げて、小数第1位まで求めよ。ここで、制御部の消費電力は平均3ミリW、通信部の消費電力は平均180ミリWとし、計測部及びカメラ部の待機電力は無視できるものとする。また、外付けの風向風速計、太陽光発電部及び電源部の消費電力は無視できるものとする。
模範解答
4.6
解説
解答の導き方
節電モードでは、動画撮影は行いません。一方で、表2には「それ以外は、通常モードと同様に動作する」とあるため、気象データの収集と静止画の撮影は1分周期で行われます。
1日は24時間なので、1分周期の処理回数は次のとおりです。
まず、制御部と通信部は、平均消費電力に1日の時間を掛けて消費電力量を求めます。
次に、計測部とカメラ部は、1回の処理当たりの消費電力量に、1日の処理回数を掛けます。表1によると、気象データの収集は1回当たり0.02ミリWh、静止画の撮影は1枚当たり0.1ミリWhです。
これらを合計すると、1日当たりの消費電力量は次のとおりです。
小数第2位を切り上げて小数第1位までにすると、4.6 Whです。
誤りやすいポイント
- 節電モードでは動画を撮影しません。動画撮影の消費電力量を合計に加えないようにします。
- 1分周期の処理回数は、1時間当たり60回、1日当たり1,440回です。
- 計測部とカメラ部の値は1回当たりの消費電力量なので、処理回数を掛けます。一方、制御部と通信部の値は消費電力なので、時間を掛けて消費電力量に換算します。
- ミリWhをWhに直すときは、1,000で割ります。
- 指定された太陽光発電部や電源部などの消費電力は無視します。また、発電分を消費電力量から差し引く問題ではありません。
FAQ
Q: 通信部の消費電力量は、5分周期の送信回数から計算するのですか?
A: この問題では通信部の平均消費電力が与えられているため、その値に24時間を掛けて求めます。送信1回当たりの消費電力量を別に求める必要はありません。
A: この問題では通信部の平均消費電力が与えられているため、その値に24時間を掛けて求めます。送信1回当たりの消費電力量を別に求める必要はありません。
Q: 静止画の撮影回数も1,440回になるのはなぜですか?
A: 節電モードでは動画を撮影しませんが、通常モードと同様に1分周期で静止画を撮影するためです。
A: 節電モードでは動画を撮影しませんが、通常モードと同様に1分周期で静止画を撮影するためです。
Q: 小数第2位を切り上げるとは、どのように処理するのですか?
A: 小数第1位までの値にするため、小数第2位以下を切り上げます。したがって、4.5648 Whは4.6 Whとなります。
A: 小数第1位までの値にするため、小数第2位以下を切り上げます。したがって、4.5648 Whは4.6 Whとなります。
関連キーワード: 消費電力量、平均消費電力、単位換算、周期処理
設問2(2)
問題文を見る気象データ、静止画データ及び動画データを保存するのに必要なフラッシュメモリの容量は何Mバイトか。答えは小数点以下を切り上げて、整数で求めよ。ここで、1Mバイト=バイトとし、ディジタル百葉箱と分析装置間の通信は正常に行われるものとする。
模範解答
76
解説
解答の導き方
フラッシュメモリに保存されるデータは、定期的に送信される気象データ・静止画データと、指示があったときに撮影する動画データです。まず、定期送信の直前に保存されているデータ量を考えます。
表2では通常モードの気象データと静止画データの収集が「1分周期」、分析装置への送信が「5分周期」です。そのため、送信までに最大で5回分の気象データと静止画データが蓄積します。
1回分のデータは、気象データが32バイト、静止画データが「1枚当たり6Mバイト」です。さらに表3では、これらのデータに時刻情報を付加して保存し、時刻情報のサイズは「8バイト」とあります。したがって、5回分の保存量は次のとおりです。
この定期データが残っている間に動画データも保存される場合を考えます。表1では「1回当たり45Mバイト」の動画データを保存し、表3では動画データにも時刻情報を付加します。よって動画1回分を加えた最大量は、次のとおりです。
問題文では「1Mバイト=バイト」と指定されています。これをMバイトに換算すると75.000248Mバイトです。フラッシュメモリの容量は小数点以下を切り上げるため、必要な容量は76Mバイトとなります。時刻情報を含めない場合でも、切り上げ後の値は変わりません。
誤りやすいポイント
- 「5分周期」の送信までに蓄積するデータを、1回分だけと考えないようにします。収集は1分周期なので、最大5回分を見積もります。
- 気象データだけでなく、1分ごとに撮影する静止画データも保存対象です。
- 動画データは通常の蓄積データとは別に保存されるため、定期送信前のデータ量に加算します。
- 1Mバイトはバイトです。さらに、問題文の指示は四捨五入ではなく切り上げです。
FAQ
Q: 時刻情報のサイズも計算に含める必要がありますか?
A: 表3では各データに時刻情報を付加して保存するため、必要容量の見積りに含めています。ただし、時刻情報を含めるかどうかで切り上げ後の答えは変わりません。
A: 表3では各データに時刻情報を付加して保存するため、必要容量の見積りに含めています。ただし、時刻情報を含めるかどうかで切り上げ後の答えは変わりません。
Q: 動画データはなぜ1回分を加算するのですか?
A: 動画データは撮影後に送信され、送信したデータはフラッシュメモリから削除される動作です。通信が正常に行われる前提なので、送信できないデータが蓄積し続けるものとしては扱いません。
A: 動画データは撮影後に送信され、送信したデータはフラッシュメモリから削除される動作です。通信が正常に行われる前提なので、送信できないデータが蓄積し続けるものとしては扱いません。
Q: なぜ容量を切り上げるのですか?
A: 問題文で小数点以下を切り上げるよう指定されているためです。また、実際に必要な容量が75Mバイトをわずかに超えているので、整数の容量としては次の値が必要です。
A: 問題文で小数点以下を切り上げるよう指定されているためです。また、実際に必要な容量が75Mバイトをわずかに超えているので、整数の容量としては次の値が必要です。
関連キーワード: フラッシュメモリ、データバッファリング、周期送信、単位換算、切り上げ
設問3:ディジタル百葉箱のソフトウェア設計について、(1)~(3)に答えよ。
設問3(1)
問題文を見る模範解答
a:通信
b:動画撮影開始指示
c:通常
d:動画撮影終了指示
e:節電
解説
解答の導き方
この設問では、カメラタスクが動画撮影を始めるきっかけと、撮影を繰り返す条件、繰返しを終える条件を順に考えます。
まず、表3では「分析装置から指示を受信すると、その指示を対応するタスクに通知する」とあります。分析装置からの指示を受信するのは通信タスクで、図3でも通信タスクとカメラタスクの間でメッセージがやり取りされています。したがって、カメラタスクが動画撮影の開始を受け取る相手は通信タスクです。開始を知らせる指示は「動画撮影開始指示」なので、[a]は通信、[b]は動画撮影開始指示です。
次に、撮影を繰り返す動作モードを考えます。表2では、通常モードで動画撮影開始指示を受信した場合に動画を撮影し、節電モードでは「動画の撮影を行わない」とされています。そのため、動画撮影を繰り返す条件となる[c]は通常です。
繰返しを終える条件の一つは、動画撮影終了指示を受信することです。開始指示と同様に、分析装置からの指示を受けてカメラタスクに通知するのは通信タスクです。よって、[d]は動画撮影終了指示です。
もう一つの終了条件は、動作モードが動画撮影を行わないモードに変わることです。表2では節電モードになると動画撮影を行わないため、[e]は節電です。
誤りやすいポイント
- 動画撮影の指示をカメラタスクが直接受け取ると考えないようにします。分析装置からの指示を受信し、各タスクに通知するのは通信タスクです。
- 動画撮影を繰り返すモードは、気象データや静止画を扱う通常モード・節電モードの両方ではありません。節電モードでは動画を撮影しないため、通常モードに限られます。
- 繰返しの終了条件は、終了指示の受信だけではありません。動作モードが節電モードに変わった場合も、動画撮影を繰り返さなくなります。
FAQ
Q: 動画撮影終了指示は、なぜ通信タスクから受け取るのですか?
A: 分析装置からの指示は通信タスクが受信し、対応するタスクに通知する構成だからです。図3でも、通信タスクとカメラタスクの間でメッセージをやり取りすることが示されています。
A: 分析装置からの指示は通信タスクが受信し、対応するタスクに通知する構成だからです。図3でも、通信タスクとカメラタスクの間でメッセージをやり取りすることが示されています。
Q: 節電モードでは、なぜ動画撮影を繰り返さないのですか?
A: 表2で、節電モードの動作は「動画の撮影を行わない」と定められているためです。したがって、通常モードから節電モードに変わったときは、撮影の繰返しを終えます。
A: 表2で、節電モードの動作は「動画の撮影を行わない」と定められているためです。したがって、通常モードから節電モードに変わったときは、撮影の繰返しを終えます。
Q: 動画撮影の処理を繰り返すのはなぜですか?
A: 表2では、動画を15秒間撮影した後、動画撮影終了指示を受信していなければ、再び撮影する手順になっているためです。
A: 表2では、動画を15秒間撮影した後、動画撮影終了指示を受信していなければ、再び撮影する手順になっているためです。
関連キーワード: メッセージ通信、タスク間通信、状態遷移、イベント駆動、リアルタイムOS
設問3(2)
問題文を見る表3中のfに入れる適切な処理内容を、30字以内で答えよ。
模範解答
f:送信したデータをフラッシュメモリから削除する
解説
解答の導き方
表3の通信タスクは、メインタスクから通知を受けると、フラッシュメモリに保存された気象データ及び静止画データを分析装置に送信します。また、カメラタスクから通知を受けた場合は、指定された動画データを送信します。どちらの処理にも「送信完了後、f。」とあるため、送信を終えたデータに対して行う処理を考えます。
手掛かりは表2の通常モードの説明です。気象データ及び静止画データについて、「送信したデータをフラッシュメモリから削除する」と定められています。送信済みのデータを残すと、次回の送信対象に含まれたり、フラッシュメモリの空き容量を圧迫したりするためです。
表3では動画データの送信後にも同じ空欄が使われています。したがって、送信が完了したデータをフラッシュメモリから削除する処理を入れます。削除対象は送信したデータであり、まだ送信していないデータまで削除するわけではありません。
誤りやすいポイント
- 送信を始めた時点で削除すると、送信が完了しなかった場合にデータを失うおそれがあります。処理するタイミングは「送信完了後」です。
- フラッシュメモリ内のデータを全て削除するのではなく、送信したデータを削除します。
- 気象データ及び静止画データだけでなく、動画データの送信後にも同じ処理を行います。
FAQ
Q: なぜ送信後にデータを削除するのですか?
A: 送信済みデータの再送や、フラッシュメモリの容量不足を避けるためです。
A: 送信済みデータの再送や、フラッシュメモリの容量不足を避けるためです。
Q: 送信が完了する前にデータを削除してはいけないのですか?
A: 送信が完了しないまま削除すると、データを分析装置へ届けられず、再送もできなくなるおそれがあるためです。
A: 送信が完了しないまま削除すると、データを分析装置へ届けられず、再送もできなくなるおそれがあるためです。
Q: 削除するのはフラッシュメモリ内の全データですか?
A: いいえ。送信が完了した対象データだけを削除します。
A: いいえ。送信が完了した対象データだけを削除します。
関連キーワード: フラッシュメモリ、送信完了処理、データ管理、タスク間通信
設問3(3)
問題文を見る表3に示すタスクの優先度では、動作モードが正しく切り替わらないことによって、各タスクが意図しない動作をしてしまうことがある。この問題を解消するためには、どのタスクの優先度をどのように変更すればよいか。25字以内で述べよ。
模範解答
モード管理タスクの優先度を高にする。
解説
解答の導き方
表3では、モード管理タスクは「蓄電池の電池残量を取得する。電池残量に応じて、動作モードを更新する。」役割をもちます。一方、計測タスクやカメラタスクは、動作モードを確認して処理を行うかどうかを決めます。つまり、ほかのタスクが動作する前に、モード管理タスクがその時点の電池残量に応じた動作モードへ更新している必要があります。
動作のきっかけは、RTCからの1分ごとの割込みです。メインタスクは起床すると、モード管理タスクやほかのタスクに動作開始などを通知します。ところが表3では、モード管理タスクと計測タスク、カメラタスク、通信タスクはいずれも優先度が「中」です。そのため、モード管理タスクによる更新より先に、ほかのタスクが動作モードを確認して処理を始める可能性があります。
例えば、電池残量が1%未満になった場合、停止モードに切り替わる前に別のタスクが以前のモードを参照すると、本来は行わない処理を実行してしまうおそれがあります。この順序の問題を防ぐには、モード管理タスクを中優先度のタスクより先に実行させる必要があります。したがって、モード管理タスクの優先度を「高」に変更します。
誤りやすいポイント
- 動作モードに応じて処理を変えるタスクではなく、動作モードそのものを更新するタスクの優先度を変更します。
- メインタスクはすでに「高」です。変更対象は、電池残量を確認して動作モードを更新するモード管理タスクです。
- 問題は、動作モードの更新と、そのモードを参照するタスクの処理との実行順序です。電池残量の判定条件を変更する問題ではありません。
FAQ
Q: モード管理タスクを「高」にすると、メインタスクより先に動くのですか。
A: メインタスクも「高」なので、必ずメインタスクより先に動くという意味ではありません。メインタスクから通知を受けた後、中優先度のタスクより先に動作モードを更新できるようにします。
A: メインタスクも「高」なので、必ずメインタスクより先に動くという意味ではありません。メインタスクから通知を受けた後、中優先度のタスクより先に動作モードを更新できるようにします。
Q: なぜモード管理タスクだけを優先させる必要があるのですか。
A: ほかのタスクが処理を判断するときの基準となる動作モードを、先に最新の状態へ更新するためです。
A: ほかのタスクが処理を判断するときの基準となる動作モードを、先に最新の状態へ更新するためです。
Q: 動作モードの更新が遅れると、どのような問題が起こりますか。
A: 例えば停止モードに切り替わるべき電池残量なのに、別のタスクが更新前のモードを参照して、不要な処理を行うおそれがあります。
A: 例えば停止モードに切り替わるべき電池残量なのに、別のタスクが更新前のモードを参照して、不要な処理を行うおそれがあります。
関連キーワード: タスク優先度、リアルタイムOS、タスクスケジューリング、実行順序




