Наверх
7 комментариев 21/09/2012

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.: на следующей неделе стартует новая рубрика, подробности – в подкасте.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

7 комментариев

сначала новые
по рейтингу сначала новые по хронологии
1

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

Авторами CyanogenMod выбран BFQ как оптимальный, а SIO очень долго не реализовывали даже.

2

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

3

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

Автор4
Барышников Андрей

@max, это, к сожалению, не те темы, где я могу показать все "на пальцах". я мог бы взять какую-то одну программу за основу, но это далеко не универсальный и подходящий всем вариант - да и андроид-смартфона уже на данный момент нет. потому я предоставляю возможность вашему пытливому уму немного поработать и самому, объясняя азы - это та сфера, где никакие темы и статьи не заменят опыт

5
Андрей

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

Автор6
Барышников Андрей

@Андрей, т.к. это цикл, посвященный ядру, то по аналогии с предыдущими элементами - в перечисленных раннее программах (см. выпуск 6.1 и 6.2)

7

Напиши книгу

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

Modal box

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: