Standard Training Courses
QNX Neutrino リアルタイム プログラミング コース(4日間)
目標
このコースは、QNX Neutrino RTOS アプリケーションを開発するプログラマを対象に構成されています。コースでは、何種類かのサンプル プログラムの記述実習を行い、QNX Neutrino のコンセプトを実際のアプリケーションに応用する方法を学びます。
- QNX Neutrino の機能、サービス、およびアーキテクチャについて学習します。
- 実践的な問題解決テクニックを習得します。
- 実践問題に取り組み、コースを通じて紹介されるコンセプトを応用します。
トピック
本コースは、以下のセクションから構成されます。
概要
まず、QNX Neutrino のキーポイントとなる機能、サービス、アーキテクチャなどの概要について学びます。この概要は、コース全体の「ロードマップ」の役割を果たし、QNX Neutrino RTOS が提供するサービスの「感触」を得ていただくことを目標にしています。
コンパイルとデバッグ
このセクションでは、コマンドライン ツールおよび QNX Momentics 開発スイートのIDEを使用したアプリケーション開発に必要なノウハウを学習します。
スレッドと同期
オペレーティング システムに歴史において、比較的新しいコンセプトである「スレッド」は、与えられたプログラムで実行のマルチフローを可能にします。このセクションでは、QNX Neutrino RTOS のサービスがどのようにスレッドを処理するか解説します。スレッドの特性、優先度とスケジューリング アルゴリズム、スレッドの開始と終了、QNX Neutrino RTOS および POSIX 関数コールを使用してのリソース アクセス同期などについて学習します。
プロセス間通信
QNX Neutrino において、複数のプロセスの間で情報交換をするさまざまな方法について解説します。メッセージ、パルス、POSIX メッセージ キュー、パイプ、共有メモリなどについても解説します。各方法の相対的な利点と欠点、適合する通信モデル(クライアント−サーバーなど)についても学習します。
タイマ、クロック、タイムアウト
リアルタイム システムにおいては、リアルタイムを把握して周期イベントのスケジューリングを行う必要があります。このセクションでは、QNX Neutrino ではどのようにリアルタイム、タイマ、カーネル タイムアウトを処理するか解説します。実践問題では、周期イベントの生成方法と処理方法を学習します。
割り込み
QNX Neutrino 以外の OS では、割り込みの処理はしばしば困難で処理しにくいタスクとなります。しかし、QNX Neutrino での割り込みハンドラ記述とデバッグは、比較的簡単です。このセクションでは、割り込みハンドラに対する複数のアプローチを紹介し、ハンドラをどのようにリソース マネージャに結びつけるか学習します。実践問題では、これらの概念を現実的な問題解決に応用していきます。
リソース マネージャ概要
この章では、パス名解析、IPCメッセージ フォーマット、一般的な構造など、リソース マネージャの機能について解説します。いかなるプロセスでもリソース マネージャにすることができ、ほとんどの場合、ドライバはリソース マネージャです。実習では、/dec/null/ を実装する非常にシンプルなリソース マネージャから、複数のデバイスをサポートするより複雑な例まで、複数の実践問題に取り組みます。
QNX Neutrinoの組み込み
このセクションでは、IPL と起動コードのカスタマイズ、フラッシュ デバイスの組み込みなどの概要について学習します。