令和2年秋期試験午後問題 問7

問7 組込みシステム開発

⇱問題PDF
多言語多通貨対応両替システムに関する次の記述を読んで,設問1~4に答えよ。
 G社は,訪日外国人観光客が所持する外貨紙幣を日本円に両替するための,多言語多通貨対応両替システム(以下,両替システムという)を開発している。両替システムは,駅,商店などに設置される両替機,及びインターネットを介して両替機の管理と両替機への情報提供を行う管理サーバで構成される。両替システムの構成を図1に,両替機の外観を図2に,両替機の内部構成を図3に,両替機の構成要素の機能概要を表1に示す。
pm07_1.png
〔タッチパネルの画面構成〕
 タッチパネルの画面は,両替可能な通貨の一覧表,言語名を表示した複数の言語ボタン,及び両替ボタンで構成される。両替可能な通貨の一覧表には,通貨名,入金額,両替レート,日本円額が含まれる。言語ボタンにタッチすると,タッチされたボタンに対応した言語で画面を再表示する。タッチパネルの画面例を図4に示す。
pm07_2.png
〔両替機の動作概要〕
 両替機は,利用可のとき,利用者が1枚目の外貨紙幣を入金口に挿入したら,両替状態にする。両替機は,挿入された外貨紙幣を,通貨・金種の識別後,入金口に戻すか,入金部の内部に格納する。外貨紙幣を入金部の内部に格納したら,その外貨紙幣の通貨に対応する,タッチパネルの画面の一覧表の入金額及び日本円額を更新する。両替機は,両替状態の場合,外貨紙幣が1枚挿入されるたびに,これらの動作を繰り返す。
 利用者が両替ボタンにタッチすると,両替機は,明細書の印刷・排出と日本円紙幣・硬貨の出金を行い,印刷・排出と出金が全て完了したら,両替状態を解除して,1回の両替の動作を完了する。

〔両替機の仕様〕
 両替機の仕様は,次のとおりである。
  • 1回の両替の動作で出金できる日本円額の合計は,1円以上10万円以下である。
  • 次のいずれかの場合は,挿入された外貨紙幣を入金部の内部に格納せずに,入金口に戻してエラーメッセージを表示する。
    • 挿入された外貨紙幣を,両替可能な通貨・金種として識別できなかった。
    • 挿入された外貨紙幣を,入金部の内部に格納できない状態になっていた。
    • 挿入された外貨紙幣を格納しても,日本円額の合計が1円に満たない。
    • 挿入された外貨紙幣を格納すると,日本円額の合計が10万円を超えてしまう。
    • 挿入された外貨紙幣を格納すると,出金部がもっている日本円紙幣・硬貨の組合せでは出金できない日本円額となってしまう。
  • 入金部の内部に一度格納した外貨紙幣は,入金口に戻さない。
  • 両替ボタンは,両替状態で,日本円額の合計が1円以上の場合に反応する。
  • 両替状態でないとき,定期的に管理サーバに問い合わせて両替レートを更新する。両替レートを更新したら,タッチパネルの画面の一覧表も更新する。両替状態では両替レートの更新を行わず,両替状態を解除した時に両替レートの更新を行う。なお,両替状態となってから,入金部の内部に外貨紙幣を1枚も格納しないまま3分経過した場合も,両替状態を解除する。
  • 印刷・排出と出金が全て完了した時,次の事象が一つ以上発生していたら利用不可とする。保守作業によって事象が全て解決されると,利用可にする。
    • 外貨紙幣を入金部の内部に格納できない状態である。
    • 出金部がもっている日本円の合計金額が10万円未満である。
    • 印刷部に格納されている明細書の用紙が不足している。
  • 印刷・排出と出金が全て完了した時,管理サーバに利用可・利用不可のいずれかを報告する。

〔シリアルバス通信の概要〕
 シリアルバス通信はポーリング方式とする。制御部から入金部,出金部,印刷部の順に10ミリ秒周期でデータを送信し,入金部,出金部,印刷部は,自分宛てのデータを受信したら,制御部にデータを送信する。データは,宛先コード,データ長,通知又は指示で構成される。シリアルバス通信のシーケンスを図5に,シリアルバスで通信される主なメッセージを表2に示す。
pm07_3.png
〔制御部のソフトウェア構成〕
 制御部の組込みソフトウェアには,リアルタイムOSを使用する。制御部の主なタスクの一覧を表3に示す。
