В своей программе я использую RealTime-приоритет процесса, чтобы быть уверенным, что выполнение моей программы не прервется другими процессами. Программа ждет начала кадра, выполняет небольшую отрисовку на экране с помощью blt() и засыпает до следующего кадра. При переходе на двухядерный процессор появился неприятный эффект, когда при попытке обращения к системным функциям типа blt() мой процесс иногда пропускал кадры, т.к. какой-либо системный или другой процесс работающий в другом ядре активно использовал эти же системные функции. Вопрос - как избежать такого неприятного эффекта, как отсутствие мнгновенной доступности системных функций, из-за использования их другими процессами в других ядрах?
Тут вопрос стоит не в том, чтобы назначить потокам моего процесса определенные процессорные ядра. А вопрос в том, как избежать захватывания системного ресурса (например блиттера) чужим процессом, работающим в другом ядре. Т.е. в одном ядре работает мой процесс с RealTime приоритетом, и естественно вытесняет все другие процессы. Но в другом ядре может работать процесс совершенно чужой программы, с каким-нибудь низким приоритетом (например даже IDLE), и при этом забирать на себя системные ресурсы (например тот же блиттер), лишая меня мгновенного доступа к этому системному ресурсу...