組み込み技術者のための資格試験,傾向と対策(6) ―― トロン技術者認定試験

久保 幸夫

tag: 組み込み

コラム 2011年3月25日

解答・解説のページ(その1)

 T-Kernel(μITRON)のtk_dly_tsk(dly_tsk)の動作に関する以下の説明のうち,正しいものをすべて選べ.
※μITRONの場合は()内のサービスコールを呼び出すものとして解答せよ.

選択肢
1.tk_dly_tsk(dly_tsk)の呼び出しにより待ち状態になったタスクにおいて指定した時間が経過した場合,戻値としてE_TMOUTが返る.

2.tk_dly_tsk(dly_tsk)の呼び出しにより待ち状態になったタスクを対象としてtk_rsm_tsk(rsm_tsk)を呼び出した場合,タスクの待ち状態は解除される.

3.tk_dly_tsk(dly_tsk)の呼び出しにより待ち状態になったタスクを対象としてtk_wup_tsk(wup_tsk)を呼び出した場合,起床要求が1加算されるが,待ち状態は解除されない.

4.tk_dly_tsk(dly_tsk)の呼び出しにより待ち状態になったタスクを対象としてtk_rel_wai(rel_wai)を呼び出した場合,タスクは強制待ち状態に移行する.

(第10回 トロン技術者認定試験 問5より引用)

正解 3

解説
1.E_TMOUT(タイムアウト・エラー)は,ポーリングやタイムアウト指定付きのシステム・コールを発生した場合の,指定時間超過のエラーです.正常に指定した時間が経過した場合は,E_TMOUTではありません.この場合,サービスは正常に処理されましたので,戻値としてE_OKが返ります.よって誤りです.詳しくは,参考文献(2)のP.20 資源の獲得の項とP.22 サービスコール返却値の項(http://www.cqpub.co.jp/hanbai/books/33/33351/33351_2syo.pdf)を参照してください.

2.tk_rsm_tsk(rsm_tsk)は,待ち状態からのタスクの再開のシステム・コールではなく,強制待ち状態からのタスクの再開のシステム・コールです.よって誤りです.

 一般的な待ち状態のタスクを再開するには,起床要求であるk_wup_tsk(wup_tsk)を使用します.しかし,tk_dly_tsk(dly_tsk)で待ち状態に入っている場合,k_wup_tsk(wup_tsk)を呼び出してもタスクの待ち状態は解除されず,起床要求がキューイングされて,1加算されるだけで,タスクの待ち状態は解除されません.

3.上記の2で解説したように,tk_rsm_tsk(rsm_tsk)で待ち状態に入っている場合,起床要求がキューイングされて,1加算されるだけで,タスクの待ち状態は解除されません.よって正解です.tk_dly_tsk(dly_tsk)の呼び出しにより待ち状態になったタスクを対象としてtk_wup_tsk(wup_tsk)を呼び出した場合,起床要求が1加算されるが,待ち状態は解除されません.

4.k_rel_wai(rel_wai)は,tk_dly_tsk(dly_tsk)の呼び出しにより待ちになった状態を強制解除するシステム・コールです.tk_dly_tsk(dly_tsk)による待ち状態をk_rel_wai(rel_wai)により強制解除した場合,戻値としてE_RLWAIが返ります.よって誤りです.詳しくは,参考文献(3)を参照してください.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日