トロン技術者認定試験問題 - T-Engine Forum

ucodeQR
トロン技術者認定試験問題
00030140
A. 注意事項
1.
試験開始の合図があるまで、この問題冊子を開いてはいけません。
2. 試験開始と終了の時刻は試験監督員の時計が基準となります。試験監督員の指示に従いなさい。
3. 本冊子の本文は23ページです。試験中にページの落丁、乱丁、印刷不鮮明、および解答用紙の
汚れ等に気づいた場合は手を挙げて試験監督員に知らせなさい。
4. 問題に関する質問には答えることはできません。文意どおりに解釈して解答しなさい。
5. 「受験票」は、必ず机の上に置きなさい。
6. 「受験票」のほかに試験時間中、机の上に置けるものは、「B または HB の黒鉛筆または黒色シャー
プペンシル」「プラスチック製の消しゴム」「鉛筆削り(電動式を除く)」「時計」「眼鏡」です。
これ以外の所持品を置いてはいけません。
7. 解答用紙には氏名欄があるので、試験監督員の指示に従って、正しく記入しなさい。
8. 解答用紙の試験会場欄、受験日欄が正しいことを、試験監督員の指示に従って確認しなさい。
9. 解答用紙の受験番号欄に、自分の受験番号が記載されており、かつ、正しくマークされているこ
とを確認しなさい。
10. 13時30分以降は、試験終了後の確認作業が終了するまで退室を認めません。試験中の発病
又はトイレ等やむを得ない場合には、手を挙げて試験監督員の指示に従いなさい。ただし、一
時退室が認められた場合でも、試験教室以外での受験はできません。試験時間の延長も認められ
ません。
11. 試験時間中は、試験監督員の指示に従いなさい。従わない場合は退室させることがあります。
B. 本冊子、解答用紙について
1. 本冊子は、トロン技術者認定試験のためのものです。
2. 本冊子には、計25問の問題が収録されています。すべての問題を解答しなさい。
3. 解答用紙は本冊子とは別に1枚あり、マークシート方式による記入となります。
4. 本冊子の余白等は適宜利用してよいですが、どのページも切り離してはいけません。
5. 本冊子、解答用紙は持ち帰ることはできません。
6. 以下の欄に受験番号と氏名を記入しなさい。
受験番号
氏
名
解答上の注意が裏表紙に記載してあるので、この問題冊子を左側から裏返
して必ず読みなさい。ただし、問題冊子を開いてはいけません。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
トロン技術者認定試験
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
Copyright © 2011 T-Engine Forum. All Rights Reserved.
トロン技術者認定試験
注意事項
・ 特に記載されていない限り、μITRON とはμITRON4.0 と考えなさい。
・ 特に記載されていない限り、「タスク」とはプログラムの並行実行の単位と考えなさい。
・ 特に記載されていない限り、
「システムコール」と「サービスコール」は同じ意味と考え
なさい。
・ 特に記載されていない限り、マルチプロセッサでの動作は考慮せずに解答しなさい。
・ プログラムリストに含まれる /* 略 */ の箇所は、何らかの処理が省略されているもの
として解答しなさい。
出題区分1
問1
(20問
各3点)
NNN00212
T-Kernel(μITRON)のタスク管理機能に関する以下の説明のうち、誤っているものを一つ選べ。
選択肢
1. タスクの生成とは、登録されていないタスクを実行可能状態へ移行することである。
タスクが生成される前、あるいは、削除されたタスクが置かれている状態のことを未登録状
態という。
2. タスク例外処理機能は、タスクに発生した例外事象に対する処理を、タスクのコンテキスト
で行うための機能である。タスクで実行している処理を中断しなければならない場合などに、
タスク例外処理機能を利用することで獲得した資源を解放することができる。
3. tk_chg_pri (chg_pri)は、タスク優先度を変更する。
tk_chg_pri (chg_pri)は、他タスクだけでなく、自タスクに対しても発行することができ、
tk_chg_pri (chg_pri)の発行によって自タスクの実行権を失う場合もある。
4. tk_ext_tsk (ext_tsk)は、自タスクを正常終了させ、休止状態へと移行させる。tk_exd_tsk
(exd_tsk)は自タスクの終了と削除を行う。
tk_ext_tsk (ext_tsk)、または tk_exd_tsk (exd_tsk)で終了した場合、タスクが獲得した資
源は自動的には解放されない。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 1 / 23 -
トロン技術者認定試験
問2
NNN01090
T-Kernel(μITRON)では、パラメータの意味を明確にするため出現頻度の高いデータ型や特殊な意
味を持つデータ型に対して専用の名称を定義している。この中で TMO 型は「タイムアウト指定」に使
用するための型、RELTIM 型は「相対時間」を指定するための型として定義されている。
引数に RELTIM 型を指定するものを、以下の中からすべて選べ。
選択肢
1. 自タスクを起床待ち状態へ移行
2. タスク遅延
3. セマフォ資源獲得
4. アラームハンドラの動作開始
問3
NNN00582
T-Kernel(μITRON)のメールボックスで利用するメッセージパケットに関する以下の説明のうち、
誤っているものを一つ選べ。
選択肢
1. 送信側タスクでメモリプールから確保したメモリブロックをメッセージパケットとしてメー
ルボックスに送信することができる。受信側タスクではメモリブロックを直接メモリプール
に返却することができる。
2. メッセージパケットの内容はメールボックス内の領域にコピーされる。
3. 静的に確保した領域をメッセージパケットとしてメールボックスに送信することができる。
4. メッセージパケットの領域としては、ユーザのメッセージ領域だけでなく、メッセージヘッ
ダを含めたサイズの領域を確保しなければならない。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 2 / 23 -
トロン技術者認定試験
問4
NNN00594
T-Kernel を利用して書かれた以下のプログラムを動作させるものとする。
almid で指定されるアラームハンドラが起動される時刻を、選択肢の中から一つ選べ。
ただし、プログラムは以下の条件で動作するものとする。
・ 待ちが発生しないシステムコールの処理時間は無視できる程短い。
・ stime.lo += (UW)4*MIN; では桁上がりは発生していない。
※μITRON の場合は、以下を前提として解答せよ。
・ T-Kernel の時間の単位は1ミリ秒である。
・ T-Kernel では SYSTIM は以下のように定義されている。
typedef struct systim {
W
hi;
/* 上位 32 ビット */
UW
lo;
/* 下位 32 ビット */
} SYSTIM;
・ システムコールの名称は tk_get_tim を get_tim のように読み替える。
選択肢
1. (ア)の tk_sta_alm を発行してから8分後
2. (ア)の tk_sta_alm を発行してから11分後
3. (ア)の tk_sta_alm を発行してから12分後
4. (ア)の tk_sta_alm を発行してから15分後
#define MIN
(60*1000)
ID
almid;
void
task( INT stacd, VP exinf )
{
SYSTIM stime;
/* = 60 秒 = 1 分 */
/* アラームハンドラ ID */
/* タスク */
/* 略 */
tk_sta_alm(
tk_dly_tsk(
tk_sta_alm(
tk_dly_tsk(
almid, 12*MIN );
5*MIN );
almid, 10*MIN );
1*MIN );
/* (ア) */
tk_get_tim( &stime );
stime.lo += (UW)4*MIN;
tk_set_tim( &stime );
/* 略 */
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 3 / 23 -
トロン技術者認定試験
問5
NNN00323
T-Kernel(μITRON)の用語に関する以下の説明のうち、正しいものをすべて選べ。
選択肢
1. セマフォとは、使用されていない資源の有無や数量を数値で表現することにより、その資源
を使用する際の排他制御や同期を行うためのオブジェクトである。
2. イベントフラグは、イベントの有無をビットごとのフラグで表現することにより、同期を行
うためのオブジェクトである。
3. メールボックスは、1ワードのメッセージを受け渡しすることにより、同期と通信を行うた
めのオブジェクトである。
4. メッセージバッファは、共有メモリ上に置かれたメッセージを受け渡しすることにより、同
期と通信を行うためのオブジェクトである。
問6
NNN00597
T-Kernel(μITRON)のランデブ機能に関する以下の説明のうち、誤っているものを一つ選べ。
※μITRON の場合は ( ) 内のサービスコールを呼び出すものとして解答せよ。
選択肢
1. ランデブ機能は、他の同期・通信機能を組み合わせて実現することも可能であるが、返答を
伴う通信を行う場合には、それ専用の機能を用意した方が、アプリケーションプログラムが
書きやすく、他の同期・通信機能を組み合わせるよりも効率的である。
2. デ ィ ス パ ッ チ 禁 止 中 あ る い は 割 込 み 禁 止 中 の タ ス ク か ら tk_fwd_por (fwd_por) や
tk_rpl_rdv (rpl_rdv) を発行することができる。
3. tk_acp_por (acp_por) は、ランデブポートに対するランデブ受付を行うシステムコールであ
り、受付側選択条件を表すビットパターンなどをパラメータとして指定する。
4. ランデブ成立条件に関して、呼出側と受付側がまったく対称であるにもかかわらず、
tk_cal_por (cal_por) と tk_acp_por (acp_por) が別のシステムコールで実現されているの
は、ランデブ成立後の処理が異なるからである。すなわち、呼出側はランデブ成立後に実行
可能状態となるのに対し、受付側は待ち状態になる。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 4 / 23 -
トロン技術者認定試験
問7
NNN00590
T-Kernel(μITRON)のセマフォに関する以下の説明のうち、誤っているものを一つ選べ。
選択肢
1. セマフォは、対応する資源の有無や数量を表現する資源数と、資源の獲得を待つタスクの待
ち行列を持つ。
2. セマフォ生成の時に設定された最大資源数を超えて資源を返却しようとした場合、エラーが
発生する。
3. 資源獲得待ち状態のタスクがあるセマフォを削除した場合、待ち状態にあったタスクには強
制的に資源が割り当てられて待ち状態が解除される。
4. セマフォに資源を返却したタスクが、その処理によって待ち状態に移行することはないが、
実行権をプリエンプトされることはある。
問8
NNN01114
T-Kernel 仕様において、
「タスク独立部およびディスパッチ禁止状態から発行できなくてはならない」
と規定されているシステムコールを、以下の中からすべて選べ。
※μITRON の場合は、以下を前提として解答せよ。
・ ( ) 内には、μITRON のタスクコンテキスト専用の API を記載している。
・ T-Kernel では、タスク部から発行できるシステムコールの API と、非タスク部から発行でき
るシステムコールの API は同じである。
選択肢
1. tk_snd_mbf (snd_mbf)
2. tk_rot_rdq (rot_rdq)
3. tk_slp_tsk (slp_tsk)
4. tk_set_flg (set_flg)
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 5 / 23 -
トロン技術者認定試験
問9
NNN00565
T-Kernel(μITRON)において、実行状態のタスク A が他のタスクによって「プリエンプト」される
のは、以下のどの場合か。正しいものをすべて選べ。
選択肢
1. タスク A の発行したシステムコールにより、タスク A と同じ優先度を持つ別のタスクの待ち
状態が解除された場合
2. 割込みハンドラが起動され、その割込みハンドラの中から発行されたシステムコールにより、
タスク A よりも高い優先度を持つ別のタスクの待ち状態が解除された場合
3. 割込みハンドラが起動され、その割込みハンドラの中から発行されたシステムコールにより、
タスク A と同じ優先度を持つ別のタスクの待ち状態が解除された場合
4. 割込みハンドラが起動されたが、その割込みハンドラ内ではシステムコールを全く発行せず
に、割込みハンドラを終了した場合
問10
NNN00596
T-Kernel(μITRON)の割込みハンドラに関する以下の説明のうち、誤っているものを一つ選べ。
選択肢
1. 割込みハンドラで使用できるシステムコールは限定されている。
2. 割込みハンドラ実行中は、タスクの実行は中断された状態になる。
3. 割込みハンドラから起動されたタスクは、他のどのタスクよりも高い優先度で実行される。
4. 応答性を向上させるため、割込みハンドラで実行する処理はできるだけ短くする方が良い。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 6 / 23 -
トロン技術者認定試験
問11
NNN00591
T-Kernel(μITRON)を利用したシステムにおいて、タスクA~Dが以下の状態であるとする。
タスク
タスク優先度
タスク状態
タスクA
5
実行状態
タスクB
5
実行可能状態
タスクC
5
実行可能状態
タスクD
1
イベントフラグ待ち状態
この状態において、実行状態のタスクAに次の[処理 1]、[処理 2]のような処理が実装されていた
場合、各タスクはどのように動作するか。正しい説明を選択肢の中から一つ選べ。
タスクAが実行する処理
[処理 1]
タスクDのイベントフラグ待ちを解除する。
[処理 2]
自タスクを起床待ち状態に移行する。
ただし、タスクBの方がタスクCよりも先に実行可能状態になったものとする。
選択肢
1. [処理 1]によってタスクDが実行状態へ移行し、タスクAは実行可能状態となる。この時、
タスクAの優先順位はタスクBよりも高くなる。また、[処理 2]はタスクAが再び実行状態
になるまで実行されない。
2. [処理 1]によってタスクDが実行状態へ移行し、タスクAは実行可能状態となる。この時、
タスクAの優先順位はタスクCよりも低くなる。また、[処理 2]はタスクAが再び実行状態
になるまで実行されない。
3. [処理 1]によってタスクDが実行可能状態となる。この時、タスクDの優先順位はタスクB
よりも高くなる。その後、[処理 2]によってタスクAが起床待ち状態に移行すると、タスク
Dが実行状態に移行する。
4. [処理 1]によってタスクDが実行可能状態となる。この時、タスクDの優先順位はタスクC
よりも低くなる。その後、[処理 2]によってタスクAが起床待ち状態に移行すると、タスク
Bが実行状態に移行する。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 7 / 23 -
トロン技術者認定試験
問12
NNN00566
T-Kernel(μITRON)において、あるタスク A の「優先順位」が別のタスク B の「優先順位」よりも
高い状態となるのは、以下のどの場合か。正しいものをすべて選べ。
選択肢
1. タスク A の発行したシステムコールによって、タスク B の優先度を変更し、タスク A の優先
度よりも高くした場合
2. タスク A、タスク B とは別のタスク C の発行したシステムコールによって、タスク B の優先
度を変更し、タスク A の優先度よりも低くした場合
3. タスク A、タスク B とは別のタスク C の発行したシステムコールによって、タスク B の優先
度を変更し、タスク A の優先度と同じにした場合
4. タスク A の発行したシステムコールによって、タスク A からタスク B にディスパッチされた
場合
問13
NNN00584
T-Kernel(μITRON)のミューテックスの動作に関する以下の説明のうち、正しいものをすべて選べ。
選択肢
1. 優先度上限プロトコルを持つミューテックスの上限優先度が 10 の場合、現在優先度が 20 で
あるタスクがミューテックスをロックしても、タスクの現在優先度は 20 のままである。
2. 優先度上限プロトコルを持つミューテックスの上限優先度が 10 の場合、現在優先度が 20 で
あるタスクがミューテックスをロックすると、タスクの現在優先度は 10 に変わる。
3. 優先度上限プロトコルを持つミューテックスの上限優先度が 10 の場合、現在優先度が 5 であ
るタスクがミューテックスをロックしても、タスクの現在優先度は 5 のままである。
4. 優先度上限プロトコルを持つミューテックスの上限優先度が 10 の場合、現在優先度が 5 であ
るタスクがミューテックスをロックすると、タスクの現在優先度は 10 に変わる。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 8 / 23 -
トロン技術者認定試験
問14
NNN00593
T-Kernel のイベントフラグを利用したプログラムについて考える。
タスク A、タスク B、タスク C、タスク D の 4 つのタスクがあり、いずれも同じ ID 番号のイベント
フラグの待ち解除条件の成立を、下の表に示すパラメータで待っているものとする。
今、この ID 番号のイベントフラグを対象に、tk_set_flg でビットパターン 0xF0000F00 をセットす
るものとする。この tk_set_flg の発行により、イベントフラグの待ちが解除されるタスクを、選択
肢の中からすべて選べ。
ただし、プログラムは以下の条件で動作するものとする。
・ タスク A~タスク D が待っているイベントフラグの状態:
ビットパターン:
0x00000000
イベントフラグ属性: TA_TPRI | TA_WMUL
・ タスク A~タスク D のイベントフラグの待ち条件
タスク
タスク優先度
待ちビットパターン
待ちモード
タスク A
3
0x00000001
TWF_ORW | TWF_CLR
タスク B
7
0xF0000000
TWF_ORW | TWF_CLR
タスク C
5
0xF0F0F0F0
TWF_ANDW | TWF_CLR
タスク D
6
0x30000F00
TWF_ANDW | TWF_CLR
※μITRON の場合は以下を前提として解答せよ。
・ T-Kernel の tk_set_flg はμITRON の set_flg に相当する。
・ tk_wai_flg の待ちモードに指定する TWF_CLR は、μITRON の cre_flg で指定するイベントフ
ラグ属性の TA_CLR と同等の機能である。
選択肢
1. タスク A
2. タスク B
3. タスク C
4. タスク D
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 9 / 23 -
トロン技術者認定試験
問15
NNN00587
T-Kernel(μITRON)の基本的な用語の意味に関する以下の説明のうち、正しいものをすべて選べ。
選択肢
1. コンテキストとはプログラムの実行される環境のことであり、コンテキストが同じであると
いうためには、少なくともプロセッサの動作モードが同一で、用いているスタック空間が同
一でなければならない。
2. 独立したコンテキストで実行すべき処理は、必ず異なるスタック空間で実行しなければなら
ない。
3. 優先順位は、タスクやメッセージの処理順序を制御するために、システムコールのパラメー
タとして指定される。
4. タスクの優先度はシステムコールの発行によって動的に変化する。
問16
NNN00578
T-Kernel(μITRON)では、タスクの起動 tk_sta_tsk (sta_tsk) を発行した場合に、実行権が他のタ
スクに奪われることがある。実行権が他のタスクに奪われた後で元のタスクに実行権が戻ったとき、
tk_sta_tsk (sta_tsk)を発行したタスクのタスク状態はどのように変化するか。
正しいものを選択肢の中から一つ選べ。
選択肢
1. 待ち状態から実行可能状態に移行する。
2. 実行可能状態から実行状態に移行する。
3. 待ち状態から実行可能状態に移行した後、実行状態に移行する。
4. 待ち状態から実行状態に移行する。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 10 / 23 -
トロン技術者認定試験
問17
NNN00588
T-Kernel(μITRON)の可変長メモリプール機能に関する以下の説明のうち、誤っているものをすべ
て選べ。
選択肢
1. TMO_POL を指定して tk_get_mpl を発行した場合(μITRON では pget_mpl を発行した場合)、割
り当て可能なメモリの有無にかかわらず、待ちが発生することなくリターンする。
2. 可変長メモリプールのシステムコールの呼び出しに関しては排他制御を行う必要がある。
3. 可変長メモリプール機能で獲得したメモリ領域は、複数のタスクや割込みハンドラからアク
セスする場合も排他制御を行う必要はない。
4. 可変長メモリプールでは獲得したいサイズ以上の空き領域があったとしても、メモリを獲得
できない場合がある。
問18
NNN00592
T-Kernel(μITRON)のタスク例外処理機能に関する以下の説明のうち、正しいものを一つ選べ。
※μITRON の場合は、タスク例外ハンドラをタスク例外処理ルーチンと読み替えて解答せよ。
選択肢
1. タスク毎に複数のタスク例外ハンドラを登録することができる。
2. ディスパッチ禁止状態では、タスク例外ハンドラは起動されない。
3. 待ち状態のタスクにタスク例外処理を要求した場合は、タスク例外ハンドラが即時実行され
る。
4. タスク例外ハンドラの実行は、タスクと同じコンテキストで行われる。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 11 / 23 -
トロン技術者認定試験
問19
NNN00589
T-Kernel(μITRON)の周期ハンドラ機能に関する以下の説明のうち、正しいものを一つ選べ。
選択肢
1. 周期ハンドラ生成時に指定する周期ハンドラ用の関数には、引数はなく、戻値もない。
2. TA_STA 属性を指定して周期ハンドラを生成した場合、1 回目の周期ハンドラの起動は、生成
から起動位相で指定された時間だけ経過した後になる。
3. 動作状態の周期ハンドラに対して tk_sta_cyc (sta_cyc) を発行した場合は、エラーとなる。
4. TA_PHS 属性を指定して周期ハンドラを生成した場合、周期ハンドラ起動時に起動位相が保存
されない。
問20
NNN00595
T-Kernel Standard Extension のプロセスのメインタスクやサブタスクの優先度として、タスク生
成時に 0~255 の優先度が与えられる。このうち、128~191 の優先度を与えられたタスクのスケジュー
リング方式の説明として正しいものを、以下の中から一つ選べ。
選択肢
1. 優先度順に厳密にスケジューリングされ、同一優先度の場合は FCFS(First Come First
Served)方式でスケジューリングされる。
2. 優先度順に厳密にスケジューリングされ、同一優先度の場合はラウンドロビンで平等にスケ
ジューリングされる。
3. 128~191 の優先度を与えられたタスクの間でラウンドロビンスケジューリングが行われ、優
先度は相対的なスケジューリングの頻度を示す。
4. 128~191 の優先度を与えられたタスクの間でラウンドロビンスケジューリングが行われ、す
べてのタスクは平等にスケジューリングされる。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 12 / 23 -
トロン技術者認定試験
(計算用紙)
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 13 / 23 -
トロン技術者認定試験
出題区分2
問21
(5問
各8点)
NNN00389
μITRON を利用して書かれた次ページのプログラムを動作させるものとする。
このプログラムを実行した場合、タスク中の処理1、処理2、処理3の実行順はどのようになるか。
正しいものを選択肢の中から一つ選べ。
ただし、プログラムは以下の条件で動作するものとする。
・ 各タスクのタスク ID、初期状態、初期優先度は以下のとおりであり、この状態から実行が開
始されるものとする。
タスク
タスク ID
初期状態
初期優先度
task1
tskid1
実行可能状態
5
task2
tskid2
実行可能状態
4
task3
tskid3
休止状態
4
・ セマフォの情報は次のとおりとする。
セマフォ ID
semid
セマフォの資源数の初期値
0
・ 待ちが発生しない場合の wai_sem の処理時間は無視できる程短い。
・ 処理1、処理2、処理3の処理時間は無視できる程短い。
※T-Kernel の場合は、以下を前提として解答せよ。
・ μITRON の sig_sem(id)は T-Kernel の tk_sig_sem(id,1)に相当する。
・ μITRON の wai_sem(id)は T-Kernel の tk_wai_sem(id,1,TMO_FEVR)に相当する。
・ μITRON の slp_tsk()は T-Kernel の tk_slp_tsk(TMO_FEVR)に相当する。
・ システムコールの名称は sta_tsk を tk_sta_tsk のように読み替える。
選択肢
1. 処理1、処理2、処理3の順番で実行される。
2. 処理1、処理3、処理2の順番で実行される。
3. 処理2、処理1、処理3の順番で実行される。
4. 処理2、処理3、処理1の順番で実行される。
5. 処理3、処理1、処理2の順番で実行される。
6. 処理3、処理2、処理1の順番で実行される。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 14 / 23 -
トロン技術者認定試験
void
{
task1( VP_INT exinf )
sta_tsk(tskid3,0);
/* 処理1 */
sig_sem(semid);
ext_tsk();
}
void
{
task2( VP_INT exinf )
wai_sem(semid);
tslp_tsk(10);
wup_tsk(tskid3);
/* 処理2 */
ext_tsk();
}
void
{
task3( VP_INT exinf )
sig_sem(semid);
wai_sem(semid);
slp_tsk();
/* 処理3 */
ext_tsk();
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 15 / 23 -
トロン技術者認定試験
問22
NNN00586
T-Kernel のタスクスライスタイム機能(仕様書の抜粋を参照)を利用して書かれた次ページのプロ
グラムを動作させるものとする。このとき、2 回目の処理Bが終了する時刻は、下記の説明にある時
刻 X から
ア
ア
イ
イ
0 ミリ秒後である。
に当てはまる数値をそれぞれ解答欄にマークしなさい。
ただし、プログラムは以下の条件で動作するものとする。
・ 2 つのタスク A、タスク B が起動されている。
・ タスク A、タスク B の優先度は 3 に設定されている。
・ システム起動後に、タスク A、タスク B の順でタスクが起動されている。
・ タスク A が初めて実行状態になった時刻を時刻 X とする。
・ 時刻 X において、タスク B は実行可能状態となっている。
・ タスク A、および、タスク B はそれぞれ taskA、taskB を実行する。
・ tk_chg_slt の処理時間は無視できる程短い。
※ μITRON の場合は、以下を前提として解答せよ。
・ T-Kernel の tk_dly_tsk はμITRON の dly_tsk に相当する。
・ T-Kernel の時間の単位は 1 ミリ秒である。
T-Kernel 仕様書での tk_chg_slt の定義 (一部を抜粋)
タスクスライスタイム変更
tk_chg_slt
【C 言語インタフェース】
ER
ercd = tk_chg_slt ( ID tskid, RELTIM slicetime );
【パラメータ】
ID
tskid
TaskID
タスク ID
RELTIM
slicetime
SliceTime
スライスタイム(ミリ秒)
【解説】
tskid で示されたタスクのスライスタイムを、slicetime で示される値に変更する。
スライスタイムはタスクのラウンドロビンスケジューリングのための機能である。
タスクが slicetime 以上の時間、連続して実行されると、同じ優先度を持つタスクの
中で最低の優先順位となり、自動的に実行権を次のタスクに譲る。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 16 / 23 -
トロン技術者認定試験
void
{
taskA(INT stacd, VP exinf)
tk_chg_slt( TSK_SELF, 30 );
while ( 1 ) {
/* 処理A:所要時間 100 ミリ秒の処理 */
}
}
void
{
taskB(INT stacd, VP exinf)
while ( 1 ) {
/* 処理B:所要時間 50 ミリ秒の処理 */
tk_dly_tsk(100);
}
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 17 / 23 -
トロン技術者認定試験
問23
NNN00396
T-Kernel を利用して書かれた次ページのプログラムを動作させるものとする。
このプログラムを実行した場合、printf で出力される文字は以下の順に表示される。
ア
空欄
ア
→
~
イ
オ
→
ウ
→
エ
→
オ
に当てはまる文字を、選択肢の中から一つずつ選べ。
ただし、表示される文字がない場合は、選択肢 6 を選択すること。
例えば、A → B とだけ表示されるのであれば、
答欄には 2 を、
ウ
~
オ
ア
の解答欄には 1 を、
イ
の解
の解答欄には 6 をマークする。
なお、プログラムは以下の条件で動作するものとする。
・ システム起動時には task5 が優先度 84 のタスクとして実行される。
・ task5 の中のすべてのシステムコールは正常に終了する。
・ printf 関数やシステムコールの処理時間は無視できる程短い。
・ T_CTSK 構造体のメンバは次の通りとし、これ以外のメンバの記載は省略している。
typedef struct t_ctsk {
VP
exinf;
/* 拡張情報 */
ATR
tskatr;
/* タスク属性 */
FP
task;
/* タスク起動アドレス */
PRI
itskpri;
/* タスク起動時優先度 */
INT
stksz;
/* スタックサイズ(バイト数) */
/* これ以下のメンバの記載は省略 */
} T_CTSK;
・ T_CSEM 構造体のメンバは次の通りとし、これ以外のメンバの記載は省略している。
typedef struct t_csem {
VP
exinf;
/* 拡張情報 */
ATR
sematr;
/* セマフォ属性 */
INT
isemcnt;
/* セマフォの初期値 */
INT
maxsem;
/* セマフォの最大値 */
/* これ以下のメンバの記載は省略 */
} T_CSEM;
※μITRON の場合は、以下を前提として解答せよ。
・ T-Kernel の tk_cre_tsk はμITRON の acre_tsk に相当する。
・ T-Kernel の tk_wai_sem はμITRON の twai_sem に相当する。
・ T-Kernel の tk_wai_sem の第2引数には、要求資源数を指定する。
・ T-Kernel の tk_sig_sem の第2引数には、返却する資源数を指定する。
・ サービスコールの名称は tk_sta_tsk を sta_tsk のように読み替える。
選択肢
1. A
2. B
3. C
4. D
5. E
6. (出力なし)
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 18 / 23 -
トロン技術者認定試験
LOCAL ID
semid;
void
task1( INT stacd, VP exinf )
{
tk_wai_sem(semid, 1, TMO_FEVR);
printf("A\n");
tk_sig_sem(semid, 1);
tk_exd_tsk();
}
void
task2( INT stacd, VP exinf )
{
tk_wai_sem(semid, 2, TMO_FEVR);
printf("B\n");
tk_sig_sem(semid, 2);
tk_exd_tsk();
}
void
task3( INT stacd, VP exinf )
{
tk_wai_sem(semid, 4, TMO_FEVR);
printf("C\n");
tk_sig_sem(semid, 4);
tk_exd_tsk();
}
void
task4( INT stacd, VP exinf )
{
tk_wai_sem(semid, 3, TMO_FEVR);
printf("D\n");
tk_sig_sem(semid, 3);
tk_exd_tsk();
}
void
task5(INT stacd, VP exinf)
{
T_CTSK ctsk = { NULL, TA_HLNG|TA_RNG0, (FP)NULL, 1, 1024, /*他のメンバは省略*/ };
T_CSEM csem = { NULL, TA_TPRI|TA_CNT, 0, 8, /*他のメンバは省略*/ };
ID
tid1, tid2, tid3, tid4;
semid = tk_cre_sem(&csem);
ctsk.task
= task1;
ctsk.itskpri
= 83;
tid1 = tk_cre_tsk(&ctsk);
ctsk.task
= task2;
ctsk.itskpri
= 82;
tid2 = tk_cre_tsk(&ctsk);
ctsk.task
= task3;
ctsk.itskpri
= 81;
tid3 = tk_cre_tsk(&ctsk);
ctsk.task
= task4;
ctsk.itskpri
= 80;
tid4 = tk_cre_tsk(&ctsk);
tk_sta_tsk(tid1, 0);
tk_sta_tsk(tid2, 0);
tk_sta_tsk(tid3, 0);
tk_sta_tsk(tid4, 0);
tk_sig_sem(semid, 4);
/* Create semaphore */
/* Create tasks */
/* Start tasks */
/* Signal semaphore */
printf("E\n");
tk_exd_tsk();
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 19 / 23 -
トロン技術者認定試験
問24
NNN00556
T-Kernel(μITRON)の周期ハンドラを利用したプログラムを動作させるものとする。
このとき、いずれか一つのハンドラが起動されてからすべてのハンドラの処理が完了するまでの最
長時間は
ア
イ
0 マイクロ秒(μs)である。
ア
イ
に当てはま
る数値をそれぞれ解答欄にマークしなさい。
ただし、プログラムは以下の条件で動作するものとする。
・ このシステムのタイムティックは 1 ミリ秒(ms)とする。
・ 各周期ハンドラの起動周期、処理時間は以下のとおりとする。
周期ハンドラ
起動位相(ms)
起動周期(ms)
処理時間(μs)
周期ハンドラ1
0
10
100
周期ハンドラ2
5
25
150
周期ハンドラ3
5
30
300
周期ハンドラ4
10
100
400
・ 周期ハンドラ2~4の起動位相は、周期ハンドラ1の最初の起動時刻を起点として、それぞ
れ 5 ms、5 ms、10 ms であるとする。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 20 / 23 -
トロン技術者認定試験
問25
NNN00560
T-Kernel を利用して書かれた次ページ以降のプログラムを動作させるものとする。
このとき、下記の設問1、設問2に解答せよ。
このプログラムは、メッセージバッファを利用してタスク間通信を行うプログラムの例であり、タ
スクAが送信するメッセージをタスクB、タスクC、タスクDがそれぞれ受信する。
ただし、プログラムは以下の条件で動作するものとする。
・ T_CTSK 構造体のメンバは次の通りとし、これ以外のメンバの記載は省略している。
typedef struct t_ctsk {
VP
exinf;
/* 拡張情報 */
ATR
tskatr;
/* タスク属性 */
FP
task;
/* タスク起動アドレス */
PRI
itskpri;
/* タスク起動時優先度 */
INT
stksz;
/* スタックサイズ(バイト数) */
/* これ以下のメンバの記載は省略 */
} T_CTSK;
・ mbfidB、mbfidC、mbfidD には、あらかじめ生成されたメッセージバッファの ID が登録され
ている。
・ 各メッセージバッファでは、メッセージ送受信に必要なバッファサイズが確保されている。
・ 各システムコールにおいてエラーは発生しない。
・ 本プログラムに影響を及ぼすタスクやハンドラなどは動作していない。
・ tk_dly_tsk による待ち時間の他の処理時間は無視できる程短い。
・ タスクA、タスクB、タスクC、タスクDは、タスク taskStarter から生成・起動される。
・ タスクの名称と対応は以下の通りとする。
タスク
関数
タスク ID
タスクA
taskTx
tidA
タスクB
taskRx
tidB
タスクC
taskRx
tidC
タスクD
taskRx
tidD
※ μITRON の場合は、以下を前提として解答せよ。
・ T-Kernel の tk_snd_mbf は、μITRON の tsnd_mbf に相当する。
・ T-Kernel の tk_rcv_mbf は、μITRON の trcv_mbf に相当する。
・ T-Kernel の tk_cre_tsk は、μITRON の acre_tsk に相当する。
・ T-Kernel の tk_sta_tsk の第1引数の値は、タスクとして指定された関数の第1引数 stacd
に設定される。
・ サービスコールの名称は、tk_ext_tsk を ext_tsk のように読み替える。
【設問1】
本プログラムを実行した場合、タスクA、タスクB、タスクC、タスクDにおいて tk_exd_tsk が
実行される順番を以下の中から1つ選べ。
選択肢
1. tk_exd_tsk はタスクA、タスクB、タスクC、タスクDの順に実行される。
2. tk_exd_tsk はタスクB、タスクA、タスクC、タスクDの順に実行される。
3. tk_exd_tsk はタスクC、タスクB、タスクA、タスクDの順に実行される。
4. tk_exd_tsk はタスクC、タスクD、タスクB、タスクAの順に実行される。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 21 / 23 -
トロン技術者認定試験
【設問2】
本プログラムにおいて、SENDER_PRI の定義を以下のように変更し、タスクAの優先度を 4 としたう
えでプログラムを実行したとする。
#define
SENDER_PRI
4
この場合、タスクA、タスクB、タスクC、タスクDにおいて tk_exd_tsk が実行される順番を以
下の中から1つ選べ。
選択肢
1. tk_exd_tsk はタスクA、タスクB、タスクC、タスクDの順に実行される。
2. tk_exd_tsk はタスクB、タスクA、タスクC、タスクDの順に実行される。
3. tk_exd_tsk はタスクC、タスクB、タスクA、タスクDの順に実行される。
4. tk_exd_tsk はタスクC、タスクD、タスクB、タスクAの順に実行される。
IMPORT ID
mbfidB, mbfidC, mbfidD;
void
taskTx( INT stacd, VP exinf )
{
UW
txmsg;
/* メッセージバッファ ID */
/* 送信タスク */
txmsg = 1;
tk_snd_mbf( mbfidC, &txmsg, sizeof(txmsg), TMO_FEVR );
txmsg = 2;
tk_snd_mbf( mbfidD, &txmsg, sizeof(txmsg), TMO_FEVR );
txmsg = 3;
tk_snd_mbf( mbfidB, &txmsg, sizeof(txmsg), TMO_FEVR );
tk_exd_tsk();
}
void
{
taskRx( INT stacd, VP exinf )
UW
INT
/* 受信タスク */
rxmsg;
msgsz;
msgsz = tk_rcv_mbf( (ID)stacd, &rxmsg, TMO_FEVR );
tk_exd_tsk();
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 22 / 23 -
トロン技術者認定試験
#define SENDER_PRI
1
/* タスクAの優先度 */
void
taskStarter( INT stacd, VP exinf )
/* 初期タスク */
{
T_CTSK ctsk = { NULL, TA_HLNG|TA_RNG0,
(FP)NULL, 0, 1024, /* 他のメンバは省略 */ };
ID
tidA;
ID
tidB, tidC, tidD;
tk_chg_pri( TSK_SELF, 5 );
/*------------------------------*/
ctsk.task = taskRx;
/* 受信タスク */
ctsk.itskpri = 2;
tidB = tk_cre_tsk( &ctsk );
tk_sta_tsk( tidB, (INT)mbfidB );
/* タスクB */
ctsk.itskpri = 3;
tidC = tk_cre_tsk( &ctsk );
tk_sta_tsk( tidC, (INT)mbfidC );
/* タスクC */
ctsk.itskpri = 4;
tidD = tk_cre_tsk( &ctsk );
tk_sta_tsk( tidD, (INT)mbfidD );
/* タスクD */
/*------------------------------*/
ctsk.task = taskTx;
/* 送信タスク */
ctsk.itskpri = SENDER_PRI;
tidA = tk_cre_tsk( &ctsk );
tk_sta_tsk( tidA, 0 );
/* タスクAの優先度 */
/* タスクA */
/*------------------------------*/
tk_dly_tsk( (RELTIM)1000 );
tk_exd_tsk();
}
Copyright © 2011 T-Engine Forum. All Rights Reserved.
- 23 / 23 -
トロン技術者認定試験
(計算用紙)
Copyright © 2011 T-Engine Forum. All Rights Reserved.
トロン技術者認定試験
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELT
ENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINE
TKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERN
ELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTEN
GINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETK
ERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
TENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGIN
ETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKER
NELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTE
NGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINET
KERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNE
LTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGI
NETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKE
RNELTENGINETKERNELTENGINETKERNELTENGINETKERNELTENGINETKERNEL
Copyright © 2011 T-Engine Forum. All Rights Reserved.
トロン技術者認定試験
C. 解答上の注意
1.
氏名欄
氏名欄には、氏名、フリガナを記入しなさい。
2.
試験場欄
試験場欄は、受験している試験場所に○が付けられていることを確認しなさい。
(記入例)東京で受験する場合
東京 ・ 大阪 ・ 他
3.
受験日欄
受験日欄には、今日の年月日が記入されていることを確認しなさい。
(記入例)2011年1月15日の場合
20 11 年 01 月 15 日
4.
受験番号欄
解答用紙の受験番号欄に受験番号が正しく記入され、さらにその下のマーク欄に正しくマーク
されていることを確認しなさい。
正しくマークされていない場合は、採点できないことがあります。
5.
B または HB の黒鉛筆または黒色シャープペンシルを使用して正しく記入、マークしなさい。訂
正の場合は、あとが残らないように消しゴムできれいに消し、消しくずを残さないようにしな
さい。
6.
解答用紙は光学式読取装置で自動処理しますので、解答用紙のマーク例にしたがって正しく
マークしなさい。
7.
問題文において「選択肢から一つ選べ」もしくは「一つずつ選べ」と指示されている場合は、
解答欄に1つだけマークしなさい。
(記入例)3を選択する場合
8.
問題文において「選択肢からすべて選べ」と指示されている場合は、解答欄に1つ以上マーク
しなさい。
(記入例)2と4を選択する場合
9.
問題文において数値を選択することが指示されている場合は、解答欄では1つの桁に1つだけ
マークしなさい。
(記入例)6を選択する場合
表紙に戻る場合は、この問題冊子を右側から裏返しなさい。
試験開始の合図があるまで、この問題冊子を開いてはいけません。
Copyright © 2011 T-Engine Forum. All Rights Reserved.
トロン技術者認定試験