TRONの大きな特徴のひとつは、機器制御を目的とするリアルタイムOS(RTOS;real-time operating system)であるということです。
「リアルタイム」とは直訳すれば「実時間の」という意味で、外部から何らかの処理の実行要求があれば速やかに対応することを指します。


つまりコンピュータは行うべき複数の処理に実行順序を設定し、短い時間で切り替えながら順に処理を行っているのですが、TRONは突発的な事態が発生した場合、瞬時にそれらに新たな優先順位を与え、最も優先度の高い処理から次々と実行していくことができる機能を持ったOSなのです。
あらかじめ決められた実行順序にかかわらず、常にその場その場の状況に即応して処理の内容や順序が随時変更可能であり、確実にそれらを処理していくことができるのです。


このような突発的に発生する例外的な出来事を「イベント」といいます。またユーザーや他のプログラムが実行した操作などもイベントの一つであり、これらに個別に対応して適切な処理を返す形式であることから、このような仕組みを「イベントドリブン(event driven:イベント駆動)」、イベントドリブンスケジューリングともいいます。
つまりリアルタイムOSとは、実行すべき動作の指示をイベントの発生とそれに与えられた優先度に応じて次々と決定していく仕組みを持ったOSであるといえます。


リアルタイムOSは工作機械や計測機器をはじめとする産業用機器の制御などの組み込み分野においては不可欠なものであり、これらの機能に加えて実行すべき処理に要する時間を予測したり、複数の処理を同時に実行しなくてはならない場面が発生したとしても、あらかじめ定められた時間内にすべて完了するタイムマネージメント機能なども装備しています。


一つ具体的な例をあげてみましょう。
これはすでに小惑星探査ロボット「ミネルバ」などによって実現されていることですが、例えば惑星探査機というものは様々な処理を行う必要があります。
それに搭載されるリアルタイムOSは、現地の情報を適切に処理・加工して母船または地球へ正確に伝達しなくてはなりません。
しかも惑星探査機そのものを運行させるための推進部分やアンテナおよびバッテリーの制御、光センサーや温度センサーの駆動はもちろん、降り立った惑星の地表をハンマーで砕いて地表サンプルを回収・帰還するまでの全工程において、常に各機器を正常に稼働させながら最適な状態を保つようにコントロールします。
しかし予期しない突発的な緊急事態が発生することもあるでしょう。

何らかの原因によるバッテリー電圧の異常低下や燃料漏れの発生、原因不明のセンサーの故障や無線状態の不良など、考えられるアクシデントはいくらでもあります。
しかし、そうした場合においてもCPUが処理しなくてはならない動作に対して適切に優先順位を割り当て、そこにもし危険度の高い事態が含まれているならば、他の処理をすべて後回しにしてでも、惑星探査機がもつをフルに発揮して速やかにその危険を除去するための動作が実行できるようにプログラミングされていなくてはなりません。

この点がいわゆる情報処理用OSとの決定的な違いです。一口にOSといっても、機器制御用OSと情報処理用OSではその基本構造から異なります。

WindowsやLinuxは基本的には対人間の会話型OSであり、機器の制御を主な任務として設計されたものではないため、予期しない緊急事態に対処する処理能力をOSの基本原理として装備していないのです。


しかも相手は人間です。「しばらくお待ちください」とメッセージでも表示しておけばユーザーをイライラさせながらも、別に命にかかわるような場面はほとんどないはずです。
もちろん、言うまでもなく「命にかかわる」ような場面でタイムシェアリング型OSのみで動作する機器を使用することは文字どおり「致命的」です。もともとWindowsやLinuxなどは対人間の会話型OSであるため、そこまでの厳密性・緊急性を求めることはできません。


一方、例えば自動車のエンジン制御にも多く利用されているTRONは、エンジン内部における気化したガソリンの適切な爆発処理を確実にこなします。

クランクシャフトが回転する一瞬のタイミングを見計らって毎秒1000回以上燃料を噴射して次々と爆発を繰り返し、自動車の推進力を生み出していくのです。この絶妙な処理を高速かつ確実に実現するためには、リアルタイムOSとして設計された極めて信頼性の高いものでなくてはとても務まらないのです。


ここまでお読みになると、
「え?パソコンのOSだって、マウスやキーボードから与えられた指示に対してすぐに処理を実行してくれるじゃないか。これってリアルタイムOSじゃないのか?」
と思われるでしょう。しかしそれは違うのです。実は最近のパソコンに搭載されているCPUは大変高度な処理能力を持っているため、それによってリアルタイムな反応をしているように見えているだけなのです。
CPUの演算処理能力と人間の感知力との間にはあまりにも大きな格差があるために、あたかもパソコンがリアルタイム処理を行っているように見えてしまう錯覚を単に人間の側が起こしているに過ぎないのです。


WindowsやLinuxなどの情報処理用OSはタイムシェアリングOS(time sharing-OS)といい、決まった処理を限られた時間内で順番にこなしていくタイプのOSです。

これをラウンドロビン型、もしくはタスクドリブン型ともいいます。このタイプでは基本的に何らかの処理中に他の優先度が高い事態が発生した際に素早い対応をとることが難しい構造をもっています。
つまりこのタイムシェアリングOSとは、各処理に優先度が無く、あらかじめ定められた一定時間ごと(極微小な時間単位ごと)にタスク(コンピュータが行う処理の実行単位)をスケジューリングしていく方式(ラウンドロビンスケジューリングといいます)のことなのです。


かつての大型コンピュータのダウンサイジング※上にあるパソコンやワークステーションに搭載されているこれらの情報処理用OSの系統は、基本的に一貫してタイムシェアリングOSの流れを汲んでいます。
さらに現在のパソコンでは高度な処理能力を誇る省電力CPUを安定した家庭用電源によって十分な能力で駆動させることができるという満たされた環境にあります。

そのため、あえて既存のタイムシェアリングOSのプログラムの中枢神経に相当するコア(中核)部分をリアルタイム系に大幅に書き換えるような「大手術」を行ってまでわざわざ改変することもないと今日までそのまま放置されてきただけなのです。
しかし、「どこでもコンピュータ」世界の担い手の一つである携帯電話をはじめとするモバイルコンピュータなどでは、そういった潤沢な資源(CPUパワーや電源供給)がいつも安定的に得ることができるとは限りません。


※「ダウンサイジング」(down-sizing)とは、本来は大型コンピュータなどの大規模システムで行われていたような処理をパソコンやワークステーションなどのような小型のコンピュータによって担わせることを指します。

リアルタイムOS(=イベントドリブンスケジューリング)
処理すべき優先度が高いイベントが発生するたびに次々と実行順序を変更。イベント発生時の反応が速い。

タイムシェアリングOS(=ラウンドロビンスケジューリング)
処理優先度が無く、一定時間ごとに処理すべきタスクを順々に実行。イベント発生時の反応が遅い。


藤井講師研究室 http://www.ilovepc.jp