pm07_4.png
〔メインタスクのタイマ利用処理〕
 メインタスクは両替状態となった時,a後にイベントを受信するように,リアルタイムOSのタイマを設定する。このイベントの受信時,両替状態となってから,①ある条件を満たしたら,bして,cを行う。

設問1

両替機について,(1),(2)に答えよ。
  • 制御部が両替状態となったことを判断するのは,どの構成要素から通知を受けたときか。表1中の構成要素名で答えよ。
  • 制御部が管理サーバに利用可・利用不可のいずれかを報告するのは,二つのメッセージを受信した後である。その二つのメッセージ名を,表2中の名称で答えよ。

解答例・解答の要点

  • 入金部
  • ①:出金通知 ※順不同
    ②:印刷通知 ※順不同

解説

  • どの構成要素が通知したときに、制御部が両替状態となったと判断するかを考えます。

    問題文の〔両替機の動作概要〕には、次の記述があります。
    • 両替機は,利用可のとき,利用者が1枚目の外貨紙幣を入金口に挿入したら,両替状態にする。
    また、表1の入金部欄には次の記述があります。
    • 外貨紙幣が入金口から挿入されたら,通貨・金種を識別して制御部に通知する。
    これら2つの記述から、外貨紙幣が入金口から挿入されると、入金部から制御部に通知が行われ、制御部はこの通知をもって両替状態になったと判断することがわかります。

    ∴入金部

  • 制御部は、表2中のどのメッセージを受信した後に、管理サーバに利用可・利用不可の報告をするかを考えます。

    問題文の〔両替機の仕様〕には、次の記述があります。
    • 印刷・排出と出金が全て完了した時,管理サーバに利用可・利用不可のいずれかを報告する。
    表2より、"印刷通知"は印刷・排出完了を知らせるメッセージであり、"出金通知"は日本円紙幣・硬貨の出金完了を知らせるメッセージであることがわかります。制御部は、この2つのメッセージの受信により印刷・排出と出金がいずれも完了したことを確認して、管理サーバへの報告を行う流れになります。よって、2つのメッセージとは「出金通知」と「印刷通知」が適切です。

    ∴①、②=出金通知、印刷通知(順不同)

設問2

シリアルバスの最適な通信速度を検討するために,通信データ量が最も多く,処理時間が最も長くなるケースを調査した結果,当該ケースは次のとおりであった。
  1. 制御部は,894バイトのデータを印刷部に送信する。
  2. 印刷部はデータを受信し終えたら,750マイクロ秒の処理を行った後に,6バイトのデータを制御部に送信する。
  3. 制御部はデータを受信し終えたら,250マイクロ秒の処理を行った後に,入金部へのデータ送信を開始する。
当該ケースにおいて,シリアルバスの通信速度は最低何ビット/秒必要か。答えは小数第1位を切り上げて,整数で求めよ。ここで,1バイトはスタートビット,ストップビットを含めて10ビットで送信されるものとする。

解答例・解答の要点

1000000

解説

シリアルバスの最適な通信速度(ビット/秒)を考えます。

設問2のⅰ~ⅲは、制御部→印刷部 および 印刷部→制御部 の処理時間を表しています。またⅰ~ⅲは図5の⑤⑥のシーケンスに該当し、全部を合わせた処理時間は10ミリ秒以下でなければならないという制約があることがわかります。

この前提を踏まえると、

〔データ送信量〕
ⅰとⅱの合計で、
 894バイト+6バイト=900バイト
1バイトは10ビットで送信されるものとするという条件があるので、
 900×10=9,000ビット

〔データ処理時間〕
ⅱとⅲの合計で、
 750マイクロ秒+250マイクロ秒=1,000マイクロ秒=1ミリ秒

つまり、処理全体を10ミリ秒以下に収めるためには9,000ビットを9ミリ秒で伝送しなければなりません。よって、シリアルバスに求められる通信速度は、

 9,000ビット÷9ミリ秒
=1,000ビット/ミリ秒
=1,000,000ビット/秒

∴1000000(ビット/秒)

設問3

〔メインタスクのタイマ利用処理〕について,(1),(2)に答えよ。
  • 本文中のacに入れる適切な字句を答えよ。
  • 本文中の下線①の条件とは何か。30字以内で述べよ。

