ニュース
» 2010年04月12日 00時00分 公開

【問題11】 処理の最小単位「タスク」の状態遷移“組み込み力”向上! ETEC対策ドリル(11)

リアルタイム性の概念とリアルタイム性を確保するために用いられる「RTOS」を解説。また、演習はタスクの状態遷移について。

[近森満(株式会社サートプロ 代表取締役社長/JASA ETEC運営事務局),@IT MONOist]

【問題10】の解答

 前回の宿題【問題10】は、「ハードリアルタイム性」に関する問題でした。

 組み込みシステムでは、処理に「リアルタイム性」が要求される場合があります。特に、決められた時間内に必ず完了しなければならない処理を「ハードリアルタイム処理」といいます。

 今回も問題の解答に続いて、リアルタイム性の概念とリアルタイム性を確保するために用いられる「リアルタイムOS」について解説します。この機会にしっかりと理解しておきましょう。

 それでは、解答を発表します!


問題10

次のうち、ハードリアルタイム性を求められる処理はどれか?

ア.携帯電話のアドレス帳検索処理。
イ.カーナビの目的地地図表示処理。
ウ.銀行ATM端末のユーザーインターフェイス処理。
エ.自動車のブレーキ制御処理。

答え. (←クリック)


【問題10】の補足

 ハードリアルタイム性とは、“決められた時間内に必ず処理を完了しなければならない”ことを指します。万一、ハードリアルタイム性が求められる処理で、決められた時間内に処理が完了しなかったら……。致命的な問題を引き起こしてしまうかもしれません。

 正解のエ.「自動車のブレーキ制御処理」は、想定した時間内にブレーキを制御しなければなりません。この処理が遅れてしまうと事故が起こり、大惨事にもつながりかねません。

 一方、不正解のア.「携帯電話のアドレス帳検索処理」、イ.「カーナビの目的地地図表示処理」、ウ.「銀行ATM端末のユーザーインターフェイス処理」は、多少の遅れがあっても処理さえ完了すれば問題は発生しません。

ハードリアルタイムとソフトリアルタイム

 組み込みシステムでは、処理に時間的な制約が課せられる場合があります。決められた時間内に処理を完了しなければならないことをリアルタイム性といい、リアルタイム性が求められる処理を「リアルタイム処理」といいます。

 リアルタイム処理には、「ハードリアルタイム処理」と「ソフトリアルタイム処理」があります。

 ハードリアルタイム処理では、時間的な制約を厳密に守らなければなりません。あらかじめ決められた時間内に処理が完了しないと、致命的な問題が発生します。例えば、光センサ式の自動ドアは光で人を感知したときにドアを開きますが、ドアの制御に遅れが生じると人が挟まれるなどの事故が発生する可能性があります。

 一方、ソフトリアルタイム処理では、時間的な制約はあるものの、場合によって時間的な遅れが許容されます。例えば、携帯電話のアドレス帳検索処理は、ハードリアルタイム性が求められる音声通話処理とは異なり、多少処理が遅くなっても最終的に検索結果が得られれば問題は生じません。つまり、アドレス帳検索処理はソフトリアルタイム処理であるといえます。

リアルタイム性を確保するために

 ソフトウェアで処理を実行する最小の単位を「タスク」といいます。通常はプログラムを複数のタスクに分割し、これらのタスクを切り替えながら実行することで、さまざまな機能を実現します。リアルタイム性を確保するためには、タスクをどのように分割するか、リアルタイム処理を実現するタスクをいかに優先的に実行するかが重要となります。

 機能が少ない単純な組み込み機器であれば、タスク数も少なく制御も容易です。実際、OSを用いず直接ハードウェアを制御する組み込みソフトウェアが数多く開発されています。しかし、携帯電話や情報家電などを見ると分かるように、近年、組み込みシステムは多機能化の一途をたどっています。それに伴い、組み込みソフトウェアも複雑かつ大規模になっているのが現状です。そうなると、膨大な数のタスクを独自に制御することはほぼ不可能といえます。

 そのため、最近では「リアルタイムOS(RTOS:Real Time Operating System)」が広く用いられるようになってきました。リアルタイムOSは、搭載メモリなどの資源に制約がある組み込みシステムにおいて、リアルタイム性を確保するために必要な機能を提供します。

 以下に、リアルタイムOSの導入メリットを示します。

  • タスク制御などの基本機能を独自に開発する必要がない
  • ハードウェアをそれほど意識せずにプログラムを作成できる
  • プログラムの再利用性や移植性が向上する

 リアルタイムOSの一般的な構成を図1および表1に示します。

