Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> 4つのリアルタイムオペレーティングシステムの分析と比較

4つのリアルタイムオペレーティングシステムの分析と比較

  

このペーパーでは、4つのリアルタイムオペレーティングシステム(RTOS)の機能について分析し、比較しました。それらは、Lynx Real-Time SystemsのLynxOS、QNX Software Systems、IncのQNX、そしてNew Mexico Institute of TechnologyのRT-Linuxと、Kansas大学のKURT-Linuxの2つです。

近年、リアルタイムオペレーティングシステムは、マルチメディア通信、オンライントランザクション処理、生産プロセス管理、およびトラフィック管理などのさまざまな分野で広く使用されているため、ますます注目を集めています。

1.基本機能の概要

QNXは、分散型の組み込み型のスケーラブルなリアルタイムオペレーティングシステムです。それはPOSIX.1(プログラムインタフェース)とPOSIX.2(シェルとツール)に続き、部分的にPOSIX.1b(リアルタイム拡張)に続く。 1980年に最初に開発され、現在はかなり成熟しています。 LynxOSは、POSIX.1a、POSIX.1b、およびPOSIX.1c標準に準拠した、分散型で組み込み型のスケーラブルなリアルタイムオペレーティングシステムです。 1988年に最初に開発されました。 RT-Linuxは、POSIX.1b規格を部分的にサポートする組み込みハードリアルタイムオペレーティングシステムです。 KURT-Linuxは、組み込みアプリケーション向けではなく、ハードリアルタイム/ソフトリアルタイムアプリケーションとは異なり、マルチメディアアプリケーションやATMネットワークアプリケーションなどの「リアル」アプリケーションの概念を提案します。 KURTはそのようなアプリケーションのために設計された「厳密な」リアルタイムシステムです。

2、アーキテクチャの類似点と相違点

リアルタイムシステムの実装は、主にマイクロコアアーキテクチャであり、コアを小さく信頼性の高いものにし、ROMファームウェアに容易にし、モジュール式に拡張します。マイクロカーネルアーキテクチャシステムでは、OSサービスモジュールは別のアドレス空間で実行されるため、異なるモジュールのメモリエラーは分離されています。しかし、これには弱点もあり、プロセス間通信とコンテキスト切り替えのオーバーヘッドが大幅に増加します。大規模な統合カーネルシステムと比較して、同じタスクを実行するためにより多くのシステムコールに頼らなければなりません。

QNXは、核となる4つのサービス(プロセススケジューリング、プロセス間通信、基盤となるネットワーク通信、割り込み処理)を別々のアドレス空間で実行するマイクロカーネルリアルタイムオペレーティングシステムです。他のすべてのOSサービスは共同ユーザープロセスとして実装されているため、QNXコアは非常にコンパクトで(QNX4.xは約12Kb)、非常に高速に動作します。

LynxOSはまだマイクロカーネルベースのオペレーティングシステムではありませんが、LynxOS 3.0で導入される予定の、いわゆる「Galaxy」テクノロジを使用して、大規模な統合カーネルからマイクロカーネルに変換する予定です。 。新しい28Kbマイクロカーネルは、コアの起動と停止、基本的なメモリ管理、エラー処理、割り込み処理、マルチタスク、基本的な同期、および相互排他のサポートなどのサービスを提供します。

RT-Linuxは、基礎となるタスクの作成、割り込みサービスルーチンのロード、基礎となるタスク通信キュー、割り込みサービスルーチン(ISR)、およびLinuxプロセスのみをサポートする小型のリアルタイムカーネルを実装しています。オリジナルの非リアルタイムLinuxカーネルは、この小さなコア上でプリエンプティブタスクとして実行され、すべてのタスクはコアアドレス空間で実行されます。これはマイクロカーネルや大規模カーネルとは異なり、リアルタイムexe(リアルタイムエグゼクティブ)アーキテクチャに属します。その信頼性と保守性は、テレコムサービスシステムにとって理想的ではありません。

KURT-Linuxコアは、カーネルとリアルタイムモジュールの2つの部分から構成されています。カーネルはリアルタイムイベントのスケジューリングを担当し、リアルタイムモジュールはユーザープロセスに特定のリアルタイムサービスを提供します。マイクロカーネル構造の一部ではありません。

3、スケジューリング戦略の分析

