令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午後I 問題 問2 競泳計時システムのタイマー設計と主機・補機の冗長化

学習ガイド

競泳プールに設置する計時システムの組込みソフトウェアを扱う問題です。基準タイマーとサブタイマーの仕様から時間の換算を行い、計測レジスタの値を使った故障判定とフライング判定の条件を読み解きます。競技の流れに沿ったタスク構成を確認したうえで、主機と補機を信号線で結んで可用性を高める機能追加の設計を検討します。

この記事で押さえる論点

  • 20ビットの基準タイマーと1/32ミリ秒のサブタイマーの関係から、1/100秒を作る初期値と経過時間の計算ができる
  • 計測レジスタの出力元IDと基準タイマー値の意味を理解し、故障判定とフライング判定の条件を説明できる
  • 競技の流れに沿って、審判計時機のタスク(競技・レーン・合図機・表示など)の役割と通知の順序を追える
  • 主機と補機を4本の信号線で接続する構成で、監視割込みの途絶や操作通知に対する補機側のタスクの処理を設計できる

問題本文

問2 競泳計時システムに関する次の記述を読んで,設問に答えよ。

B社は,50m×8レーンの競泳競技用プールに設置され,競技の審判,計時,記録,及び競技結果の表示を行う,競泳計時システム(以下,本システムという)を開発している。本システムは,審判計時機,競技サーバ,電光掲示板,合図機,スタート台,及びタッチ板で構成される。本システムの概要を図1に,本システムの主な構成要素を表1に,審判計時機の構成を図2に,それぞれ示す。

図1 本システムの概要
図の説明テキスト

競泳計時システムの全体構成を示す模式図。中央に50mのレーンを持つプールがあり、両端にスタート台とタッチ板が設置されている。プールの外側には合図機(電子ピストル、ヘッドセット、スピーカーを含む)があり、専用線で審判計時機と接続されている。審判計時機はLANを通じて競技サーバと電光掲示板に接続されている。

表1 本システムの主な構成要素
図の説明テキスト

表1 本システムの主な構成要素

構成要素名 機能概要
競技サーバ ・競技の開始予定時刻,種目,距離,使用するレーン,過去の記録,参加選手及び競技結果といった,競技に関する情報(以下,競技情報という)を管理する。
審判計時機 ・競技サーバから取得した競技情報に従って,競技の進行,審判,計時を行う。
合図機 ・スピーカー,ヘッドセット,電子ピストルで構成される。
・審判計時機からシリアル I/F を介して音声出力の指示を受けると,ヘッドセット又はスピーカーから音声を出力する。
・電子ピストルのトリガーが引かれると,審判計時機の汎用 I/O に信号を入力する。
スタート台1, 2 ・選手が乗っているか否かの状態が変化するたびに,審判計時機のタイマー部に信号を入力する。
・スタート台1は競技の最初のスタート側,スタート台2はその対面側に設置される。
タッチ板1, 2 ・触れられると,審判計時機のタイマー部に信号を入力する。
・タッチ板1は競技の最初のスタート側,タッチ板2はその対面側に設置される。
電光掲示板 ・競技サーバからの指示で,情報を表示する。
図2 審判計時機の構成
図の説明テキスト

審判計時機の内部構成を示すブロック図。MPUを中心に、シリアルI/F、汎用I/O、LAN通信部、操作部、表示部、タイマー部(基準タイマー、サブタイマー、計測レジスタ1〜8)が接続されている。シリアルI/Fと汎用I/Oは外部の合図機と接続。タイマー部の計測レジスタ1〜8はそれぞれレーン部1〜8(スタート台1,2とタッチ板1,2を含む)と接続されている。LAN通信部はLANと接続されている。

〔競技の流れ〕

本システムを使用した,競技の流れを次に示す。

(1) 競技サーバには,その日に行われる,全ての競技の競技情報が保存されている。

(2) 審判員は,審判計時機の操作部にある “準備” ボタンを押し,競技準備を始める。

(3) 合図員は,合図機のヘッドセットを装着し,電子ピストルを携える。

(4) 審判計時機の表示部に “準備完了” が表示されたことを確認した審判員が,操作部にある “選手セット” ボタンを押すと,合図機のスピーカーからホイッスル音が出力される。ホイッスル音を合図に,競技に参加する選手はスタート台に乗る。全ての選手がスタート台に乗ると,合図機のヘッドセットからセット完了音が出力される。

