間違いだらけのネットワーク作り(305) 2003/11/15
「情報化研究会大会予告(1)ユビキタスとトロン」

昨夜は情報化研究会のコアメンバー8人でちょっと早い忘年会をしました。 12月13日の研究会で「ユビキタス時代のネットワーク戦略」を講演していただく、総務省技術政策課長の稲田さん、医療情報システムの権威である国立国際医療センターの秋山先生らと5時間あまり話をしました。 いつものごとく1次会は虎ノ門の中華料理店、2次会は銀座のワインレストラン。 まあ、いろんな話題が出ましたが、稲田さんと秋山さんの関心はユビキタスに集中しているようで、お二人の話からおぼろげにユビキタスのイメージが出来てきました。

ということで、12月13日の予告編というには貧弱ですが、今週はお二人の話を出発点にユビキタスとトロンの関係についてさわりを書いて見ましょう。

「情報化研究会大会予告(1)ユビキタスとトロン」

○そもそもユビキタスとは
よく知られているようにユビキタスの語源はラテン語で、いたるところに存在する(遍在)という意味。 インターネットなどの情報ネットワークに、いつでも、どこからでもアクセスできる環境を指す。 ユビキタスが普及すると、場所にとらわれない働き方や娯楽が実現出来るようになる。 ユビキタス・コンピューティングは、メインフレーム(複数で一台を使用)、PC(一人一台)、に続く、一人が複数のコンピュータを使う第3世代を示す。

アクセスに使う端末は、パソコンや携帯電話に限らず、冷蔵庫や電子レンジといった家電製品、自動車、自動販売機等もインターネット接続され、ウェアラブル・コンピュータと呼ばれる身に付けるコンピュータも開発中。 モビリティを高めるため、これらの情報端末間はケーブルではなく、無線LANやブルートゥースという無線ネットワークで接続される。 また、現在のインターネットのアドレス体系IPv4では約43億個のアドレスしかなく不足するので、IPv4の4乗個のアドレスを持つIPv6の利用が想定されている。

○トロンとは(トロンプロジェクトHPより引用)
トロン(TRON: The Real-time Operating system Nucleus)は、理想的なコンピュータアーキテクチャの構築を目的として、1984年に東京大学の坂村健博士によって提案された新しい
コンピュータOS仕様。 TRONプロジェクトは、身の回りの環境にコンピュータ組み込みの「カシコイ」機器を遍在させそれらをネットワークで結ぶことにより人々の生活を助ける――「どこでもコンピュータ環境」の構築を目的として始められたプロジェクトである。 そのため、モバイルを含めた幅広い機器に搭載できるためにサイズ的にもコンパクトであり、実環境で利用できるリアルタイム性を特に指向している。 

現在の主目的は「ポストパソコン時代における理想的なネットワーク家電用OS仕様の構築を目指す」ことらしいです。

○トロンが何故ユビキタスに向いているか
秋山さんによればトロンの特徴はリアルタイムであること。 これを言い換えると処理すべきイベントがQueue(待ち行列)に並ばされず、発生と同時に処理されるということらしいです。 古いOSの考え方は1個しかないCPUを効率的に使うため複数のタスク(CPUが処理すべき仕事をこなずプログラム)を並行して動かし、CPUを使っているタスクは同時には一つしかないが、そのタスクがI/O(入出力)待ちに入ったり、処理が完了するとCPU使用権を他のタスクに渡すことにより、CPUの遊び時間を極力なくして処理効率をあげる、というものでした。
 CPUを使いたいタスクは自分の順番が来るまでQueueにつながれて待たなければいけません。 こういう処理方式をマルチタスクと私は新入社員の時に教わりました。

現在にいたるまで、WindowsやUNIXの考え方はこのままで変わってないそうです。 ところがトロンは違います。 CPUは安くなったのだからタスクごとにCPUを持たせてしまい、さらにそれをチップ化してしまえ、という発想だそうです。 タスクという古い言葉が適切なのか、プロセス、あるいはオブジェクトという言葉が適切なのか私には分かりませんがアイデアはそういうことのようです。 各タスクがCPUを持っているのですから、待つ必要がありません。 リアルタイムという所以です。

