AppleInsider: Apple の iPad の内側: マルチタスクキング

原文: Inside Apple's iPad: Multitasking

By Daniel Eran Dilger
Published: Thursday, February 18, 2010 12:10 AM EST
Apple の新しい iPad は、複数のサードパーティ製アプリケーションを同時に実行する能力がないと非難されているが、同社はこの問題に対処するためにさまざまなオプションを用意している。
iPadiPhone OS は、ユーザーがサードパーティ製アプリを閉じた後にもバックグランドでそのアプリが実行されるのを一律に制限している。 しかしこれは、iPhone OS が「マルチタスクできない」からではない。というのも iPhone OS は Apple のデスクトップ用 Mac OS X と同じプリエンプティブなマルチタスク Mach/BSD カーネルを使用しているからだ。
iPhone OS は電話やテキストの着信に備えてモバイルネットワークにアクセスするシステムプロセスを絶えず実行し、途切れることなく音楽を再生するための iPod プロセスを実行し、アイドル状態のアプリに送信されるバックグランド通知を見張っており、さらに他にも常に実行させているさまざまなことがある。 これはマルチタスクの定義だ。

オペレーティングシステムにおけるマルチタスク
1984 年のオリジナル MacintoshPDAPalm OS 系列のようなシングルタスクオペレーティングシステムは、単純に複数のアプリケーションを同時に実行することができない。これは設計上の制約によるものだ。
80 年代半ば Apple はクラシック Mac OS を採用して、アプリケーション間を切り替える協力式マルチタスキングを採用したウィンドウ環境を生み出した。 このモデルでは、さまざまなアプリケーションがプロセッサーのコントロール権を自発的に放棄して、すべてが同時に実行されているかのように見せることができた。
このモデルの欠点は、反応しなくなったアプリケーションが他のアプリケーションとプロセッサー時間を共有できなくしてしまい、結果的にマルチタスクという幻想をぶち壊してしまう可能性があったことだった。 Mac OS X のようなモダンなオペレーティングシステムは、他のアプリケーションに占有割り当てをするカーネルのタスクを指定し、そうしたアプリケーションが反応しなくなったとしても、カーネルがそうしたアプリケーションを終了して他のアプリケーションは実行を継続できるようになっている。

マルチタスクを超えて
iPhoneiPod touch、そして iPad 内部の iPhone OS は、こうしたプリエンプティブなマルチタスクが可能なだけでなく マルチプロセッシング をも採用しているため、異なるプロセッサーコア上で複数の異なるタスクを実行できるようになっている。
例えば、動画の再生時には iPhoneH.264 デコードが関わるような重い負荷を特別な動画プロセッサーに割り振り、メインのプロセッサーコアは、アップデートの監視やユーザーインタフェースの維持といった他のタスクを処理し続けられるようになっている。
iPad に収められている Apple の秘密に包まれた A4 プロセッサー[和訳] は実は System on a Chip で、それぞれが複数のタスクを同時に処理できるようなマルチプロセッサーコアを組み込んである。

モバイル環境でのマルチタスク
複数のアプリケーションを同時に実行できるのはある一定の利点がある一方、Apple がわざわざ一度にひとつのアプリしか実行できないようにした安全策を iPhone OS で採用しているかには、いくつかの理由がある。
まず、リソースの制約だ。 モバイルデバイスは、限られた量の RAM と CPU パワーしか備えておらず、複数のアプリを一度に起動して実行すると、モバイルデバイスのパフォーマンスとバッテリー持続時間に関連した新たな問題が持ち上がってしまう。 またシステムの複雑さも増し、ユーザーはバックグランドで実行されているプロセスを監視・管理せざるを得なくなる。
もうひとつの問題はセキュリティーに関連するものだ。 もし iPhone OS でのようにアプリがユーザーによって簡単に終了できない場合、ユーザーはアプリがまだ動いていることに気づかないかもしれない。 バックグランドのアプリはもしかすると非常に便利なサービスを提供してくれるかもしれないが、そこに一切の制約がない場合、スパイウェアやウィルス、あるいは他の悪意あるソフトウェアをインストールすることもできてしまう。 iPhone OS ではそれは単にできないようになっている。
PC デスクトップでの何十億ドル規模のマルウェア問題を見れば、制約のないソフトウェアインストールにはなぜ長所と短所があるのかが分かるだろう。 Google の Latitude といった一見害のなさそうなバックグランドサービスでさえ、例えば自分の居場所を広く宣伝してしまうといった、潜在的なリスクを認知できるだけのセキュリティー面での認識がなければ、ユーザーを不必要なセキュリティー脅威に晒してしまう。



iPhone のマルチタスク

Appleサンドボックス化されたマルチタスクモデルの例外
Apple iPhone OS のモバイルに最適化されたセキュリティーモデルは、MicrosoftWindows Mobile としてモバイルデバイス向けに変更したデスクトップ PC モデルよりも、利便性、シンプルさ、そしてパフォーマンスの点でユーザーの理に適ったものになっている。 しかし、それでもまだ Apple による対処が必要な課題がある。
まず、AppleiPhone 2.0 の開発後に認めたもの: つまり、多くのアプリがただニュースやメッセージ受信のために外部からのアップデートを聞くために開いたままの状態でいたいことだ。 Apple の通知サービスはこの機能をシステムタスクに導入し、iPhone そのものがアップデートを確認しアプリに受け渡すか、ユーザーが対応できるように通知メッセージを送るようになった。
通知以外では、iPad ユーザーが必要だと感じるかもしれないマルチタスク関連の機能がある。 ひとつは、Pandora ラジオのようなローカルなバックグランドサービスだ。 Apple が投入を予定している iPhone OS 4.0 は、ユーザーが特定のアプリをバックグランドで実行するよう選択するか、そうしたサービスをシステムにロールするか、あるいは特定のバックグランドタスクを許可できるようにすると予測されている。
これによって、Pandora のようなアプリはバックグランドタスクを開始でき、ユーザーがそのアプリを終了した後でさえも継続できる。 iPad のより高速なプロセッサーであれば、限られた数のバックグランドサービスを実行する機能があったとしても、現在の iPhone でのような問題にはなりにくいだろう。

状態とメイン
セキュリティーマルウェア問題といったパンドラの箱を開けずにマルチタスク関連の機能を実現するもうひとつのアプローチは、ユーザーがアプリ間を高速で切り替えられるように、システムがその時点で実行しているアプリの状態を維持するようにすることだろう。
これによって現在の iPhone OS でのような、アプリ間の切り替えというシンプルなモデルを、システムのプロセッサー、メモリー、そしてバッテリー持続時間を犠牲にすることなく拡張することになる。主要アプリは一度にただひとつしか実行できないという点は変わらないからだ。
iPhone 4.0 のメインのシステムアプリに追加サービスを組み込むことで、実際に iPhone OS のセキュリティーモデルを損なうこともユーザーが新たに管理を余儀なくされるような複雑さも引き起こすことなく、サードパーティ製アプリがマルチタスクやバックグランド処理を利用するようにもできるだろう。

Dashboard ウィジェット
MicrosoftWindows MobileGoogleAndroid と同じ轍を踏まずにマルチタスクスタイルの機能を送り出すにあたって Apple が探ることのできるもうひとつの道は、オリジナル Macintosh にそのヒントがある: デスクアクセサリスタイルのウィジェットだ。
それは実際にはアプリ間のマルチタスクではないものの、1984 年のオリジナル Macintosh はユーザーが主要なアプリケーションと組み合わせるかたちで計算機やスクラップブックといったミニアプリを実行できるようにはしていた。
iPadiPhone ではお馴染みとなった株式情報や天気情報、そして計算機アプリのないままデモンストレーションされたという事実から、こうしたアプリがフルスクリーンのユーティリティから、Apple 自身の iWork といった他のアプリ内から呼び出せるようなデスクアクセサリーウィジェットへとシフトした兆候かもしれない。
YouTube ビデオの再生機能など、オリジナル iPhone が発表された際にはなかった機能が盛り込まれたように、iPad の最終リリースに初期のプレゼンテーションにはなかった追加機能が盛り込まれてくるだろうことは疑いの余地はないだろう。 開発者らはすでに、Apple が公式には宣伝していないような、さまざまな iPad の隠し機能に通じている。