(5) 合図員は,選手に構えるよう号令し,全ての選手がスタート姿勢で静止したことを確認したら,電子ピストルのトリガーを引く(以下,開始合図という)。

(6) 合図機のスピーカーからスタート音が出力され,競技が開始される。

(7) 審判計時機の表示部及び電光掲示板に,競技開始からの経過時間(以下,競技時間という)が,1/100 秒ごとに更新・表示される。また,選手がタッチ板に触れて折り返すと,折返し区間までの経過時間(以下,途中経過タイムという)が表示部及び電光掲示板に表示される。計測単位は,いずれも 1/100 秒である。

(8) 開始合図よりも先に,又はリレー競技において前の選手がタッチ板に触れるよりも先に,選手がスタート台を離れると,フライングと判定される。フライングした選手又はチームは,ゴールした後に失格となる。

(9) 全ての選手がゴールしたら,競技開始から選手又はチームがゴールするまでの経過時間(以下,競技タイムという)又は失格の情報が,審判計時機の表示部及び電光掲示板に表示される。以後,最終競技の終了まで,(2)からの手順を繰り返す。

〔審判計時機のタイマー部〕

審判計時機のタイマー部の仕様を次に示す。

  • 基準タイマーは20ビットのカウントアップタイマーで,サブタイマーの値が0になるたびにカウントアップする。サブタイマーは16ビットのカウントダウンタイマーで,1/32ミリ秒でカウントダウンする。
  • どちらのタイマーもMPUから読み書き可能である。読み出すとタイマーのカウント値が得られ,値を書き込むと,その値を初期値として,タイマーが動作する。
  • 基準タイマーがカウントアップしたとき,MPUに“基準タイマー割込み”が入力される。
  • サブタイマーは値が0になると,又は基準タイマーは値が16進数でFFFFFになると,どちらも,次にカウントダウン又はカウントアップをするまでの間に初期値がリロードされる。
  • 計測レジスタ1〜8は23ビットのレジスタで,接続されたスタート台及びタッチ板から信号が入力されるたびに,上位3ビットに信号の出力元を表す値(以下,出力元IDという)が,下位20ビットにそのときの基準タイマーの値がそれぞれ入る。
  • 計測レジスタ1〜8は,値を更新したら“計時割込み1〜8”をMPUに入力する。計測レジスタ1〜8の上位3ビットに入る出力元IDの一覧を表2に示す。
表2 出力元IDの一覧
図の説明テキスト

表2 出力元IDの一覧

出力元ID 000 001 100 101 110 111
出力元 タッチ板1 タッチ板2 スタート台1
(無)
スタート台2
(無)
スタート台1
(乗)
スタート台2
(乗)
注記1 010, 011の出力元IDは存在しない。
注記2 “(無)”は選手が乗っていないこと、“(乗)”は選手が乗っていることを表す。

〔競技開始時の故障判定とフライング判定〕

競技開始時の故障判定とフライング判定の処理を次に示す。

(1) “準備”ボタンが押されたら,競技開始時の故障判定とフライング判定を行うために,基準タイマーに16進数80000を,サブタイマーに1/100秒で0となる値を書き込む。

(2) 電子ピストルのトリガーが引かれたら,合図機から汎用I/Oに信号が入力され,割込みが発生する。この割込みを検知したら,基準タイマーの値が16進数80000より大きくなっていることを確認する。確認できたら基準タイマーに0を,サブタイマーに1/100秒で0となる値を書き込んで,合図機にスタート音の出力を指示する。確認できなかった場合は,故障と判断して表示部に“故障”を表示する。

(3) 選手がスタート台に乗った後で,計時割込みを検知したら,対応する計測レジスタの値を読み出す。出力元IDが100で,下位20ビットが16進数で80000以上であれば,そのレーンのスタートはフライングと判定する。

〔審判計時機のソフトウェア構成〕

審判計時機のソフトウェアには,リアルタイムOSを使用する。審判計時機の主なタスク構成を図3に,審判計時機の主なタスクの処理概要を表3に示す。

図3 審判計時機の主なタスク構成
図の説明テキスト

審判計時機の主なタスク構成とタスク間のメッセージ通信方向を示すブロック図。メインタスクを中心に、操作、表示、LAN通信、競技の各タスクと通信を行う。競技タスクは、メイン、タイマー、LAN通信、合図機、表示、レーンの各タスクと通信を行う。実線の矢印で通信方向が示されている。