解答例・解答の要点

  • a:3分
    b:両替状態を解除
    c:両替レートの更新
  • 入金部の内部に外貨紙幣を1枚も格納していないこと (24文字)

解説

  • メインタスクが両替状態となった時、何の後にイベントを受信するように、リアルタイムOSのタイマを設定するかを考えます。

    空欄部分が多く文脈より推定しづらいのですが、特別にタイマを設定しなければならない処理として、問題文の〔両替機の仕様〕には次の仕様があります。
    • なお、両替状態となってから、入金部の内部に外貨紙幣を1枚も格納しないまま3分経過した場合も、両替状態を解除する。
    この記述を実現するため、メインタスクは両替状態となったとき3分後にイベントを通知するようにタイマを設定しなければなりません。よって、[a]には「3分」が当てはまります。

    [a]がわかれば、[b]と[c]は問題文より3分後に行うべき処理を読み取るだけです。
    問題文の〔両替機の仕様〕には、次の記述があります。
    • なお、両替状態となってから、入金部の内部に外貨紙幣を1枚も格納しないまま3分経過した場合も、両替状態を解除する。
    • 両替状態でないとき、定期的に管理サーバに問い合わせて両替レートを更新する。
    この記述から、3分経過後には「両替状態の解除」を行うこと、解除後に管理サーバに問い合わせて「両替レートの更新」を行うことがわかります。

    a=3分
     b=両替状態の解除
     c=両替レートの更新

  • 問題文の〔両替機の仕様〕には、次の記述があります。
    • なお、両替状態となってから、入金部の内部に外貨紙幣を1枚も格納しないまま3分経過した場合も、両替状態を解除する。
    「両替状態の解除」および「両替レートの更新」は、入金部の内部に外貨紙幣を1枚も格納しないまま3分を経過した時に限り行うべき処理であるため、タイマイベント通知時にこの条件(入金部の内部に外貨指定を1枚も格納していないこと)を満たしていることを確認しなければなりません。

    ∴入金部の内部に外貨紙幣を1枚も格納していないこと

設問4

ある両替において,両替状態となってから,日本円額91,000円分の外貨紙幣を入金部の内部に格納したところに,利用者が100米ドル紙幣1枚を挿入したら,格納されずに入金口に戻された。戻された原因を25字以内で述べよ。ここで,両替機が故障していない状態で,入金部は100米ドル紙幣が両替可能な通貨・金種と認識し,外貨紙幣を内部に格納できる状態であるものとする。また,両替レートは,1米ドル100円とし,出金部は全ての金種の日本円紙幣・硬貨をそれぞれ10枚以上もっているものとする。

解答例・解答の要点

日本円額の合計が10万円を超えるから (18文字)

解説

紙幣が入金口に戻される条件について考えます。

問題文の〔両替機の仕様〕には、挿入された外貨紙幣を入金部の内部に格納せずに、入金部に戻す条件として以下の5つが挙げられています。
  1. 挿入された外貨紙幣を,両替可能な通貨・金種として識別できなかった。
  2. 挿入された外貨紙幣を,入金部の内部に格納できない状態になっていた。
  3. 挿入された外貨紙幣を格納しても,日本円額の合計が1円に満たない。
  4. 挿入された外貨紙幣を格納すると,日本円額の合計が10万円を超えてしまう。
  5. 挿入された外貨紙幣を格納すると,出金部がもっている日本円紙幣・硬貨の組合せでは出金できない日本円額となってしまう。
設問の事例がどのパターンに合致して発生したのかを確認します。
「日本円額91,000円分の外貨紙幣を入金部の内部に格納したところに,利用者が100米ドル紙幣1枚を挿入したら…」という条件に着目すると、④のパターンに合致することがわかります。100米ドル紙幣を円換算した10,000円と、現在、入金部内部に格納されている日本円額91,000円分を足すと101,000円(>100,000円)になってしまうからです。よって、紙幣が戻されたのは「日本円額の合計が10万円を超えてしまうから」であると判断できます。

なお、①②については「入金部は100米ドル紙幣が両替可能な通貨・金種と認識し…格納できる状態」とあるので、③については100米ドルを円換算すると10,000円(≧1円)になるので、⑤については「出金部は全ての金種の日本円紙幣・硬貨をそれぞれ10枚以上もっているものとする」とあるので、それぞれ当てはまりません。

∴日本円額の合計が10万円を超えるから
模範解答

Pagetop