組込OS

組み込みシステムのいいプログラミング環境はないものかと以前に書きましたが、ふと省電力をメインのテーマにしたOSやプログラミング言語ってまだ存在しないんじゃないかと思いました。CPUでは非同期プロセッサが王道から一歩はずれた永遠のロマンみたいなものとしてあって、演算に必要な分だけエネルギーを消費する美しさがありますが、同期回路の膨大な資産を投げ打ってまで移行するだけの魅力は出せていないようです。非同期プロセッサという極論まで行かなくても、OSレベルで、スリープモードを基本してイベントが起こった時に必要な分だけ計算するというものがあってもいいと思います。デジタル家電とかいって家電にどんどん複雑なコンピュータシステムが入ってくると、待機消費電力がばかにならない。Linuxでは色々問題があると思います。普通組込みOSではタスクが基本概念となりますが、そういうものは排除してイベントハンドラの集合みたいな形のものを用意する。イベントハンドラとメッセージパッシングはたぶん相性がいいのでオブジェクト指向を活かしたOSができるような気がしてきました。(もしかしたらその辺りを取り組んでいるのがsymbian OS?)

ちょっと調べてみよう。
(追記)
オブジェクト指向との相性については、まだ見つかっていませんが、そのほかの話は組込みOSで十分考慮されていました。
TinyOSとか以前から名前は知っていましたが、「わざわざ言語まで設計するか」という感じだったのですが、ようやく意味がわかりました。
例えば、低速シリアルI/Oの処理とか、イベントドリブン(1バイト受信)だけど、タスクを処理したい場合、C言語のような言語ではタスクのアルゴリズムをきれいに表現できなくなります。これを避けるためには言語を変えるしかない。いいところを突いていると思いながらnesCのリファレンスマニュアルを眺めると、どうも様子が変で、タスクはnon-preemptととある。これじゃやっぱり例に挙げた低速シリアルI/Oの処理とかCで書くのと違いがないじゃないかというのが今の私の印象です。一度使ってみよう。