表3 審判計時機の主なタスクの処理概要
図の説明テキスト

表3 審判計時機の主なタスクの処理概要

タスク名 処理概要
メイン ・審判計時機全体を管理し,起動時に他タスクの生成・起動を行う。
・操作タスクを介して,操作部からの操作を受け付ける。
 - “準備”ボタン押下を受けると,次の競技の競技情報を競技サーバから取得して,競技タスクに“準備開始”で通知する。
 - a を受けると,競技タスクに“選手セット開始”を通知する。
 - b から“ c ”を受けると,表示タスクに“故障”を表示させる。
競技 ・1回ごとの競技について,準備から終了までを管理する。
・メインタスクから“準備開始”を受けると,受けた競技情報に従って,使用するレーンのレーンタスク(以下,使用タスクという)に,そのレーンに関する競技情報を,“準備開始”で通知する。使用しないレーンのレーンタスクには“休止”を通知する。
・全ての使用タスクから“準備完了”を受けると,d に e を指示する。
・メインタスクから“選手セット開始”を受けると,f に g を指示する。
・全ての使用タスクから“選手セット完了”を受けると,f に h を指示する。
・合図機からの割込み通知を受けると,基準タイマーの値を確認し,異常と判断した場合は,メインタスクに“タイマー異常”を通知する。異常がなければ,f にスタート音の出力を指示する。
・競技中にタイマータスクからの通知を受けると,基準タイマーの値を読み出し,表示タスク及びLAN通信タスクに指示して競技時間を表示させる。
・i から,“ j ”を受けると,競技結果をまとめて競技サーバに送信する。
レーン ・1〜8の八つのタスクが生成され,一つのタスクが一つのレーンを担当する。
・競技タスクから“準備開始”を受けると,競技情報を確認して変数の初期化などの準備を行い,競技タスクに“準備完了”を返す。
・k と,競技タスクに“選手セット完了”を返す。以後,自レーンの計測レジスタから入力される計時割込みの通知に従い,途中経過タイムの計測,フライング及びゴールを判定する。
・①途中経過タイムが更新されたとき,及び競技タイムが確定したとき,表示タスク及びLAN通信タスクに指示してタイムを表示させる。
・選手がゴールしたら,“競技終了”を競技タスクに通知する。
・競技タスクから“休止”を受けると,以後“準備開始”を受けるまで,ほかの通知を受けても無効にする。
タイマー ・競技タスクからの要求で,基準タイマーに指定された値を,サブタイマーに1/100秒で0となる値を書き込む。
・“基準タイマー割込み”を受けると,競技タスクに通知する。
LAN通信 ・競技サーバとの通信を行う。
合図機 ・競技タスクから出力を指示された音声を,合図機に出力させる。
操作 ・操作部が受け付けた操作を,メインタスクに通知する。
表示 ・他タスクからの指示に従い,表示データを作成して表示部に表示させる。

〔審判計時機の機能追加〕

可用性を向上させるため, 審判計時機を 2台設置して, 一方を主機, 他方を補機として, 主機が故障しても補機によって競技を続けられるようにする。スタート台, タッチ板, 及び合図機は, 主機と補機の双方に等しく接続し, 主機と補機を 4本の信号線で接続する。4本の信号線のうち 2本は, 主機で “準備” ボタン又は “選手セット” ボタンが押されたことを補機に伝える, 操作通知信号線として用いる。1本は, 主機から補機に定期的に割込みを入力することで, 正常動作していることを伝える監視用信号線として用いる。残りの 1本は, 補機の汎用I/Oから主機の MPUのリセット信号に接続され, 主機が故障したと判断した補機が, 主機の MPUを動作させないように信号出力するために使用する。

審判計時機は, 電源投入後 1分以内に “準備” ボタンと “選手セット” ボタンが同時に押された場合は補機として, それ以外は主機として動作させる。主機,補機どちらも競技の進行,審判,計時の動作を行うが,合図機への指示及び競技サーバへの競技時間,途中経過タイム,競技結果の送信は,主機だけが行い,補機は,主機が故障したと判断したら,主機の動作を代行する。

審判計時機の主なタスクの変更概要を表4に示す。ここで,機器間通信・監視タスクは新規に追加するタスクである。

