問題の感想
競りのシステムの問題です。計算問題がなく読解力が問われる問題でした。公式の問題はここにあります。
IPAの公式過去問
解答
設問1
(1)(a)商品の口数:3口設問2
(1)(a)スクリーンと台端末への休止中及び新たな販売可能な口数の表示設問3
(1)e:商品追加完了
(1)(a)販売した口数:3口

出荷ラベルの枚数が「販売した口数」で、「購入メッセージに付加された口数は99であった」とあり、99の場合は販売された口数をすべて購入。
なので、「競りが行われた商品の口数」は「販売した口数」と等しくなります。

競り中に台端末から送信されるメッセージは「競り休止」と「競り終了」であり、「競り終了」の場合は「競り結果」が管理サーバに送信されるはずなので、「競り休止」が解答になります。

購入メッセージを受信したときに制御装置からスクリーン1に送信される通信の内容を問われています。
メッセージはスクリーン表示指示なので、そのメッセージ名を用いて回答する必要があります。
表示する内容は、購入メッセージの口数が99であることから、販売可能な口数が0であることを解答する必要があります。

競り開始のメッセージの説明に、「テンキーで入力された値が無ければ付加される値は0である」とあるので、0で競り開始。
つまり、「競り開始価格で競りを開始する場合」となります。

表示領域は600×500の静止画で、1ピクセル当たり3バイト、テキストデータは4kバイト必要とのことなので、データサイズは、
(600×500×3)+4000=904000バイト
伝送速度は1Gビット/秒の25%なので250Mビット/秒。バイトに合わせて式を考えると以下のようになります
904000÷(250000000/8)=28.9ミリ秒≒29ミリ秒
(1)(b)最初に取引が成立してから一定時間経過するまでの間

ある時点からある時点の間に購入要求を受けた時に取引が成立しないと判断するそうです。
競りのシステムがよくわかりませんが、最初の購入は取引が成立して、購入メッセージの受信を一定時間待った後に取引が成立しなかったすべての買参人端末に取引が成立しなかったことを表示します。
そのあとはマリ販売が行われ購入メッセージを受け付けることができるので、この回答になります。
(2)(b)b:該当する買参人端末に、買参人端末表示指示メッセージを送信

買参人タスクが購入応答を受けた時の処理を穴埋めします。
買参人タスクは購入応答で購入の成立/不成立を知ることができます。
この結果を知った時に行う処理としては、買参人端末に通知することなので、この回答になります。

買参人タスクが起動後に買参人番号を使って行う処理を穴埋めします。
問題文の中に「買参人番号に対するレコードは購入履歴情報の中に一つ以上存在するものとする」と書いているのでこれをヒントにして考えます。

購入履歴を古い順に表示させる方法を考えます。
従来は、最も古いレコードのリンクに-1を設定して、新たに追加したレコードの中に前回レコードの番号を記載していました。
これを逆にしたいので、追加したレコードには-1を、前回レコード番号のレコードには追加したレコードのレコード番号をそれぞれ書き込む。
ということになります。
(1)f:移動処理
(1)g:商品追加許可
(2)h:指定された商品情報を競り待ちテーブルの末尾に追加
(3)i:商品追加要求
(3)j:商品移動指示
(3)k:商品移動完了
(3)l:商品追加許可
(3)m:競り制御タスクおよび進行監視タスクがデッドロック状態になる

もし、競り制御タスクが商品移動指示の処理を保留して商品追加許可を待つと発生する不具合の内容を問われています。
商品追加許可は進行管理タスクから送信されますが、状態が商品移動状態の場合通知は保留するとあります。
このことから競り制御タスクと進行管理タスクでデッドロックが発生することを解答する必要があります。
0 件のコメント:
コメントを投稿