Вот, нпример, есть у меня 2-ядерный проц. И я использую линукс. оба ядра исполняют линукс и программы для него. Но вот мне, например, потребовалось что-то в реалтайме обрабатывать. Логично было бы оставить исполнять линукс, обрабатывать прерывания, итд только 1 ядро, а на 2-м запустить мою программу, которая будет делать то, что надо в реальном времени.
При этом ей понадобится область памяти, которую следует запретить использовать 1-му ядру, и отдельная область памяти для общения моей программы и управляющей системы (мониторинг, взаимодействие с пользователем, обращения к линуксовым драйверам итп), запущенной на линуксе.
Это как-то делается штатными средствами линукса, или же нужно самому много модифицировать ядро?
Т.е.: одно ядро оставляем как есть, в линуксе помечаем область физической памяти как зарезервированную, в другом ядре устанавливаем таблицу страниц на использование этой области физической памяти, загружаем в зарезервированную область программу, и передаем ей исполнение. После этого на этом ядре крутится в уровне 0 (или, если надо, 3) уже не линукс, а другая программа.
Которая, если накосячит, может запороть всю память.