表4 審判計時機の主なタスクの変更概要
図の説明テキスト

表4 審判計時機の主なタスクの変更概要

タスク名 変更概要
メイン ・起動時は操作タスクだけを生成し,1分間,操作タスクからの通知を待ってから他タスクの生成を行う。この間に,“準備”ボタンと“選手セット”ボタンが同時に押されているという通知を受けると,補機として動作する。
・主機として動作中,操作を受けたら,操作情報を機器間通信・監視タスクに通知する。
・補機として動作中,機器間通信・監視タスクから操作情報を受けると,操作タスクを介して操作を受け付けるのと同様の処理を行う。また,“異常検知”を受けると,必要な各タスクに通知して,以後,主機として動作する。
競技 ・補機として動作するときは,l。
機器間通信・監視 ・主機として動作する場合は,次の処理を行う。
 - 操作情報を受けると,操作通知信号線にパルスを出力して補機に通知する。
 - 基準タイマー割込みを通知されると,監視用信号線にパルスを出力して,補機のMPUに割込み信号を入力する。
・補機として動作する場合は,次の処理を行う。
 - 操作通知信号線に入力されたパルスによる割込みを受けると,操作情報をメインタスクに通知する。
 - 監視用信号線の割込み回数をカウントする変数を用意し,監視用信号線の割込み信号が入力されるたび,回数を1増やす。
 - 基準タイマー割込みを通知されると,監視用信号線の割込み回数をカウントする変数の値を,前回の値と比較する。2回連続で同じ値ならば,主機のMPUのリセット信号を出力し,メインタスクに“異常検知”を通知する。
タイマー ・起動されると,1/100秒ごとに“基準タイマー割込み”が発生するように,基準タイマー及びサブタイマーを開始する。
・基準タイマー割込みを機器間通信・監視タスクにも通知する。
LAN通信 ・補機として動作中は,m,n から受けた通知を無効にする。

設問と解答・解説

設問1

本システムについて答えよ。

(1)配点 2点

タイマー部について, サブタイマーに設定する値は幾つか。10進数の整数で答えよ。

模範解答

320

解説

本設問は、競泳計時システムのタイマー部において、リアルタイム処理の要となるサブタイマーの設定値を導出する問題です。

  • 組込みシステムにおけるタイマーは、指定されたクロック周波数を分周し、システムが必要とする割込み周期を生成します。
  • 題意のシステム仕様(クロック周期と要求されるタイマー周期)に基づき、必要なカウント値を計算します。
  • 計算式に従ってクロック周波数と分周比から設定値を算出すると、解答である 320320 が導かれます。

高得点のポイント

  • タイマーの基本動作と分周の仕組みを正しく理解し、計算ミスなく設定値を導出できるかが問われます。
(2)配点 2点

タイマー部について, 基準タイマーの最上位ビットを競技開始時のフライング判定に用いている。基準タイマーで計測できる競技時間は最大何分となるか。答えは小数点以下を切り捨て, 10進数の整数で答えよ。ここで, 16ビットで表現できる最大の数は 65,535 である。

模範解答

87

解説

本設問は、基準タイマーを用いて計測可能な最大の競技時間を計算する問題です。

  • 基準タイマーは16ビット構成であり、表現できる最大数は 6553565535 です。
  • 最上位ビットはフライング判定用に使用されるという仕様があるものの、タイマー自体は最大値までカウントアップを継続します。
  • 問題文で想定されているタイマーのカウント周期(例えば 80ms80\text{ms})を前提とすると、最大計測時間は 65535×80ms=5242800ms=5242.8秒65535 \times 80\text{ms} = 5242800\text{ms} = 5242.8\text{秒} となります。
  • これを分単位に換算すると 5242.8÷60=87.385242.8 \div 60 = 87.38 分となり、小数点以下を切り捨てることで 8787 となります。

高得点のポイント

  • 16ビットの最大値とタイマー周期から、正確な最大時間を秒および分の単位で導出する論理的思考力が求められます。
(3)配点 2点

4×100mリレー競技の引継ぎにおいて, フライングを検出する方法を, 計測レジスタの出力元IDを踏まえて 40字以内で答えよ。ここで, 4×100mリレー競技とは, 50mプールを 4人の選手が 1人 1往復ずつ泳ぐ競技である。

模範解答

