0

私は、リアルタイム システムの設計に関する入門コース (3 か月) を受講していますが、実装は問いません。

理論的に学べることをよりよく理解できるものを構築したいと思っていますが、リアルタイム システムを行ったことがないため、プロジェクトにかかる時間を見積もることはできません。私の利用可能な時間と知識を考えると、それは概念実証プロジェクトまたはそのようなものになるでしょう.

アイデアを教えてください。前もって感謝します。

私は TSQL、Delphi、C# でプログラミングしていますが、別の言語を学ぶのに何の問題もありません。

4

4 に答える 4

3

Real-Time Specification for Java (RTSJ) の調査を検討することをお勧めします。リアルタイム ソフトウェアを構築するための従来の環境ではありませんが、多くの関心が寄せられている新進気鋭のテクノロジです。さらに良いことに、リアルタイム システムで何が重要で何が重要でないかについて進行中の議論の一部を目撃できます。

Sun のJavaRTSは無料でダウンロードでき、決定論的な動作を示したり、RT ガベージ コレクタを披露したりするための興味深いデモがいくつか用意されています。

特定のプロジェクトに関しては、単純に始めることをお勧めします。1) 一定量の CPU 時間を消費するように調整できる作業ジェネレーターを構築します。2) これを、作業生成タスクの分散 (スレッドとして、またはスレッドで実行される作業のチャンクとして) を生成できるフレームワークと、生成された作業をログに記録するためのメカニズムに入れます。3) これらのタスクの実行時間、滞在時間、締め切り、スラック/オーバーランと優先度のグラフを作成します。4) リアルタイム スレッド (副タイムシェアリング) のコンテキストで実行されているタスクが異なる動作をすることを示します。

与えられた負荷 (ワーク ジェネレーター タスクによって生成された合計 CPU 時間を実時間で割った値) でタスクが締め切りを逃し始めることによって、スケジューラーのオーバーヘッドを測定できればボーナス ポイントです。

于 2009-04-10T01:57:43.267 に答える
2

ビデオの再生など、タイム クリティカルなリアルタイム タスクについて考えてみてください。タスクが時間内に終了しない場合 (次のフレームの計算など) は失敗します。

いくつかの産業用ソリューションを考えることもできますが、ローカル環境で学習するのはおそらくより困難です。

于 2009-04-01T18:12:01.533 に答える
1

小さなプロセッサ (ARM、PIC、AVR、どれでも構いません) を搭載したハードウェア開発ボードを使用してシステムを構築することを検討する必要があります。これは、開発を始めたときの低レベルへの恐怖を取り除くのに本当に役立ちました。ただし、C または C++ を使用する必要があります。

ベアメタルにするか、リアルタイム OS を使用するかの 2 つの選択肢があります。

ベアメタルになると、次のことを学ぶことができます。

  • プロセッサを最初から初期化する方法と、最も重要な割り込みの使用方法。これは、外部イベントに応答するための最速の方法です。
  • すべてのリアルタイム OS が実装する高速なコンテキスト切り替えを備えた軽量スレッドを実装する方法
  • これを少し楽にするために、多くのドキュメントとソース コードが付属している開発キットを探してください。私は Embedded Artists ARM ボードを使用しましたが、それらは多くの資料を提供してくれます。

RT OS を使用する場合:

  • プロジェクトを迅速に進め、RT OS を微調整する方法を学ぶことができます。
  • Linux や BSD などのオープンソース OS を試してみて、ソース コードから多くのことを学ぶことができます。

どちらを選択してもかまいません。本当にクールなハンズオン プロジェクトを披露して、コースの内容をよりよく理解することができます。幸運を!

于 2009-04-10T02:12:25.367 に答える
0

ほとんどのリアルタイム システムは依然として C または C++ で実装されているため、これらのプログラミング言語の知識を磨いておいたほうがよい場合があります。多くのリアルタイム システムは組み込みシステムでもあるため、BeagleBoard ( http://beagleboard.org/ )のような安価なオープン ソースを試してみるのもよいでしょう。また、クロスコンパイルなどについて学ぶ機会にもなります。

于 2009-04-04T00:16:15.693 に答える