2018年9月26日水曜日

スマホのリアルタイム性


TRON構想が出たときに、膝を打ったことがある。しかし結局これは頓挫し、今のOSはまともなリアルタイム性がない。もちろんITRONやその派生品は健在なのだが、自分が言っているのはWindows、Androidなどの、汎用的にユーザが触るOSのことだ。

例えば、Windowsでは高速起動は色々と工夫されているが、システムを長年動かし、アプリを色々といれて行くと、「重くなる」という現象が起きる。タッチの反応が鈍くなったり、ドラッグが遅れてズズズっとなったり、キータイプしてもしばらく反応せず、その後ダダダっと字が入ったりする。

どんなにアプリが重くなっても、UIだけはしっかりリアルタイム性を確保して欲しいのだが、今のOSはそうなっていないのだ。ここにOSベンダの矜持の無さを感じる。なぜもっとここをしっかり作らないのか。

よく「ヌルサク」などと言うけれども、本来はCPU速度ではなく、リアルタイムOSで実現すべきものだ。そのためには、OSやアプリケーションの構造も、少し変えていかなければならない。

このための要は、最下部(最優先実行)にリアルタイムモニタを配し、ディスプレイやキーボード、タッチパネルなどのドライバを十分に低いレベルで動かすことである。また、タスクの実行状況が遅くなったらOSレベルで把握する仕掛けが必要になる。ローレベルでは十分にCPUを割り当て、上位がどんなに遅延していてもこちらの実行は優先されなければならない。

また、アプリ側では、全てのタスクに対して優先度が設定され、UIに関する部分とモニタ(異常検知)は最下部に置かなければならない。全てのプログラムは並列実行であり、実行の順番を保証するにはOSの機能を使わなければならない。タスクの異常検知と異常時の処理があらかじめ定められていなければならない。応答待ちに何も操作できないようではならない。タスクの中断は全ての場合でできなければならない。・・・・

こういった、アプリに対する厳しい制限があれば、たとえ重い処理であってもUIに反応が無くなることはないはずだ。これが相当に難しいというのは想像に難くないが、十分にコンピュータも発達してきたことだし、もう一度アプリの作り方について考え直してもらっても良いのではないか、と思う。

0 件のコメント:

コメントを投稿

注目の投稿:

超音波モーターの原理によるVR用トレッドミル

  VRにおけるリアリティ問題の一つに、その場で動くのではなく移動する場合、つまり歩いたり走ったりすることが挙げられる。実際にはその場にいるので、歩いたかのように足場を調節してやる必要がある。 これを実現する方法として、すり鉢状の滑りやすい足場を作っておく方法と、トレッドミルを使...

人気の投稿: