■ |
INtimeカタログやINtimeウェブページでINtimeの特徴を述べていますが、 ここでは少し違った観点からINtimeの特徴や、他のリアルタイムOSとの違いについて述べてみます。
- INtimeはインテル社が開発したiRMXカーネルを使っているということもあり、インテルのx86/CPUに特化したソフトウェアです。
他のリアルタイムOSにはさまざまなCPUで動作するように作られているものもありますが、この点は短所であるとともに、x86/CPUの特性を生かしているという意味では長所でもあります。
- INtimeをインストールしたWindowsシステムでは、WindowsとINtimeの2つのOS(カーネル)が動作するマルチOS(カーネル)のシステムになっています。
リアルタイムOSでこのような仕組みを取り入れているものは少ないのですが、INtimeの場合にはこの2つのOSをCPUが持っているハードウェアマルチタスクの機能でハード的に行っています。
別の言い方をすれば1つのCPUハードウェアを2つの仮想CPUとして使っていることになります。
従ってWindowsとINtimeの切り替えはハードウェア的に切り替わるのですが、そのためにソフトウェア的に切り替える場合に比べて切り替え時間が若干遅くなっています。
しかしながらその切り替え時間は数μ秒に対して+1〜+2μ秒程度ですからほとんど問題になりません。
- リアルタイムOSを使ったシステムではアプリケーションプログラムからI/O空間に自由にアクセスできることが求められます。 Windowsのプログラムでは自由にI/O空間にアクセスできず、カーネルモードで動作するデバイスドライバ経由になり、使い勝手や信頼性に不満が残ります。
INtimeではアプリケーションプログラムはWindowsと同じく保護されたユーザーモード(リング3)で動作しますが、アプリケーションプログラムから直接I/O空間にI/Oできます。
これはINtimeがWindowsとは別の仮想CPUを使うハードウェアマルチタスクを使っているから実現できたことです。
- 実はこのことはシステムの信頼性やデバッガー機能とも大きな関係があります。 他のリアルタイムOSの多くはI/O空間に直接入出力が行えるようにするため、x86/CPUで動作する場合にWindowsのドライバと同じようにカーネルモード(リング0)でアプリケーションが動作するようになっています。 Windowsシステムのクラッシュがデバイスドライバの不具合で発生するように、カーネルモードで走るアプリケーションプログラムに不具合があるとOSやシステム領域を破壊してシステム全体にダメージを受けることがあります。 このようなアプリケーションのバグが完全に取りきれていない状態でテストをしてもシステムがクラッシュしてしまったらデバッガーすら動作することができません。 それに対してINtimeの場合はユーザーモード(保護モード)で動作しますから、アプリケーションプログラムが不完全な状態で暴走することがあってもOSや他のアプリケーションは保護されていますのでシステムが停止したり、デバッガーが停止することはありません。
INtimeではWindowsのGUI機能を使ったリアルタイムデバッガーを利用してアプリケーションの高度なデバッグをセルフで行うことができます。
- また、同じ理由でINtimeシステムではリアルタイム用のドライバソフトをユーザーモード(リング3)で一般のアプリケーションソフトを作成するのと同じ感覚で開発できます。
アナログ入出力やデジタル入出力のような比較的単純なI/Oはアプリケーションから直接入出力できますからドライバは不要です。C言語の標準関数を使って入出力します。
(補)
INtime:産業用リアルタイムシステムをC言語で開発できる基本ソフトウェア(詳細ページ)
INplc :PLC言語(国際標準IEC-61131-3規格)で開発できるパッケージソフトウェア(詳細ページ)
|