OS X Mavericks: немного магии, бесплатно

В июне 2013 года на WWDC, и 22 октября того же года (почти одновременно с появлением новой версии системы в Mac App Store) Крейг Федериги обещал самые настоящие чудеса, а страсть к развенчанию лжи одна из самых сильных среди человеков… По словам Крейга, новая версии операционной системы равносильна увеличению ёмкости аккумуляторов ноутбуков процентов на 15-20), и увеличению размера оперативной памяти, раза в два. Такого просто не может быть, потому что не может быть никогда. Особенно в бесплатно распространяемой версии системы.

Новая версия была бесплатной. Прецедент был, единственный: в сентябре 2001 года Mac OS 10.1 “Puma” для обладателей Mac OS 10.0 “Cheetah” тоже была бесплатной, для чего у Apple тогда еще Computer были веские и не совсем приятные причины. Без этого срочного и бесплатного апгрейда история “современной операционной системы для Mac’ов” могла стать еще одним эпическим провалом компании, скорее всего последним.

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

Продолжение мини-серии про Mac OS 10.9 “Mavericks”, начало здесь.

Удвоение оперативной памяти

Аппетиты операционных систем усиливались: каждая новая версия любой системы в мире нуждалась во все большем объеме оперативной памяти. А у поголовье Mас’ов с 4, а то и с 2 Гигабайтами оперативной памяти, впаянными в материнскую плату, размер которой не мог быть увеличен, было огромно. Почти во всех “беспамятных” Mac’ах использовалась интегрированная графика, отнимающая для своих нужд значительную часть дефицитной оперативной памяти.

Владельцы таких Mac’ов воздерживались от апгрейда операционной системы, ухудшая Apple статистику, и застревая в прошлом. Это было неприятно, но были обстоятельства еще большей разрушительной силы: владельцы дешевых Mac’ов, как правило, не имели ни малейшего понятия о какой-то “оперативной памяти”, и ставили на свои Mac’и новейшие версии OS X.

Волшебная способность операционной системы превращать 2 Гигабайта в 4 точно была бы востребована.

Крейг объяснил суть “фокуса”, только усилив недоумение и подозрения публики. Сжимать неиспользуемую часть оперативной памяти – это же сумасшествие! Алгоритмы компрессии и декомпрессии, что было отлично известно всем “продвинутым пользователям”, требуют от процессора усилий и времени. И оперативной памяти, которую таким диким способом решили “удвоить”. Интуиция, жизненный опыт и здравый смысл просто восставали против этой идеи.

Но MacBook Air 2009 года у моих знакомых, с 2 Гигабайтами оперативной памяти, да еще и с очень медленным жестким диском, после установки на него Mavericks буквально ожил.

Вы не поверите, но никакой магии не потребовалось. Всего лишь трезвый инженерный ум. Оперативная память, особенно когда её килобайт стоил дороже чем в наши дни сотня или две Мегабайт, всегда была дефицитным ресурсом. Виртуальная память помогала бороться с этой нехваткой.

Когда очередной запрос на выделение оперативной памяти оказывался невыполнимым, из оперативной памяти на диск выгружалась часть её содержимого (которую дольше всего не использовали, и выгрузка которой из оперативной памяти не была запрещена).

В ответ на запрос к содержимому удаленному из оперативной памяти, в дело вступал тот же механизм: на диск выгружалось “неиспользуемое” содержимое памяти, на его место из временного хранилища загружалось ранее удаленное.

Запись на жесткий диск и чтение данных с жесткого диска – операции медленные. В сотни тысяч раз более медленные, чем извлечение тех же данных из оперативной памяти. SSD на порядок эффективнее, но даже в этом случае задержки неизбежны.

Сжатие памяти, вместо выгрузки “давно не использованных” данных на диск, сжимало их примерно в два раза, высвобождая половину занятой ими памяти для других данных. Это в тысячи раз быстрее чем выгрузка данных на диск. И чем считывание данных обратно.

Сжатие оперативной памяти не исключало выгрузку на диск – если сжать что-либо было невозможно, система отходила на следующий рубеж обороны. Пытаясь не злоупотреблять обращениями к диску.

Как, не меняя ёмкость батареи, заставить её держаться дольше?

Сначала разберемся зачем это понадобилось Apple. С этим все просто: с 2003 года число продаваемых компанией ноутбуков превосходит число настольных Mac’ов. С 2004 года ноутбуки приносят компании больший доход. С 2004 по 2013 год доля ноутбуков росла, а 2013 на каждый проданный настольный Mac приходилось четыре MacBook’а всех видов.

А на каждый проданный компьютер, настольный и портативный, приходилось не менее десяти мобильных устройств, легких и экономных, живших на заряде батареи нереальные десять часов. Вроде бы все логично и объяснимо, но Apple это не устраивало.

Начали с увеличения ёмкости батарей. В мобильных устройствах использовались батареи специально разработанные для конкретных моделей, занимавшие весь доступный объём. Так же поступили и с ноутбуками. Многие были очень недовольны. Например, я.

Но продолжительность автономной работы и в самом деле выросла. Когда срок их жизни подходил к концу, в сервис-центрах Apple их меняли на новые. За немаленькие деньги, но Mac’и намного живучее чем изделия конкурентов.

Самые массовые варианты батарей стали производить независимые производители.

Разрыв между ноутбуками и мобильными устройствами сократился, но оставался слишком большим.

Та же проблема была и у конкурентов Apple – у тех же самых UltraBook’ов, например. Intel разработала процессоры Haswell, которые впервые с появления архитектуры Core не были производительнее чем предшествовавший им Ivy Bridge – перед их создателями поставили другие задачи. Одной из них было резкое повышение экономичности.

Задачу добиться максимально возможного снижения потребления энергии поставили и разработчикам новой версии OS X. Возможно ли это?

Как правило, в любой момент в современных операционных системах запущено несколько приложений, каждое из которых потребляет энергию. Даже если окна приложения скрыты окнами других приложений и не видны пользователю. Технология App Nap автоматически погружает приложения невидимые на экране в состояние “дрёмы”. “Nap” можно перевести с английского как “дрёма” или “дремать”.

Состояние похоже на состояние сна системы. Энергопотребление приложения в состоянии дрёмы снижается в десятки раз, почти как в состоянии сна, но и времени на пробуждение из дрёмы приложению требуется меньше.

Еще удалось сэкономить за счет coalescing (слияния) операций запускаемых таймерами. При отсутствии нагрузки, современные процессоры переходят в состояние покоя.

На переход из состояния покоя в активное состояние и на обратный переход расходуется энергия. Технология Timer Coalescing “сдвигает” операции запланированные таймерами на ближайшее время (несколько миллисекунд) вплотную друг к другу.

Timer Coalescing экономила больше энергии чем App Nap.

Ухищрения, увеличившие продолжительность работы на одном заряде батареи на 15-20%, этими двумя не исчерпывались, но их вклад в общее дело был самым значительным.

Продолжение следует

Обсудить историю Apple вы можете в нашем Telegram-чате.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *