リアルタイムシステムの考え方について

少し語ってみたいと思う。
最近は減ってきたのだが、Windows CEの導入に躊躇(ちゅうちょ)する理由として(時に、全く相手にされないこともあるが)よく言われていることは「リアルタイム性」である。リタルタイム性?、「なんて日本人はこのことばに弱いことか」と皮肉を言っている場合ではないが、確かにITRONに比べてその性能が・・という向きがあるかも知れない。しかし、ITRONがよりプリミティブに近いものであることを考えると、それは当然といえば当然。ただし、意外や意外、Windows CEはNT系 Windowsとは違って、最初から組み込みシステムを考えてカーネルが再設計されていることもあり、現在のCE5.0、Embedded CE 6.0では殆んどの「リアルタイム性」ことに「ソフトリアルタイムシステム」要求に耐えうるものであると私は確信している。「ソフトリアルタイムシステム」の定義はさまざまのようだが、Windows CEは登場以来、長らくPDAのOSと誤解されていた。「リアルタイム性」あるいは「リアルタイムシステム」とは非常に誤解を生みやすい言葉だ。それは決して素早く動くシステムのことでもなければ、高レスポンスシステムのことでもない。ある外部からの事象に対して、その応答時間が予測できるシステムことである。要は、CPU資源をどう使うかという問題だ。かの名書「リアルタイムシステムの構造化分析」にて、冒頭に面白い逸話が紹介されている。これはリアルタイムシステムについて熱く語るある女性の話だ。私がこれを読んだのはずいぶんと昔のことなので正確でない部分はご容赦頂きたい。かいつまんで紹介すると。彼女はぼやきます。顧客からリアルタイムシステムと散々言われ、うんざりの様子、「彼らはリアルタイムシステムとは何か全く判っていないわ。とにかく素早く動くシステムだと思っているのよ。・・・」こんな感じだったと思う。ある棒(これは鉄製であったかどうかは忘れたが、長さが
1m?いや1フィート?すみませんこれも忘れた。)があり、「この棒の端に核爆弾を取り付けるわ、そしてもう一方の端にテレメトリシステムを取り付けるの。そして、それを砂漠の真ん中に掘った大きな穴の中心に向かって投げ込むのよ。・・・」さらに彼女はまくしたてます。「穴の中心で核爆発が起きるわ。テレメトリシステムは数ミリ秒と生きてはいられないわ。この時、どれだけの爆心地のデータを測定して伝送できるかが勝負なの。・・・リアルタイムシステムとはこういうことなの・・・」という話だ。まぁ話は大げさでどこまで本当かわからないが、ここで考えられることは、リアルタイムシステムは、「ハードリアルタイムシステム」と「ソフトリアルタイムシステム」に分かれるということである。「ハードリアルタイムシステム」とは、マクドネルダグラスのコックピットであったり、BMWのブレーキシステムであったりする訳だ。えっ、どこかで聞いたセリフ、まぁ気にしないで。こうなってくると間違いなくWindows CEどころではない。それは、pSOSであったりVRTX(VxWorks)であったりあるはLynxOSかもしれないが、もはやOSの介在する余地すらないのかも知れない。さて、皆さんの周りにある組み込みシステムとして、「ハードリアルタイムシステム」と呼べるもの、あるいはその必要があるものはいったいどれだけあるだろうか。こう考えると大抵の案件は「ソフトリアルタイムシステム」ではないかと思えてくる。
Hiroyuki Shimizu/CodeGear,Inc.