図1 リアルタイムOSの構成例

表1 リアルタイムOSの構成
ソフトウェア
説明
カーネル リアルタイムOSの基本機能として次の機能を提供する。用途に応じて必要な機能のみを実装することも可能。カーネルの機能は、アプリケーションからシステムコール(カーネルコール)を呼び出す形で利用できる

タスク管理機能、タスク同期機能、タスク通信機能、メモリ管理機能、時間管理機能、割り込み管理機能など
ミドルウェア 共通機能を提供するソフトウェア。必要に応じてOSに組み込む。ミドルウェアの機能は、アプリケーションから直接、あるいはカーネルを介して利用できる

通信機能、画像処理、音声処理、データの圧縮や伸張、ファイルシステム、GUI、ブラウザなど
デバイスドライバ ハードウェアを制御するソフトウェアで、通常はハードウェアメーカーから提供される。必要に応じてOSに組み込む。デバイスドライバの機能は、アプリケーションから直接、あるいはカーネルを介して利用できる

 リアルタイムOSを導入する場合、その分多くのメモリを使用する点に注意してください。また、リアルタイムOSは、リアルタイム性を確保するための機能を提供するだけであり、“リアルタイム性を保証するものではない”ことにも注意する必要があります。リアルタイム性を確保できるかどうかのカギは、あくまでも“適切なタスク分割と優先度の設定、タスクの制御”にあります。

参考−組み込みソフトウェアで使用されているOS−

 経済産業省が公表した「2009年版 組込みソフトウェア産業実態調査報告書 −プロジェクト責任者向け調査−」によると、組み込みソフトウェアでは、次のようなOSが利用されています(図2)

図2 組み込みソフトウェアに用いられるOSの比率
出典:経済産業省「2009年版 組込みソフトウェア産業実態調査報告書 −プロジェクト責任者向け調査−」
・Q2-4a ターゲットOSの使用比率

今回の演習問題―【問題11】

問題11

次のうち、タスクの状態遷移に関する記述として、正しいものはどれか?

ア.
タスク生成によって休止状態にあるタスクは、タスク起動によって実行可能状態に遷移する。
イ.
現在実行状態にあるタスクは、 自分より優先度が高いタスクが実行可能状態になると、
   待ち状態に遷移する。
ウ.
現在実行状態にあるタスクは、自分と同じ優先度のタスクが実行可能状態になると、
   実行可能状態に遷移する。
エ.
現在入出力の完了を待っている待ち状態にあるタスクは、入出力が完了すると、
   実行状態に遷移する。

答え. 解答はこちら(←クリック)


 いかがでしたでしょうか? リアルタイム処理について理解できましたか。次回は、ソフトウェアにおける処理の最小単位である「タスクの状態遷移と優先度」について解説します。お楽しみに!(次回に続く)

関連リンク:
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中)
http://www.certpro.jp/elearning.html
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中)
http://www.certpro.jp/etecsw2test.html

筆者プロフィール
  株式会社サートプロ 代表取締役社長
社団法人 組込みシステム技術協会 ETEC運営事務局
近森 満(ちかもり みつる)

大手電気メーカー、外資系IT教育ベンダ、オープンソース系技術者資格認定団体などを経て、2006年より組み込みシステム分野の人材育成・教育支援を行う株式会社サートプロを設立する。現在は、ETEC運営事務局としてJASAの組込みソフトウェア技術者試験の普及・啓蒙(けいもう)活動のほか、組み込み人材育成と教育支援事業を行う。

Copyright © ITmedia, Inc. All Rights Reserved.