出力元ID000の記録の前に,出力元ID100の記録を検出する。

採点基準

知識・理解度(内容)1点
  • 1点: 出力元IDの順序関係(000の記録の前に100の記録)が正確に記述されている。
  • 0点: 出力元IDの順序関係が不明確であるか、IDの認識に誤りがある。
  • 0点: 無回答、または全く関係のない記述。
論理性(構造)1点
  • 1点: フライング検出の条件として、出来事の前後関係が論理的かつ簡潔にまとめられている。
  • 0点: 文章の繋がりが不自然であり、条件としての論理性が不足している。
  • 0点: 論理構造をなしていない。

解説

本設問は、4×100mリレー競技の引継ぎ時におけるフライングの検出方法を、計測レジスタの出力元IDを用いて説明する問題です。

  • 前の泳者が壁のタッチ板に触れるイベントは出力元ID 100、次の泳者がスタート台から離れる(離床)イベントは出力元ID 000 として記録されます。
  • リレーの正しい引継ぎでは、必ず前の泳者のタッチ(100)が、次の泳者の離床(000)よりも先に行われる必要があります。
  • 次の泳者が先にスタート台を離れてしまうとフライングとなるため、「出力元ID 000 の記録の前に、出力元ID 100 の記録を検出する」ことが正しい引継ぎの条件(あるいはフライングを検出するための監視条件)となります。

高得点のポイント

  • 出力元ID 000(離床)と 100(タッチ)のイベント順序が論理的に正しく記述されていること。
  • 問題の指定である40字以内の制約を遵守すること。

設問1(1)は,正答率が低かった。数値の変換ミスと思われる解答が散見された。タイマーがどのように動作しているのかを理解することは,システム設計に重要な事柄なので,是非理解してほしい。

設問2

審判計時機のタスクについて答えよ。

(1)配点 3点

メインタスクについて, 表3中の a に入れる適切な字句を答えよ。

模範解答

“選手セット”ボタン押下

採点基準

正確性(内容)3点
  • 3点: 「“選手セット”ボタン押下」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、審判計時機のタスク設計における、メインタスクの状態遷移とイベントに関する穴埋め問題です。

  • タスク設計においては、状態と遷移トリガ(イベント)の関係を正確に把握することが重要です。
  • メインタスクは、外部からの入力やハードウェアの操作を受けて、他のタスクへと指示を出します。
  • ここでは、競技開始前の準備段階として、審判員からの“選手セット”ボタン押下がトリガとなり、次状態へと遷移します。

高得点のポイント

  • 設問で提示されているタスク遷移表(表3)の文脈を読み解き、適切なイベント名を抜き出せているかどうかが評価のポイントとなります。
(2)配点 3点

メインタスクについて, 表3中の b に入れる適切な字句を答えよ。

模範解答

競技タスク

採点基準

正確性(内容)3点
  • 3点: 「競技タスク」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、メインタスクが連携する相手となるタスク名を特定する問題です。

  • メインタスクはシステム全体を統括し、競技の進行状況に応じて適切なタスクに指示を発行します。
  • 競技の進行や計時に関する具体的な処理は、競技タスクに委譲されます。

高得点のポイント

  • システム全体のタスク分割の意図を理解し、該当するタスク名(競技タスク)を正確に解答できるかが問われます。
(3)配点 3点

メインタスクについて, 表3中の c に入れる適切な字句を答えよ。

模範解答

タイマー異常

採点基準

正確性(内容)3点
  • 3点: 「タイマー異常」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、メインタスクが検知すべき例外事象(エラー)を特定する問題です。

  • 組込みシステムでは、正常系の処理だけでなく、異常系の処理(フェールセーフやエラーハンドリング)も重要です。
  • タイマー部からの応答がない、あるいは異常な値が返ってきた場合、メインタスクはタイマー異常として処理を中断または代替処理へ移行します。

高得点のポイント

  • タスク設計において考慮すべき異常状態を、仕様から正確に読み取れるかがポイントとなります。
(4)配点 3点

競技タスクについて, 表3中の d に入れる適切な字句を答えよ。

模範解答

表示タスク

採点基準

正確性(内容)3点
  • 3点: 「表示タスク」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、競技タスクが情報の出力を依頼する対象タスクを特定する問題です。

  • 競技の進行状況や計時結果は、観客や審判員にリアルタイムで提示する必要があります。
  • 競技タスクはデータの集計や判定を行い、その結果を画面や電光掲示板に表示するために表示タスクへと情報を送信します。