自動車のエンジンの制御をするOSが処理すべきイベントを待たせたのではたちまち事故を招きます。 リアルタイムのトロンが使われるわけです。

秋山さんは医者だけあって、面白い例えをしました。 従来のOSの考え方が一つの脳だけで処理するものだとすると、トロンは大脳、小脳、延髄、さらにはニューロンがそれぞれCPUとして機能している人間の体に近い発想のOSだということ。 呼吸や反射は大脳で考えてやっているわけではなく、小脳や延髄がリアルタイムにやってくれている、ということです。

○ユビキタスと企業ネットワーク
実は私がIPセントレックスで使っているIP−PhoneもOSはトロンです。 それがユビキタスかと言うとそうは思いませんが。 企業ユースでユビキタスはどうか。 稲田さんによればユビキタスは個人利用が主体とのこと。 しかし、最近製品が出始めた無線SIP端末やSIP対応のPDAなどが企業内で働く人の2つ目、3つ目のコンピュータとして使われるようになるとユビキタスは法人でも有効なソリューションになるかも知れません。 稲田さんの講演にヒントがないか、期待します。 キーワードは昨夜聞いたのですが、ここに書くとミステリーの結末を書くことになるので止めておきます。
 

追記:私の不正確なリアルタイムOSの記述をNTTPCの波多さんが訂正してくれましたので、そのメールを引用します。
NTTPCの波多です。
リアルタイムOSとマルチCPUを混在されているように思います。
マルチCPUは、Windows2000やUNIXのような非リアルタイムOSでも
動きます。またシングルCPUシステム(多分IP-Phoneはその例)
でもリアルタイムOSは動きます。8年前まで実際にCTRONを
使ってフレームリレー交換機のソフトを書いていたときの
知識をひっくり返してみますと、、、、

リアルタイムOSでは、タスクとイベントの待ち合わせにおいて
ひとつのキューが使われるのではなく、複数のキューが使われます。
タスクには優先度という属性があり、同じ優先度をもつタスクが
おなじキューを共用します。実行可能なタスクが実行待ちキューに
並んでいる場合高い優先度を持つキューから先にタスクが取り出されます。
優先順位の高いタスクは、I/O待ちキューや時間待ちキューに並んでおり
実行待ちキューが空であれば、次の優先順位の実行待ちキューに
タスクがあるかどうか検査されます。
1つのCPUの場合、キューの外にある(実行中)タスクは一つだけです。
他のタスクはすべてどこかのキューに入っています。2つCPUが
あればキューの外にある(実行中)のタスクは2つだけです。
ネットワーク技術者に受け入れられやすい説明は、QoSをもったOSです。
パケットに優先順位がついて、指定のキューに入れられるのと同じ
アイデアです。CPUの個数は出力リンクの本数です。

リアルタイムといっても、高速なOSというわけではありません。
優先すべきタスクはアプリケーション設計者が決めなければならず、
それにより、時間あたり処理できる仕事量が雲泥の差になります。
UNIXやWindowsではプロセスやスレッドの実行順序はOS任せであった
のが、何を優先させるかの取り決めを設計者側の裁量に任せることが
できるのがリアルタイムOSです。世間ではITRONさえ使えば性能があがる
ような風潮、誤解があります。実際は設計者の裁量権が増えただけです。
そこからさきは、設計者の設計によりすべてが決まります。
リアルタイム処理アプリケーションは各タスク個別に技術者が設計します。
この時点では、一人はひとつのCPUを割り当ているように設計すればいいのですが、
どのタスクにどの順位を割り当てるかは、最終的に一人のエンジニアに
より決められます。その最高レベルのエンジニアのスキルによりシステムの
パフォーマンスが決まってくる、それがリアルタイムOS上のソフト開発です。

マルチCPUでタスクを分散処理する考え方はTRONではなく、並列分散処理に
近いような気がします。
 
 
 

ホームページへ