#linux #linux-kernel #scheduler #scheduling
#linux #linux-ядро #планировщик #планирование
Вопрос:
Я хотел бы изучить взаимодействие между двумя приложениями на ядре процессора, одно из которых является постоянным приложением (резидент NVM), а другое — обычным (резидент DRAM). Для этого я хочу запланировать только эти 2 приложения на ядре и ничего больше. Я смотрю на Linux scheduler для достижения этой цели. Может кто-нибудь, пожалуйста, помочь мне с направлением для достижения этой цели? Могу ли я достичь этого с помощью sched или мне нужно изменить код планировщика ядра, чтобы планировщик не планировал приложения к интересующему меня ядру.
Ответ №1:
Вы можете использовать параметр isolcpus
командной строки ядра:
Этот параметр можно использовать для указания одного или нескольких процессоров для изоляции от общих алгоритмов балансировки и планирования SMP. Вы можете переместить процесс на «изолированный» процессор или с него с помощью системных вызовов CPU affinity или cpuset.
Ответ №2:
isolcpus — это решение, но документация ядра Linux объявляет его устаревшим:
isolcpus= [KNL, SMP,ISOL] Изолировать данный набор процессоров от помех.
[Устарело — вместо этого используйте процессоры]
Предпочтительнее подсистема процессорных групп. Такой инструмент, как partrt, основан на этом принципе, чтобы разделить ядра процессора на два подмножества: nrt, где выполняются все процессы, и rt, в которые вы можете перемещать свои приложения. Следовательно, приложения изолированы на некоторых ядрах процессора.
Комментарии:
1. Спасибо за вашу помощь, а также спасибо за исправление опечаток 🙂 @Rachid