問題の感想
センサを使った野菜工場の問題です。記述式の問題の文字数が多く、難しかったです。解答
設問1
(1)a:200設問2
(1)f:センサ監視設問3
(1)暗号化されたデータのデータ長
(1)b:2
(1)c:7

カメラユニットからの送信データは、ヘッダとペイロードを含めて20kバイトとあり、栽培室内のブロック数は全部で10ブロックなので、
20kバイト × 10ブロック =200kバイト。 となります。
各ユニットから送信されるデータはそれぞれ10バイト固定であり、ブロック外に5ユニット、ブロック内には10ブロック×5ユニットなので、
10バイト × 55ユニット = 550バイト。 となります。なので1かなと思いましたが、正解は2みたいです。
ポーリング周期は0.25秒なので、(200kバイト+2kバイト)×4=808kバイト/秒=6464kビット/秒。切り上げて7Mビット/秒となります。
20kバイト × 10ブロック =200kバイト。 となります。
各ユニットから送信されるデータはそれぞれ10バイト固定であり、ブロック外に5ユニット、ブロック内には10ブロック×5ユニットなので、
10バイト × 55ユニット = 550バイト。 となります。なので1かなと思いましたが、正解は2みたいです。
ポーリング周期は0.25秒なので、(200kバイト+2kバイト)×4=808kバイト/秒=6464kビット/秒。切り上げて7Mビット/秒となります。
(2)(a)時間
(2)(b)土壌水分養分センサユニット、温湿度センサユニット
(1)g:出力ユニット制御
(1)h:静的
(1)i:再入
(1)j:ブロックを示す番号

後続のタスクによって変数の内容が上書きされる可能性がある変数の割り当て方として、アドレスを固定して割り当てる場合があります。それを静的に割り当てるといいます。なので、hの解答は「静的」となります。
ブロックごとにタスクを生成する場合、同じ関数を別々に呼び出しても処理が動けるようすることを、再入可能(複数の呼び出し元から呼ばれても不具合がおきない)といいます。なのでiの回答は「再入」になります。
一つの関数を複数の呼び出し元から呼び出す場合にそれぞれを区別する必要があります。ここではブロックごとに同じ関数を呼び出す可能性があるので、関数の引数にブロック番号を入れるのが効果的です。なのでjの回答は、「ブロックを示す番号」となります。
ブロックごとにタスクを生成する場合、同じ関数を別々に呼び出しても処理が動けるようすることを、再入可能(複数の呼び出し元から呼ばれても不具合がおきない)といいます。なのでiの回答は「再入」になります。
一つの関数を複数の呼び出し元から呼び出す場合にそれぞれを区別する必要があります。ここではブロックごとに同じ関数を呼び出す可能性があるので、関数の引数にブロック番号を入れるのが効果的です。なのでjの回答は、「ブロックを示す番号」となります。

自動モードから手動モードに切り替えるときに各出力ユニットの状態を保存しないと、自動モードに戻した後に発生する不具合について回答します。
自動モードは栽培制御シーケンスに従って制御するのに対して、手動モードでは表示部と操作部を用いて手動で操作を行います。
手動モードでは各ユニットに対して手動で処理を行うので、栽培制御シーケンスで処理を行っていないユニットを操作した場合に、手動で設定したままの状態が自動モードに遷移した後も残り続けることになります。それが可能性のある不具合になります。
自動モードは栽培制御シーケンスに従って制御するのに対して、手動モードでは表示部と操作部を用いて手動で操作を行います。
手動モードでは各ユニットに対して手動で処理を行うので、栽培制御シーケンスで処理を行っていないユニットを操作した場合に、手動で設定したままの状態が自動モードに遷移した後も残り続けることになります。それが可能性のある不具合になります。
(2)(b)受信しなかった場合:手動モード切替時の出力ユニットの状態
(2)(a)データ解析タスクがフラッシュメモリをセマフォでアンロックし、複合タスクがロックする間に入出力管理タスクがフラッシュメモリに書き込んでいる。
(2)(b)データ解析タスクと複合タスクの処理が行われる間は、入出力管理タスクのフラッシュメモリへの書き込みを抑止する。

栽培制御シーケンスの書き込み処理と複合処理が競合した場合にまれに複合できない不具合が発生するらしく、その過程について問われています。
セマフォの振る舞いについてまとめます。
・入出力タスクは、シーケンスを受信したとき、フラッシュメモリをロックして、データをに格納後、アンロックする。
・データ解析タスクは、フラッシュメモリをロックして、複合タスクに通知した後、アンロックする
・複合タスクは、フラッシュメモリをロックして、データを複合した後、アンロックする
この説明を見るとセマフォの操作が怪しいように感じます。
問題では書き込みと複合が競合した時とあり、複合タスクの処理が行われる前に、ほかのタスクにロックがされるケースがデータ問題の原因となります。
セマフォの振る舞いについてまとめます。
・入出力タスクは、シーケンスを受信したとき、フラッシュメモリをロックして、データをに格納後、アンロックする。
・データ解析タスクは、フラッシュメモリをロックして、複合タスクに通知した後、アンロックする
・複合タスクは、フラッシュメモリをロックして、データを複合した後、アンロックする
この説明を見るとセマフォの操作が怪しいように感じます。
問題では書き込みと複合が競合した時とあり、複合タスクの処理が行われる前に、ほかのタスクにロックがされるケースがデータ問題の原因となります。
0 件のコメント:
コメントを投稿