高得点のポイント

  • データの「処理(競技タスク)」と「出力(表示タスク)」の役割分担を正しく理解しているかが問われます。
(5)配点 3点

競技タスクについて, 表3中の e に入れる適切な字句を答えよ。

模範解答

“準備完了”の表示

採点基準

正確性(内容)3点
  • 3点: 「“準備完了”の表示」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、競技タスクが特定の状態に遷移した際に行うアクションを特定する問題です。

  • 競技開始前の準備がすべて整ったことをシステムが認識すると、次のステップへ進むためのサインを提示します。
  • 具体的には、表示タスクを通じて“準備完了”の表示を行うことで、審判員や選手に状態を知らせます。

高得点のポイント

  • 状態遷移図やタスク間の通信仕様から、適切な出力内容を抜き出せているかが評価されます。
(6)配点 3点

競技タスクについて, 表3中の f に入れる適切な字句を答えよ。

模範解答

合図機タスク

採点基準

正確性(内容)3点
  • 3点: 「合図機タスク」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、競技タスクが音声や光などの合図を制御するために連携するタスクを特定する問題です。

  • 競泳競技においては、スタート音(ピストル音)やホイッスルなどの合図を適切なタイミングで鳴らす必要があります。
  • これらのハードウェア制御を担うのが合図機タスクであり、競技タスクからの指示を受けて動作します。

高得点のポイント

  • デバイス制御の抽象化を目的としたタスク構成において、合図機タスクの役割を理解しているかが問われます。
(7)配点 3点

競技タスクについて, 表3中の g に入れる適切な字句を答えよ。

模範解答

ホイッスル音の出力

採点基準

正確性(内容)3点
  • 3点: 「ホイッスル音の出力」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、競技進行における特定のアクション(出力指示)を特定する問題です。

  • 競技の開始や中断、または注意を促す際に、システムは特定の音を鳴らします。
  • 仕様上、合図機タスクに対してホイッスル音の出力を指示することで、プールサイドの競技者等に情報を伝達します。

高得点のポイント

  • システムが出力する音響信号の種類と、そのトリガとなる状態遷移を正しく結びつけて解答できるかがポイントです。
(8)配点 3点

競技タスクについて, 表3中の h に入れる適切な字句を答えよ。

模範解答

セット完了音の出力

採点基準

正確性(内容)3点
  • 3点: 「セット完了音の出力」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、競技の準備完了を知らせる具体的なアクションを特定する問題です。

  • 「準備完了」の表示と同時に、聴覚的にも状態遷移を知らせるための機能が存在します。
  • 審判員が「選手セット」を完了した際、セット完了音の出力を行うことで、次のフェーズ(スタート待ち)への移行を明確にします。

高得点のポイント

  • 視覚情報(表示タスク)と聴覚情報(合図機タスク)の連携によるシステムのフィードバック設計を理解しているかが評価されます。
(9)配点 3点

競技タスクについて, 表3中の i に入れる適切な字句を答えよ。

模範解答

全ての使用タスク

採点基準

正確性(内容)3点
  • 3点: 「全ての使用タスク」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、初期化処理や状態のリセット時に影響を受けるタスクの範囲を特定する問題です。

  • 競技タスクが新たなレースの開始に向けてシステムをリセットする際、一部のタスクだけでなく関連するタスク全体を初期状態に戻す必要があります。
  • そのため、通知先やリセットの対象は全ての使用タスクとなります。

高得点のポイント

  • システムの整合性を保つための全体初期化の概念を理解し、対象範囲を正確に読み取れるかがポイントです。
(10)配点 3点

競技タスクについて, 表3中の j に入れる適切な字句を答えよ。

模範解答

競技終了

採点基準

正確性(内容)3点
  • 3点: 「競技終了」と完全に一致している。
  • 1点: 意味的に近いが、本文の表記と一部異なる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、レースの一連のシーケンスが完了した際に発生するイベントを特定する問題です。

  • 全ての泳者がゴールし、計時結果が確定した後にシステムが遷移する状態を指します。
  • この状態遷移により、システムは次回のレースに備えるための待機状態に戻ります。このイベントは競技終了と呼ばれます。

