Читаем Компьютерра PDA 19.06.2010-25.06.2010 полностью

<p id="sec_14">В чём секрет многозадачности iOS4</p>

Автор: Андрей Письменный

Опубликовано 22 июня 2010 года

У обладателей айфонов и плееров iPod Touch наступил небольшой, но весёлый праздник – день обновления операционной системы. Ритуал, связанный с ним, прост: телефон или плеер положено подключить к компьютеру, найти в iTunes кнопку "check for updates", скачать что-то около трёхсот мегабайт и с затаённым дыханием ждать, пока устройство перезагрузится.

Чем же способна нас порадовать обновлённая ОС? О большинстве нововведений глава Apple Стив Джобс говорил на презентации iOS 4 в апреле 2010 года, затем с новыми подробностями – на июньской WWDC 2010. Основное нововведение – это, конечно, то, что Джобс назвал "многозадачностью", а на самом деле – хитроумный механизм, при помощи которого при переходе из приложения в приложение операционная система продолжает выполнять лишь необходимые задачи, а состояние программы замораживает.

Ввод нововведений неравномерен – не все уже выпущенные телефоны получили новые функции. "Многозадачность", к примеру, доступна лишь начиная с iPhone 3GS и iPod touch третьего поколения, а iPhone 3G и соответствующее поколение "тача" одарено лишь менее значительными новинками: возможностью создавать папки для группирования приложений, функцией смены фонового рисунка на главном экране и прочими мелочами.

Но даже обладатели последних моделей iPhone и iPod touch, скорее всего, окажутся неприятно удивлены после установки обновления. Дело в том, что разрекламированный способ переключаться между приложениями пока что работает вовсе не так, как было показано. Во время демонстрации Стив Джобс показывал, что в любой момент (даже если мы играем в какую-нибудь игру) можно два раза нажать на кнопку "домой" и увидеть список последних запущенных программ. Выбираем любую из них и она моментально возникает перед нами. Проделываем трюк ещё раз, выбрав игру, и продолжаем играть с того же места. Магия!

Но провернуть всё это самому просто-напросто невозможно. Вернувшись в игру пользователь обнаружит, что та запускается точно так же, как запускалась раньше, и вместо того чтобы начать работать с того самого момента, на котором была остановлена, может отобразить стартовое меню. Если, конечно, ранее игра не вела себя по-другому – некоторые разработчики научились самостоятельно заботиться о сохранении и восстановлении состояния своих программ.

Так в чём же дело? Почему даже после обновления на iOS 4 программы продолжают вести себя по-прежнему, а меню для переключения между задачами больше напоминает обыкновенный список последних запущенных приложений? Ответ на этот вопрос становится понятен после знакомства с принципом местной "многозадачности". Вместо того, чтобы позволять приложениям выполняться параллельно, операционная система разрешает приложениям запускать лишь некоторые специальные процессы, которые могут выполняться в фоне. Это может быть, к примеру, воспроизведение музыки, загрузка файла на сервер или недолгое действие, выполняемое перед завершением.

В какой-то мере это похоже на кооперативную многозадачность, применявшуюся во времена Windows. 3.1 и классической Mac OS. Этот тип многозадачности подразумевает, что программы исполняются друг за другом в порядке перехода фокуса от одной к другой и самостоятельно заботятся о передаче управления. Покупка компании Nextstep (и повторный найм Стива Джобса на роль исполнительного директора) позволили Apple создать Mac OS X, использующую привычную по современным компьютерам вытесняющую многозадачность.

Увы, вытесняющая многозадачность не очень-то подходит для портативных устройств – её использование грозит излишним энергопотреблением, нагрузкой на центральный процессор и замусоривание флэш-памяти файлами подкачки. К вытесняющей многозадачности приходится добавлять разные ухищрения, позволяющие системе решать, какие приложения менее важны в данный момент, и автоматически понижать приоритет их выполнения.

Похожие уловки применяются в операционной системе Google Android. Она постепенно понижает приоритет неиспользуемой программы, а затем замораживает её состояние. О случаях, когда этого происходить не должно, автор программы должен позаботиться самостоятельно.

В случае iPhone OS разработчик должен заботиться и о сохранении состояния и о его восстановлении. Просто с выходом iOS 4 это делать стало проще, чем раньше, благодаря специальным API. Сложно сказать, почему Стив Джобс обошёл вниманием этот тонкий вопрос. Вероятно, он хотел сосредоточить внимание публики на потенциальных возможностях, а не на проблемах разработчиков. Однако в итоге вышло, что новая ОС работает не так, как ожидалось.

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии