Keddr-O-lab #6.3: ядро ОС Android (I/O Sсheduler)

Keddr-O-lab

Итак, с вами очередной, самый маленький выпуск рубрики Keddr-O-lab, после которого у нас будет перерыв примерно до середины ноября. Тем не менее, всю основную информацию, которая вам может потребоваться при странствовании по просторам мира прошивок, вы уже будете знать (за исключением скриптов ).

Мы продолжаем обсуждать ядро и опции, подлежащие настройке. Основной темой сегодня будут планировщики (I/O Sсheduler, I/O – Input/Output). В чем же их предназначение? Если вкратце, то они управляют дисковым пространством, определяют приоритетность запросов от приложений, обеспечивают обработку запроса приложения в реальном времени.

Однако, то, как и когда ядро будет это делать, зависит уже от типа I/O планировщика. Их несколько, количество может варьироваться в зависимости от ядра: Noop, Deadline, CFQ, BFQ, SIO, V(R), Anticipatory. Наиболее распространенные – Noop, Deadline и SIO (лично я отдаю предпочтение Deadline). Давайте же разберемся, в чем заключается разница.

Noop

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

Плюсы: положительно сказывается на времени работы аппарата, а также является наилучшим вариантом для флеш-диска, так как не имеет поисковой задержки
Минусы: при повышении нагрузки (количества циклов, выполняемых процессором) пропорционально падает производительность – как пример, трагическое падение оной при установке и/или обновлении большого количества программ.

Deadline

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

Плюсы: при использовании данного планировщика, задержка при выполнении тех или иных процессов минимальна, вследствие чего работа с ним наиболее приближена к обращению в реальном времени. Как и Noop, хорошо работает с флеш-памятью.

Минусы: при крайне высокой нагрузке часть процессов будет отсечена своеобразным «дедлайном» (отсюда и название) – возможно, вы иногда встречали странное поведение телефона: поставили обновляться 30+ программ, а обновилась лишь часть из них, остальные же как будто и не запускали.

SIO

Представляет из себя своеобразный «микс» из вышеупомянутых планировщиков. Минусов, как таковых, не имеет, однако время от времени может резко падать производительность смартфона (как пример – внезапное долгое сохранение в игре, крайне долгий поиск файла).

Это – три основных планировщика, которые лично я рекомендую к использованию; их производительность варьируется от ядра к ядру, а некоторые программисты используют и прочие планировщики из вышеупомянутого списка как основные. Ах да – если вас когда-нибудь интересовало, как получить запредельные цифры в бенчмарках, то одним из основополагающих пунктов является V(R)-планировщик, который, тем не менее, почти не пригоден для ежедевного использования.

Всем удачи!

P.S.: на следующей неделе стартует новая рубрика, подробности – в подкасте.

Please wait...
Теги: , , , , , , , , , ,
0
7 Комментарий
Сначала Новые
Сначала Старые Популярные
guest

Межтекстовые Отзывы
Посмотреть все комментарии
DC
DC
12 лет назад

V(R) для нормальной работы требует специфических доработок в ядре, что мало кем делается. После этого даже лучше SIO в повседневной работе.
Авторами CyanogenMod выбран BFQ как оптимальный, а SIO очень долго не реализовывали даже.

Please wait...
Юрий
Юрий
12 лет назад

О спасибо, я как раз ломал голову что его поставить. По дефолту стояло что то не из этих трех :)

Please wait...
max
max
12 лет назад

Знаете, хотелось бы, конечно, по всем темам подробный рассказ по пунктам: “нажимаем сюда, делаем то-то” вы просто функции и назначения показываете. это немного глуповато.
было бы отлично, если появились скрины с описаниями и все такое, а то вообще не понятно начинающему юзеру. спасибо.

Please wait...
Андрей
Андрей
12 лет назад

Хорошо, а где их менять? Почему на этот вопрос нету и намека ответа? Ладно в некоторых кастомных прошивках уже встроены функции по контролю за процессором и I\O Ssheduler-ами, но что делать, если таковые функций изначально нет?

Please wait...
Grokhi
Grokhi
12 лет назад

Напиши книгу

Please wait...
Наверх