iPadがiOS 4.2にアップデートし、「マルチタスキング」に対応した。マルチタスクとは少々異なるこの機構、デスクトップOSではもはや常識の「マルチタスク」や、アプリの迅速な切り替えを意味する「FastAppSwitch」との兼ね合いもあり、誤解を招きやすい部分がある。ここでは、マルチタスクと比べてどう違うか、iOS 4ではなぜこのような機構を採用したかを含め、マルチタスキングのしくみを解説したい。

「マルチタスク」と「マルチタスキング」の違い

Mac OS XやWindowsなどのモダンなOSでは、必ずと言っていいほど「マルチタスク」がサポートされている。マルチタスクとは、1台のコンピュータで複数の処理を並行して行う機構のことで、複数のアプリケーション(タスク)を同時に起動しておき要求されたタイミングで切り替える、という使い方を可能にする。

その中心的な役割を果たすのが、OSの核となるプログラム「カーネル」だ。実際のところ、各タスクは極めて短い時間に分割され、CPUにより切り替えられつつ順次処理されているが、カーネルのスケジューリング機能によりあたかも同時処理されているように見える。プログラムの単位の取りかたによって、マルチプロセスやマルチスレッドと呼ばれることもあるが、基本的な考え方は同じだ。

iOSはMac OS Xと同じDarwinがベースで、複数のタスクを並列処理可能なマルチタスク対応カーネルを採用している。その気になればMac OS X同様のマルチタスクOSとすることも不可能ではないが、少数のタスクに絞り込み処理を進めたほうがパフォーマンス低下を防げ、常時稼動しておくタスクの少ないほうが電力消費量は少ないことから、iOS 4では後述する「マルチタスキング」という擬似的なマルチタスク風機構を採用している。

補足しておくと、iOSは誕生当初からマルチタスク/マルチプロセスなOSだ。しかし、すべてのアプリにマルチタスクを許せばシステムへの負荷が高まり、パフォーマンス低下が避けられない。それでは電話として心もとないため、Appleは電話(MobilePhone)など一部の純正アプリのみマルチタスクを許し、他のアプリはウインドウを閉じれば即終了、というシングルタスク的なオペレーションを強制していた。それがA4プロセッサの導入などハード性能の向上により緩和された、ということがマルチタスキング導入の背景にあるのだ。

FastAppSwitchのウラにある「マルチタスキング」と「バックグラウンド動作」

iOS 4では、アプリが前面に表示されている状態でホームボタンを押したとき、アプリを完全に終了(プロセス終了)せず、一時停止状態にする(プロセス継続)ことが可能になった。一時停止状態からの復帰は、他のOSのマルチタスクのようにスムーズかつ迅速に行われることから、Appleはこれを「FastAppSwitch」、それを支える機構を「マルチタスキング」と呼んでいる。

ユーザにとってのFastAppSwitchを利用するメリットは、ホーム画面へ戻りアプリを起動する手続きを省けることのほうが大きいかもしれない。FastAppSwitch導入以前は、アプリAからアプリBに切り替えるとき、Aを閉じて(終了して)ホーム画面に戻りBをタッチするという手順を踏んでいたが、iOS 4からはアプリAを起動したままタスクバーを表示して、Bのアイコンをタッチすればいい。

iOS 4からのアプリ切り替え手順(FastAppSwitch)。ホーム画面を経由せずにすむうえ、マルチタスキング対応アプリはプロセスが終了されない。さらに一部のアプリは、バックグラウンドでの動作が可能

iOS 3.xまでのアプリの切り替え手順。いちどホーム画面を経由しなければ切り替えできないうえ、一部の純正アプリを除き切り替えた時点でプロセスは終了される

マルチタスキングは、すべてのアプリが対応するわけではない。開発者がそのようにプログラミングしたアプリに限られ、iOS 3.x以前向けのアプリは、iOS 4で動かしたとしてもホームボタンをクリックすれば従来どおりプロセスが終了される。

マルチタスキングに対応したアプリにも2種類あることを覚えておきたい。タスクを切り替え非アクティブな状態(前面表示されていないがタスクバーにアイコンがある状態)にすると、凍結状態に入ってしまうアプリがある一方で、非アクティブな状態になっても動作し続ける「バックグラウンド動作する」アプリもあるのだ。たとえば、IPサイマルラジオを受信できるアプリ「radiko.jp」はバックグラウンド動作に対応するため、Safariを使いながらラジオを聴く、という使い方ができる。ほかにもIP電話アプリ「Skype」、オンラインメモアプリ「Evernote」など、システムに常駐させて即応性を高めたほうが好都合なアプリの多くがバックグラウンド動作に対応している。

マルチタスキング対応をうたったアプリのなかにも、「radiko.jp」のようにタスクバーへ入っても機能し続けるバックグラウンド動作が可能なアプリもある

なお、バックグラウンド動作するアプリかどうかは、「MemStatus」などのシステム上のプロセスを一覧できるアプリを使わなければ確認できない。Skypeのように、バックグラウンド動作させておくとバッテリーを著しく消費するアプリもあるだけに、使い終えた時点でプロセスを終了させるタスクバーの使い方をマスターしておくべきだろう。

バックグラウンド動作するアプリは、使い終えた時点でプロセスを終了すること(タスクバー上のアイコンを長押しして振動状態にし、「-」マークをタッチ)。そうしなければ、バッテリーの減りが早くなることもありうる

稼働中のプロセスを確認できるアプリ「MemStatus」。MemStatusが前面に表示されているにもかかわらず「Radiko」が表示されているということは、Radikoがマルチタスキング対応アプリだという証拠になる

iOS 4.2関連記事

アップル、「iOS 4.2」の提供を開始 - iPadにiOS 4の導入が可能に
【レビュー】iPadユーザーから見た「iOS 4.2」──新機能&変更点を速攻チェック
アップル、MobileMe向けだった「iPhoneを探す」を無料開放
Apple TVのファームウエアがv4.1に - AirPlayに対応
【レポート】iOS 4.2でさらに生活&仕事に入り込むiPad - アップデート記事まとめ
【レポート】iOS 4.2アップデートで改めて理解する「マルチタスキング」のしくみ
【レビュー】iOS 4.2の目玉機能「AirPlay」は、こんなに便利だった!
【レビュー】ワイヤレス印刷「AirPrint」のナゾに迫る - iOS 4.2の注目機能チェック