マルチタスクの暗黒面

マルチタスクは電力を消費します。
 
いきなりですが、マルチタスクになって良くないこともあるというお話。
マルチタスクというのは 意味的には同時に複数の処理を行うという意味となるわけですが CPうが一個であれば同時に複数の処理は実質的にはできていません。
マルチコアならといいたいところですが、こちらは微妙なのですが 例えばメモリーへのアクセスなどを多くの場合一本化しているので こちらも本来ひとつの入り口で 片方のコアが忙しいときに もう片方が次の処理を引き受けるというような使い方となり実際のところマルチとは言いにくいかと。
もちろん、各自でキャッシュを持っているので キャッシュ内の処理となれば厳密にはマルチタスクといえなくもないわけです。
まあ、言葉はどうあれ マルチタスクとはそういうものです。
 
PCを例にとってもそうなのですが、必ずしも常時CPUのパワーを全開で消費しているわけではありませんので 当然いつも遊んでいるに近い状態となります。
PCの使い方という意味では メールを受信することはバックグラウンドで常に行いながら 例えばワープロを使っているなど 複数の処理を同時に行えれば便利になるわけです。
じゃあ、シングルタスクだとするとどうなるかというと シングルタスクのはずのi-Phoneでもバックグラウンドでメールは受信します。
この場合の言葉としては 任意のアプリケーションが同時に二個以上動かすことのできるプラットフォームという言い方が正しいような気がします。
実際、同時に処理しているのではなく 明示的に区分されたプログラムエリアを切り替えながら二つの処理が同時に動いているようにコントロールしているという意味では同じになるからです。
使う上では非常に便利になるわけですが それ故に欠点もあります。
たとえばいつ切り替えられるくぁからないので 切り替えを監視する仕組みが必要となります。
じゃあ、CPUの能力が低ければ 1つの仕事に熱中しようとしているのに ずっと邪魔が入っている状態となるわけです。
仕事に手を取られているわけではないのですが、例えば人間でいえば 熱いところに座って仕事をしていると 蚊の翅音がずっと聞こえているような状態。
メインタスクではないのですが、その音を無意識のうちに追いかけているので 常時処理の少しをそこに割り振っているので遅くなってしまいます。
もう一つは、監視しているプログラムがあるわけですが 各自のプログラムがどれだけの重い処理を実行しているかわかりません。
昨今のように省電力を進めようとした際に各プログラムの負荷が下がった時にはCPUの処理速度を落として対応するわけですが プログラムが別々いに動いているので 両方の要求する処理量の総和の予測が難しく、特に人が触れた瞬間などの体感的な速度を落とさないためには どうしても無駄と分かっていても・・・というのが必要となるわけです。
 
i-OSが4からマルチタスクに対応しました。
マルチタスクならではの弱点も持ったわけです。
また、バックグラウンドのタスクができるということは バックグラウンドで実行されっぱなしの処理が動きっぱなしになっている可能性も出てくるわけです。
例えばバックグラウンドでCPUの処理のほとんどを使ってしまうアプリケーションを動かしていて、バックグラウンドに追いやったので見えなくなっている。
ポケットにi-Phoneを入れて しばらく歩いているとバックグラウンドの処理が電池をどんどん消費して言って気が付いたら電池がなくなっていたとかいう状況。
WindowsMobileやAndoridでは最初からマルチタスクに向けて作られています。
Andoridの省電力の指標では プログラム毎に使われたCPUのリソースなどを一覧にするものがあって どの処理が時間を(電池を)食ったなどということも確認できます。
いまのところ iーOSではそのあたりがはっきり見えていませんn。
現在、ほとんど存在していない マルチタスク対応のアプリケーションが増えてきて マルチタスクが動き出したときに どうなるのでしょうか?
もちろん、Windows MobileやAndoridでもそれに伴い その処理について見直す動きが出てくるのでしょう。
今まで あまり話題にならなかった モバイルOSでのマルチタスクが良い点と悪い点を明らかにして 話題になって 面白くなりそうな気がします。
written by HatenaSync