Intereting Posts
Дарвинский планшет из интерпретатора в исполнении хеш-банга Программа Linux для изучения того, что вы загружаете Экран отключается через 10 минут, и я не могу понять, почему Как я могу найти и редактировать входные классы, о которых сообщает «xinput list –long», Скрыть и отобразить курсор с помощью tput найти поиск в родительских каталогах вместо подкаталогов Как отключить звук при блокировке экрана xscreensaver Удалите все, кроме последнего файла резервной копии, в месяц Shell Script – оптимизация Awk Использование исходной команды bash возвращает ошибку, хотя она успешно прочитала конфигурационный файл Проблема установки Okular из ppa под Ubuntu Как awk команда «df -Pm», чтобы получить имена FS, которые имеют более 90% использования FS? Получение несоответствующих записей в 2 файлах Ресурсы для детального изучения архитектуры Linux? Получение размера только для файлов du

Почему модель вытеснения Linux не может быть изменена параметром ядра?

Ядро Linux имеет большой набор параметров, которые позволяют пользователям настраивать поведение ядра, не перекомпилируя его. Кажется, нет параметра для настройки модели вытеснения:

-*- Preemption Model No Forced Preemption (Server) (PREEMPT_NONE) --> Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY) Preemptible Kernel (Low-Latency Desktop) (PREEMPT) 

Почему разработчики ядра не добавили переключатель для выбора между ними?

Вытеснение реализуется с использованием (большого) количества явных точек вытеснения (ищите might_sleep в ядре), многие из которых находятся в несколько горячих путях. Полное вытеснение ( CONFIG_PREEMPT ) имеет еще большее влияние; например, спин-блокировки проверяют счетчик вытеснений (по крайней мере, на ядрах без SMP), как и IRQ.

В настоящее время выбранная модель вытеснения применяется во время компиляции; в результате, без принудительного вытеснения ни один из кодов вытеснения не сохраняется в ядре, и вы получаете максимальную пропускную способность. Аналогично, kernel ​​добровольного прерывания не имеет никаких проверок вытеснения в IRQ и точках входа в kernel. Изменение этого значения так, чтобы приоритетное изменение могло быть изменено во время выполнения, означало бы, что все конфигурации должны будут проверять настройку приоритетного прерывания, по крайней мере, при загрузке, и нести определенные затраты даже в лучшем случае ( например , даже если приоритетное прерывание было настройкой времени загрузки и настройка «без упреждения» могла бы пропатчить соответствующие сайты вызовов, в результате вы все равно получили бы код «ничего не делать», занимающий драгоценное место в кэшах кода).