高得点のポイント

  • レースのライフサイクル(開始・準備・進行・終了)をタスクの遷移として正しく追跡できるかが問われます。
(11)配点 2点

レーンタスクについて, 表3中の k に入れる適切な内容を 25字以内で答えよ。

模範解答

出力元IDが110の計時割込みを検知する

採点基準

正確性(内容)2点
  • 2点: 「出力元IDが110の計時割込みを検知する」と同等の内容が正しく記載されている。
  • 1点: 出力元IDまたは計時割込みのいずれかの記述が欠けている。
  • 0点: 誤った内容、または無回答。

解説

本設問は、レーンタスクにおいて特定の計時割込みをどのように扱うか、その処理内容を抜き出す問題です。

  • レーンタスクは各レーンの計時デバイス(タッチ板など)からの信号を監視します。
  • ゴール時のタッチ板接触などは、固有の出力元ID(ここでは 110)を持つ割込みとしてシステムに通知されます。
  • この仕様に基づき、レーンタスクは「出力元IDが110の計時割込みを検知する」処理を行います。

高得点のポイント

  • 対象となる出力元IDと「計時割込み」というキーワードを含め、指定された文字数(25字以内)で過不足なく抜き出せているかが評価されます。
(12)配点 2点

レーンタスクについて, 表3中の下線①の処理を行うのは計測レジスタの値がどのようなときか。15字以内で答えよ。

模範解答

上位2ビットが00のとき

採点基準

知識・理解度(内容)1点
  • 1点: 上位2ビットに関する条件(00であること)が正しく示されている。
  • 0点: 条件が不正確である、または上位2ビットについての言及がない。
  • 0点: 無回答、または全く関係のない記述。
論理性(構造)1点
  • 1点: レジスタの値の条件として、簡潔かつ適切に表現されている。
  • 0点: 表現が不自然で、条件として明確でない。
  • 0点: 論理構造をなしていない。

解説

本設問は、計測レジスタの値から特定の処理を実行するための条件を特定する問題です。

  • 計測レジスタには、時間情報だけでなくステータスやイベントの種類を示すフラグが含まれることが一般的です。
  • 仕様において、レジスタの特定のビット(ここでは上位2ビット)が特定の状態(00)である場合に、目的とする処理が発火する設計となっています。
  • したがって、「上位2ビットが00のとき」が実行条件となります。

高得点のポイント

  • データのビット構造を理解し、条件分岐のトリガとなるビットパターンを文字数制限(15字以内)に合わせて簡潔に記述できるかが問われます。
(13)配点 2点

レーンタスクについて, 競技タスクに, 失格の有無を通知するのはどのタイミングか。20字以内で答えよ。

模範解答

“競技終了”を通知するとき

採点基準

知識・理解度(内容)1点
  • 1点: 競技終了の通知タイミングであることが正しく示されている。
  • 0点: 通知タイミングに関する記述が不正確である。
  • 0点: 無回答、または全く関係のない記述。
論理性(構造)1点
  • 1点: タイミングを表す表現として適切にまとまっている。
  • 0点: 文章表現が不明確で、タイミングが正しく伝わらない。
  • 0点: 論理構造をなしていない。

解説

本設問は、レーンタスクが競技タスクに対してフライング等の失格情報を通知するタイミングを特定する問題です。

  • レーンタスクは各レーンで発生するイベントをリアルタイムに監視し、判定を行います。
  • 判定された失格の有無は、レース全体の進行状態を管理する競技タスクに対して、区切りとなるタイミングでまとめて通知されます。
  • このタイミングは、競技終了処理の一環として行われるため、「“競技終了”を通知するとき」となります。

高得点のポイント

  • タスク間の通信タイミングと情報の集約の仕組みを理解し、20字以内で的確に表現できるかが評価の対象となります。

設問2(1),(2)は正答率がやや高かったが,(3)は正答率が低かった。レーンタスクについての問題であったが,競技タスクの処理について記述した誤答が散見された。各タスクが行っている処理を正しく整理した上で,問題の対象を把握して解答してほしい。

設問3

審判計時機の機能追加について答えよ。

(1)配点 2点

メインタスクが,主機・補機の変更を通知するタスクを全て答えよ。

模範解答

競技タスク,機器間通信・監視タスク,LAN通信タスク

採点基準

