昔使ったことのあるリアルタイムOSはiRMX、OS-9、VxWorks

こんにちわ。

社会人になって、しばらくはプログラムを書いて、コンピュータシステムを作る仕事をしていました。

その時に、リアルタイムOSを使った仕事を何件かやりました。

今回は、そんなリアルタイムOSの話です。

スポンサーリンク
スポンサーリンク




リアルタイム?マルチタスク?

リアルタイムOSですが、リアルタイムシステムのためのOSとなります。

組み込みオペレーティングシステムに多いです。

リアルタイムシステムとは、処理の実行が命令された時、その処理を設定された時間通りに動作することに着目した制御工学における概念の一つだそうです。

OSの主要な機能である資源管理において、時間資源の優先度に基づく配分や実行時間の予測可能性を提供することに特化したものです。

そのため、リアルタイムOSは、タスクと呼ばれる実行コンテキストを保持するオブジェクトや、タスク間の同期通信機構を提供していて、同期通信機構により特定のタスクに待ち状態が発生したときのスケジューリングを行ったりいます。

リアルタイムOSは、小規模な組み込みシステムなどに用いられることが多いのですが、デスクトップ分野やPDAなどの比較的大規模なものから、果てはミッションクリティカルなサーバーや人工衛星にまで使われています。

ところでリアルタイムと親戚みたいな?概念にマルチタスクというものがあります。

マルチタスク は、コンピュータにおいて複数のタスクを切り替えて実行できるシステムのことを言います。

Unixなど「プロセス」という用語で言われており、マルチプロセスともいいます。

マルチタスクとは複数のプログラムを動かすという点に着目した語で、逆に、同時に一つのタスクしか実行できない方式をシングルタスクといいます。

マルチタスクは複数のタスクを切り替えて実行できるシステムのことを言いますが、リアルタイムOSのように時間資源の優先度に基づく配分と実行時間の予測可能性を提供しているわけではありません。

使ったことのあるOSをご紹介

ぼくがさわったことのあるリアルタイムOSをご紹介します。

iRMX

iRMXは以前に別の記事でも触れたことがありますが、今はTenAsys社が提供しているリアルタイムOSのことです。

ぼくは新入社員時代になんどか、制御盤のシステムや、設備のシミュレータシステムを構築するときに使ったことがあります。

新入社員の時に初めての泊り出張でプログラミングにも苦労したけど、生活にも苦労した話
こんにちわ。 新入社員になって、入社前から希望していた通り、パソコン系のシステムを提案したり、導入したりする部署に配属されまし...

このために呼ばれたのか?iRMX。大規模プロジェクトへの参加(その2)
こんにちわ。 30年以上前、新入社員の時の生活を振り返っています。 入社以来、最初のヤマ場、大規模プロジェクトに...

インテルの8080、8086系マイクロプロセッサ上で動作します。

米国インテルが1970年代後半から自社製の8080、8086系プロセッサおよびMULTIBUSシステム用に開発したもので、2000年にはTenAsys社に引き継がれています。

最近の製品では、iRMX for Windowsとなりますが、VisualStudio VC/C++をコンパイラーとして利用でき、さらに従来のIntel製のiC-386やPLM-386、ASM-386といった開発言語も利用できるようになっています。

このOSはWindowsと協調動作するようになっています。

OS-9

OS-9(オーエスナインと読みます)は、マイクロウェア(現RadiSys)によって開発されたリアルタイムOSです。

元々、モトローラの8ビットMPUである6809のために開発されたOSです。

その後680×0に移植され、さらにx86、PowerPC、SH、ARMなど幅広いCPUに対応しました。

ぼくがこのOSをさわったのは、やっぱり20代。

入社4.5年目ぐらいだったと思います。

温度データを計測システムで、別のUNIXマシンにトークンリングを経由してデータを渡すシステムを作った時だったと思います。

その時のOSがOS-9(もしかしたらOS-9000だったかも。)

次のような特徴があります。

プリエンプティブ・マルチタスク

タスクの切り替えは割り込みによって一定時間内に強制的にOSに制御が移るようになっています。

そして、OSは一定の方式に従い次のタイムスライスを実行中のタスク・プロセス・スレッドに割り当てます。

マルチプロセス

多くの組み込み用リアルタイムOSでは、並行実行されるタスクはスレッドモデルであることが一般的ですが、OS-9では各タスクは独立したプログラムイメージを実行するプロセスモデルとなっています。

ダイナミックローディング

カーネル以外の多くのモジュールが、システムの稼動中、任意の時点で追加、削除、更新が可能になっています。

マルチユーザ

組み込み用途だけではなく、一般のコンピュータとして使用可能であり、UNIXと同様のマルチユーザの機能を備えたTSSの環境を実現しています。

UNIXライク

UNIXライクな開発環境が構築されていて、簡易なシェルも実装されています。

また、ファイルシステムも階層構造を始めとしてUNIXに近い機能を実現しています。

他にも様々な特徴がありました。

VxWorks

最後にVxWorksです。

VxWorks(ブイエックスワークスと読みます。) は、WindRiver社が開発・販売する組み込みシステム向けリアルタイムOSです。

VxWorks は、現在、最も広く採用されているリアルタイム OS(RTOS)で、 主要な CPU プラットフォーム上に対して、その柔軟性、拡張性、信頼性、そして可用性を提供しています。

現段階で最もリアルタイム性の高い安定したOSで、マルチコアやマルチOSのサポートといった革新技術がなされています。

特徴としては、先進のメモリ保護機能、プロセスベースの標準プログラミングモデルを採用
拡張可能なAPI、非 VxWorks アプリケーションのサポート、メモリエラー検出とエラー報告機構、スケーラブルなメッセージパッシングアーキテクチャなどが挙げられます。

ぼくは、20代のほんと終わりに大規模な制御システムの構築の時に使用したことがあります。

やっぱり、普通のコンピュータとは異なり、CPUボードにプログラムをロードして動かしたりするその手順は違和感があって大変でした。

リアルタイムOSは、組み込みの分野では当たり前のことなのですが、自分たちのように文系出身で、普通のアプリを主に作っている人間にとってはとっても複雑で、いつも苦労していました。

20代のころは結構、リアルタイムOSでの開発をやったのですが、その後はUNIXやWindowsがシェアを伸ばしたと言いますか、世の中が極力UNIXやWindowsで。。。という風潮もあったので、まったく使うことがなくなりましたね。

今回も最後までおつきあい、ありがとうございました。

スポンサーリンク
スポンサーリンク




スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする