Адаптация планировщика для аппаратной платформы с разной производительностью процессоров (sched_api.h)
API определен в заголовочном файле sysroot-*-kos/include/coresrv/sched/sched_api.h из состава KasperskyOS SDK.
API позволяет установить уровни производительности процессоров (вычислительных ядер) в планировщике, чтобы сбалансировать планирование вычислений. По умолчанию планирование вычислений выполняется, исходя из предположения, что все процессоры на платформе имеют одинаковую производительность. Однако, например, на аппаратных платформах с технологиями ARM big.LITTLE и Intel E/P cores это не так, и балансировка планирования вычислений позволяет добиться того, чтобы процессоры с более высокой производительностью использовались более интенсивно, а нагрузка на менее производительные процессоры снизилась.
Сведения о функциях API приведены в таблице ниже.
Использование API
Чтобы установить уровни производительности процессоров в планировщике, нужно вызвать функцию KnSchedSetCpuCapacity(). Через параметры cpu и capacity эта функция принимает индекс процессора и уровень производительности процессора соответственно. Уровень производительности процессора представляет собой относительную величину, для которой базой сравнения служит самый высокопроизводительный процессор на аппаратной платформе. Для самого высокопроизводительно процессора нужно указать значение SCHED_CPU_CAPACITY_MAX (1024). Для процессоров с меньшей производительностью нужно указать долю от этого значения. Например, если эта доля составляет 75%, в параметре capacity нужно указать значение 768. (По умолчанию для всех процессоров на аппаратной платформе задан уровень производительности SCHED_CPU_CAPACITY_MAX.)
Сведения о функциях API
Функции sched_api.h
Функция | Сведения о функции |
|---|---|
| Назначение Устанавливает уровень производительности процессора в планировщике. Параметры
Возвращаемые значения В случае успеха возвращает Если индекс процессора превышает максимальный, возвращает Если уровень производительности процессора вне допустимого диапазона, возвращает Если на аппаратной платформе один процессор (одно вычислительное ядро), возвращает |