iOS 4 und Multitasking


Vor einiger Zeit hatte ich ein Streitgespräch mit einem Bekannten, der einen Palm Pre sein Eigen nennt. Als besonderen Vorzug gegenüber dem iPhone führte er an, dass der Palm Pre im Gegensatz zum iPhone ein „echtes Multitasking“ unterstützen würde. Als er mir diese Funktion demonstrierte, verursachte das bei mir nur unverständiges Kopfschütteln, denn der Unterschied zwischen diesem „echten Multitasking“ und der Umschaltung zwischen den Apps auf dem iPhone hat sich mir damals schon nicht erschlossen. Die erste Frage, die ich mir beim Ausprobieren des ersten iPhone nämlich stellte, war: wo, wann und wie wird eigentlich eine Anwendung explizit beendet?

Mit iOS 4 kommt jetzt Multitaksing!

Screenshot von der Homepage von Apple
Entnommen von apple.de: Multitasking unter iOS 4

Nun hat Apple das iOS 4 herausgebracht und wirbt unter anderem damit: „Jetzt kannst du deine Lieblingsapps anderer Entwickler laufen lassen und einfach zwischen ihnen wechseln, ohne die Leistung der App im Vordergrund oder die Batterielaufzeit zu beeinträchtigen.“ Eine Fußnote weißt aber darauf hin: „Multitasking wird nicht von allen Apps unterstützt.“

Was ist eigentlich Multitasking, und wie prägt es sich auf dem iPhone aus?

Ich fange mit dem zweiten Teil der Frage an: Auf den ersten Blick geschieht die Umschaltung zwischen den aktiven Apps mittels Doppelklick auf den Home-Button. Vor iOS 4 hat man einmal den Home-Button betätigt und die Applikation gestartet, die man benötigte. Aber schon damals beherrschten die Anwendungen, die das iPhone mitbringt, Multitasking. Man kann Musik mit der iPod-Anwendung hören und parallel E-Mails lesen.

Mit dem Doppelklick auf den Home-Button werden bei iOS 4 die Anwendungen angezeigt, die gerade ausgeführt werden. Wer die Umschaltung mit Doppelklick bis dato nicht verwendet hat, wird sich wundern, was sich da so alles im Laufe der Zeit ansammelt. Die Liste führt praktisch jede Anwendung auf, die einmal gestartet wurde, also Telefon, Nachrichten, E-Mail, Uhr, etc. Wenn diese laufenden Anwendungen nicht explizit beendet werden, bleiben sie in der Liste stehen, was irgendwann sehr unübersichtlich wird. Hinzu kommt die berechtigte Frage, was die Anwendungen, die gar kein Multitasking unterstützen, eigentlich in der Liste „zu suchen“ haben? Ein effizientes Wechseln zwischen den laufenden Anwendungen ist aber so überhaupt nicht möglich, ja es ist oft komfortabler, über den Homebildschirm die Anwendung quasi „neu zu starten“.

Um nun aber auf den ersten Teil der Frage zu kommen: was ist eigentlich Multitasking? Verkürzt ausgedrückt, kann eine einzelne CPU mehrere Prozesse (also verschiedene Anwendungen, aber auch und insbesondere Systemprozesse) nur quasiparallel abarbeiten, indem jedem Prozess eine definierte Zeit für die Ausführung von Befehlen innerhalb einer Zeitscheibe zugebilligt wird. Durch die hohe Anzahl von Anweisungen, die in einer Sekunde von einer CPU abgearbeitet werden können, entsteht der Eindruck, dass die Prozesse parallel laufen. Ohne dieses Prinzip würde kein Computer der Welt funktionieren, denn selbst wenn keine Anwendung im Vodergrund läuft, ist das System trotzdem mit vielen Tätigkeiten im Hintergrund beschäftigt. Das ist im Übrigen echtes Multitasking, das nicht nur der Palm Pre beherrscht ;-).

Wann profitiert aber ein Benutzer tatsächlich von diesem Multitasking?

Kein Mensch kann gleichzeitig in zwei oder mehr Anwendungen parallel arbeiten. Dass ein Computer Anwendungen nacheinander in den Speicher laden kann, und der Benutzer damit schnell zwischen diesen Anwendungen hin und her wechseln kann, hat primär den Vorteil, dass damit die „Ladezeit eines Programms“ praktisch auf 0 reduziert wird. Insofern ist es primär ein Komfortmerkmal.

Sobald eine Anwendung in den Arbeitsspeicher geladen wurde, liegt sie dort und wartet auf eine Eingabe oder ist mit der Verarbeitung oder Ausgabe beschäftigt. Sobald eine Eingabe erfolgt, beginnt die Verarbeitung und ggf. eine Ausgabe (das bekannte EVA-Prinzip). D. h. lade ich in meinem Browser eine Datei herunter, dann ist ein Prozess damit beschäftigt, den einlaufenden Datenstrom zu speichern und die Kommunikation mit der Gegenstelle aufrecht zu erhalten. In der Zwischenzeit kann ich etwas anderes tun, z.B. meine E-Mails lesen und beantworten, oder mit meiner Textverarbeitung einen Brief schreiben und parallel dazu Musik hören.

Unendlicher Speicher?

Wenn also das iPhone, wie oben geschildert, jede Anwendung in den Speicher lädt, und diese so lange dort verbleibt, bis sie explizit beendet wird, dann stellt sich die Frage, was passiert, wenn der Speicher voll ist? (Das 3GS verfügt über 256 MByte Arbeitsspeicher, das neue iPhone 4 hat nun 512 MByte). Betriebssysteme lagern ggf. Bereiche des Arbeitsspeichers aus („Swapping„), indem diese Teile in den nicht flüchtigen Speicher (z.B. Festplatte, bzw. beim iPhone in den NAND-Flash-Speicher für Daten) kopiert, der Arbeitsspeicher freigeben, und bei Bedarf die Inhalte wieder in den Arbeitsspeicher zurück geladen werden. Beginnt ein System, zu „swappen“, dann kann das bei umfangreichen Aktionen die Systemleistung sehr beeinträchtigen – insofern kann man nicht genug Arbeitsspeicher haben.

Das heißt, aufgrund des natürlich beschränkten Arbeitsspeichers des iPhone wird es auch dort nicht ausbleiben, dass nicht genutzte Anwendungen ausgelagert und bei Bedarf wieder zurück geholt werden müssen. Erschwert und wahrscheinlicher wird dies durch die Tatsache, dass ja Anwendungen nun explizit beendet werden müssen. Das Auslagern ist jedoch ein Prozess, der sich dem Benutzer nicht unbedingt offenbart. Wenn man also vor iOS 4 eine Anwendung mittels Home-Button beendet hat, und diese bei erneutem Aufruf scheinbar unverändert dargestellt wird, muss das nicht zwingend mit Multitasking zu tun haben. Andererseits muss eine Multitasking Anwendung nicht zwingend im Arbeitsspeicher gehalten werden, wenn sie gerade nicht verwendet wird und gleichzeitig der Speicher knapp geworden ist (Swapping).

Fazit

Das iPhone – oder allgemein gesprochen ein mobiles Endgerät – ist nicht für die parallele Verwendung von Anwendungen konzipiert, und nach meiner Einschätzung ist das auch gar nicht notwendig. Da, wo ein automatisches Multitasking möglich ist (z. B. Musik hören während man E-Mails liest) kann es genau so weiter funktionieren wie vor dem iOS 4 Update. Für den Anwender ist Multitasking weniger wichtig, als die schnelle Umschaltung zwischen Anwendungen. Diese Umschaltung mit iOS 4 ist aber hinsichtlich der Usability leider sehr schlecht gelungen. Ich gehe davon aus, dass das bei Apple erkannt wird und hier einen sinnvollere Lösung kommen wird.

Insofern bleibt mein erster Eindruck: das iPhone kann auch gegenüber einem Palm Pre bestehen, denn Multitasking auf der reinen Anwendungsebene ist nichts, was ich tatsächlich brauche.

Advertisements

Was meinst Du dazu?

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s