タスクスケジューリング戦略は、リアルタイムのパフォーマンスに直接影響する要素です。スケジューリング・アルゴリズムはさまざまですが、それらは主に単調レート・アルゴリズム(RM)および最古の期間優先順位アルゴリズム(EDF)によって変更されます。前者は主に静的周期的タスクのスケジューリングに使用され、後者は主に動的スケジューリングに使用され、システム状態が異なると、2つのアルゴリズムにはそれぞれ長所と短所があります。商品に採用されている実際の戦略は、さまざまな要素間の妥協点です。

QNXはPOSIX.1b標準プロセススケジューリングを提供します:32のプロセス優先順位;優先、優先順位ベースのテキストスイッチング;オプションのスケジューリング戦略:FIFO、ローテーション戦略、適応戦略。 LynxOSのスケジューリング戦略は、LynxOSが256のグローバルユーザースレッド優先順位を提供するスレッドの概念をサポートし、ハードリアルタイム優先順位スケジューリング:各優先順位でラウンドロビンスケジューリング、定量的スケジューリング、FIFOスケジューリングポリシーが実装されます。短く、プリエンプティブなRTOSコア。

RT-Linuxは、オペレーティングシステムの下でシンプルなリアルタイムカーネルを実装しており、Linux自体が優先度の最も低いタスクとして実行され、優先度の高いタスクによって優先されます。ユーザは自分自身のスケジューラを書くことができ、それはロード可能なコアモジュールとして実装することができ;実装されたスケジューラは:優先度ベースのプリエンプティブスケジューリングおよびEDFスケジューリング;優先度ベースのスケジューリングは「単調レートアルゴリズム」を使用する。定期的な作業を直接サポートします。

KURT-Linuxは、通常状態とリアルタイム状態の2つの状態で実行できます。通常の状態では、すべてのプロセスが実行できますが、コアサービスの中には割り込みマスクの予測不可能性をもたらすものもあります。リアルタイムモードでは、リアルタイムプロセスのみを実行できます。 FIFOスケジューリングポリシー、ラウンドロビンスケジューリングポリシー、およびUNIXタイムシェアリングスケジューリングポリシーをサポートし、SCHED-KURTスケジューリングポリシーを追加します。これは、特別なスケジューリングファイルを使用してスケジュールするプロセスの定義済みパラメータを記録する静的スケジューリングポリシーです。

上記の簡単な説明からわかるように、最初の3つのスケジューリング戦略、特にPOSIX.1bリアルタイムスケジューリング標準に準拠しているか部分的に準拠している2つの商用RTOSがより標準化されています。

4、オペレーティングシステムサービスの比較

4.1 QNXシステムサービス:

さまざまなファイルシステムやデバイス管理など、複数のリソースマネージャが複数のファイルシステムをサポートします。 POSIX.1とUNIXの完全な構文を提供するPOSIXファイルシステム、複数のフラッシュデバイスをサポートする埋め込みファイルシステム、複数のファイルサーバーへの透過的なアクセスをサポートするSMB(Windows NT /95、LAN Managerなど)を含む同時操作ファイルシステム、DOSファイルシステム、CDROMファイルシステムなどデバイス管理プロセスとエンドデバイス間で高スループット、低オーバーヘッドのインタフェースサービスを提供します。グラフィックス/ウィンドウサポート。 QNX Windows、QNX用X Window System、MS Windows NT /95へのリモートグラフィックス接続、およびX Window Systemが含まれます。 QNX用のTCP /IP。高性能でフォールトトレラントなQNXネットワークFLEETは、ネットワークに接続されているすべてのコンピュータを論理的なスーパーコンピュータに変えます。透明な分散処理FLEETネットワーク処理とメッセージングおよびプロセス管理プリミティブとの統合により、ローカルIPCとネットワークIPCが統合され、ネットワークはIPCに対して透過的になります。

4.2 LynxOSシステムサービス:

