Просто поместите exec "$@"
в конец вашего xinitrc
, а затем выполните
startx /path/to/xinitrc <wm> <wm-args>
с телетайпа.
startx
интерпретирует свой первый строковый аргумент как клиент (/path/to/xinitrc
, обратите внимание, что это должен быть абсолютный путь ), а остальные аргументы передаются этому клиенту (wm и wm -args ), которые exec
редактируются xinitrc.
Обратите внимание, что startx — это всего лишь пример сценария, и вам предлагается создать еще один сценарий в соответствии с вашими потребностями. Вышеупомянутая установка должна соответствовать требованиям, указанным в вопросе.
Проверьте /proc/interrupts
, чтобы узнать, какое аппаратное обеспечение обрабатывается каждым ЦП. Если вы не настроите все процессы и все прерывания на использование других ядер ЦП, система попытается сбалансировать все задачи и прерывания для всех ЦП. Кроме того, в прошивке вашей материнской платы может быть реализовано некоторое «железо» с прерываниями SMI, которые могут прерывать по крайней мере некоторые ядра ЦП без контроля ОС .
Произвольное переключение контекста происходит, когда ваши программы запрашивают что-то у ОС (, например. open()
, malloc()
/ brk()
,sleep()
)и непроизвольное переключение контекста происходит, когда ваша программа постоянно использует ЦП, но ЦП хочет прервать процесс, чтобы запустить какой-то другой промежуточный процесс (либо обработчик аппаратного прерывания, либо другой задача пользовательского режима ).
Список вещей, которые могут прервать ваш процесс, работающий с приоритетом в реальном времени:
Другие задачи в реальном времени, работающие на том же ядре с более высоким приоритетом в реальном времени.
Обработчики прерываний привязаны к одному и тому же ядру ЦП.
НМИ
СМИ
И если ваша задача выполняется как обычный процесс пользовательского режима, любой другой процесс, работающий на том же ЦП (, включая процессы с более низким приоритетом ), может прервать ваш процесс.