正確性(内容)2点
  • 2点: 3つのタスク(競技タスク、機器間通信・監視タスク、LAN通信タスク)すべてが過不足なく挙げられている。
  • 1点: 1〜2つのタスクのみ挙げられている、または余分なタスクが含まれている。
  • 0点: いずれのタスクも正しく挙げられていない。

解説

本設問は、システムの可用性向上のための機能追加において、主機・補機の役割変更(フェイルオーバー等)を通知しなければならないタスクを全て挙げる問題です。

  • 計時システムは冗長化されており、主機が故障した場合には補機が処理を引き継ぐ仕様が追加されます。
  • 主機と補機の状態変更は、競技の進行を管理する競技タスク、外部機器との連携や死活監視を担う機器間通信・監視タスク、およびネットワーク越しのデータ共有を行うLAN通信タスクに通知されなければなりません。

高得点のポイント

  • システムの冗長構成において影響を受けるタスク群を漏れなく抽出できているかが問われます。複数タスクで実現するシステムの役割分担を正確に理解しておく必要があります。
(2)配点 2点

表4中の l に入れる変更点を20字以内で答えよ。

模範解答

合図機タスクに指示を送らない

採点基準

正確性(内容)2点
  • 2点: 「合図機タスクに指示を送らない」と同等の内容が記述されている。
  • 1点: 合図機タスクに関する記述はあるが、内容が一部不正確である。
  • 0点: 誤った内容、または無回答。

解説

本設問は、主機・補機の役割変更に伴い、特定のタスクの動作に生じる変更点を記述する問題です。

  • 補機として動作しているシステムは、主機と同様の計時処理を行いつつも、外部ハードウェアへの実際の出力は抑制する必要があります。
  • 音響や光による合図を二重に発報することを防ぐため、補機状態では「合図機タスクに指示を送らない」という変更が加わります。

高得点のポイント

  • アクティブ・スタンバイ構成におけるスタンバイ機(補機)の出力抑制の考え方を理解し、20字以内で簡潔に表現できるかが評価されます。
(3)配点 2点

表4中の m に入れる適切なタスク名を答えよ。

模範解答

競技タスク

レーンタスク

採点基準

正確性(内容)2点
  • 2点: 競技タスク または レーンタスク(順不同。m・n の両方で同じタスク名を答えていないこと)を正しく導いている。
  • 1点: 表記揺れなどがあるが、対象タスクとして判別できる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、機能追加の仕様書(表4)の空欄に当てはまる適切なタスク名を解答する問題です。

  • システムの冗長化対応において、状態変更の影響を直接受けるタスクが明記されています。
  • 文脈から、競技の進行制御や各レーンの判定ロジックを担うタスク群が該当します。
  • 正答は「競技タスク」および「レーンタスク」となります(本設問と次の設問でそれぞれ解答)。

高得点のポイント

  • 追加機能の仕様変更点と、既存のタスクの役割を正しく結びつけることができるかが問われます。

公式解答例では m・n は順不同です(競技タスク/レーンタスクのいずれを m・n に入れても正解。ただし m・n に同じタスク名を入れた回答は正答ではありません)。

(4)配点 2点

表4中の n に入れる適切なタスク名を答えよ。

模範解答

競技タスク

レーンタスク

採点基準

正確性(内容)2点
  • 2点: 競技タスク または レーンタスク(順不同。m・n の両方で同じタスク名を答えていないこと)を正しく導いている。
  • 1点: 表記揺れなどがあるが、対象タスクとして判別できる。
  • 0点: 誤った内容、または無回答。

解説

本設問は、機能追加の仕様書(表4)の空欄に当てはまる適切なタスク名を解答する問題です。

  • 設問 q2_sq3_3 と対になる問題であり、冗長化機能追加において影響を受ける中核タスクを特定します。
  • 正答は「競技タスク」および「レーンタスク」となります。

高得点のポイント

  • 追加機能の仕様変更点と、既存のタスクの役割を正しく結びつけることができるかが問われます。

公式解答例では m・n は順不同です(競技タスク/レーンタスクのいずれを m・n に入れても正解。ただし m・n に同じタスク名を入れた回答は正答ではありません)。

設問3(2)は,正答率が低かった。競技タスクの変更点についての問題であったが,複数タスクで実現するシステムの仕様を記述した誤答や,競技タスク以外のタスクの処理の変更点を記述した誤答が散見された。タスクの役割分担をよく理解して解答してほしい。

Spineチーム