ネットワークと通信。 UNIX /POSIX APIのおかげで、Lynxはデータ通信やインターネットアプリケーションに非常に適しています。そしてシステムの開放性のために、ネットワークソフトウェアはLynxに移植するのが簡単です。同様に、Lynxは、テレコミュニケーションシステムのインフラストラクチャ、運用、およびマルチメディアアプリケーションに適した主要テレフォニープロトコルも提供しています。 TCP /IPプロトコルスタックLynxは、TCPヘッダ予測、高度なルーティングアルゴリズム、IPレベルのマルチキャスト、リンクレベルのキャッシュなどの高性能サービスを提供する最適化されたTCP /IPスタックを備えています。インターネットツール含む、Telnet、Ftp、tftp、PPP、SLIP、リアルタイムスケジューリング用の組み込みJava仮想マシン、組み込みHTTPサーバ、bootp、ARP /RARP、DNSドメインネームサービス、電子メール、Perl、テレフォニープロトコルなど。 SVR3ストリームLynxOSストリーミングメカニズムは、ストリームベースのドライバとアプリケーションの開発と移植のためのコアサポートを提供します。ファイルシステムリアルタイムのUNIXライクな階層ファイルシステム:連続構造ファイル、バッファリングの有無、未加工パーティション、未加工デバイスアクセス。モチーフベースのグラフィカルユーザーインターフェース。分散コンピューティングリソースSCMPは、VMEバス上のマルチプロセッシング、PCIブリッジサービス、CompactPCIホットスワップサービス、Lynx /HA-DDS分散データシステムと組み合わせることができます。

4.3 Linuxシステムサービス:

最近、多くのLinuxベースのリアルタイムアプリケーションが開発されました。これらは成熟していてリソースが豊富です。

UNIXユーザーの開発ツールとアプリケーションはLinuxに移植されています。 TCP /IPネットワークプロトコルさまざまなインターネットクライアント/サーバーソフトウェア。 XウィンドウC /C ++やJavaなどの言語コンパイラ

上記のシステムの共通点は、グラフィカルインターフェイスやさまざまなネットワークサポートなど、必要なツールが提供されていることです。 QNXは、LAN全体を大型スーパーコンピュータに変えることで、ネットワークの存在をユーザーに透過的にし、ファイルシステムを豊富なサービスで提供することを目的とした、従来の「分散型」の概念に沿ったオペレーティングシステムです。ただし、分散度が高いほど、オーバーヘッドが大きくなります。 LynxOSは豊富なネットワークサービスを提供することを目的としていますが、Linuxの最大の利点は経済性ですが、ニュースグループやメーリングでも提供されます。

5、システムの開放性の比較

ほとんどのソフトウェアはUNIXプラットフォーム用に書かれているので、RTOSがPOSIX /UNIX APIを提供することが重要です。

5.1 QNXオープンネス

QNXのPOSIX互換性とそのUNIX特有のコンパイラ、デバッガ、X WindowとTCP /IPはUNIXプログラマにはなじみがあります。 AMD ElanSC300 /310/400/410、Am386 DE /SE、Cyrix MediaGX、x86プロセッサ(386以上)、Pentiumシリーズ、STマイクロエレクトロニクスSTPCなど、さまざまなCPUをサポート。複数バス:CompactPCI、EISA、ISA、MPE(RadiSys)、STD、STD 32、PC /104、PC /104プラス、PCI、PCMCIA、VESA、VME。さまざまな周辺機器:さまざまなSCSIデバイス、IDE /EIDEドライブ、10M /100Mイーサネットカード、トークンリングネットワークカード、FDDIインタフェースカード、さまざまなPCMCIAデバイス、フラッシュメモリ、サウンドカードなど。

5.2 LynxOSのオープン性

POSIX.1a、1b、1c、およびBSD4.4の互換性により、POSIX 1003またはUNIX系のプログラムをLynxOSに簡単に移植できます。 CompactPCI(6U /3U)および標準のPCI、VME /Eurobus、PC /104、PC /ATハードウェアなど、さまざまなCPUマザーボードをサポート。各種周辺機器アダプタ:10 /100BaseTイーサネット、SCSIインタフェース、シングル/マルチチャンネルシリアルコントローラ、シングル/デュプレックスパラレルポート、クロック、タイマー、IDEインタフェース、高解像度ディスプレイアダプタなど

5.3 Linuxの開放性

ユーザーはUNIXのすべての開発ツールを手に入れることができます。あなたは市場で安価で一般的なハードウェアを使うことができます。

分析すると、上記のシステムにはそれぞれ利点があることがわかりますので、プラットフォーム構築プロセスでは、ユーザーは実際のニーズに応じてパフォーマンス価格比と組み合わせて選択する必要があります。

Copyright © Windowsの知識 All Rights Reserved