ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
251326 Топик полностью
Ксения (02.05.2011 11:32 - 11:42, просмотров: 77) ответил Snaky на Разделение ресурса в двухпроцессорной системе.
А почему бы не сделать просто: Берем любую машину с двумя (или более) ядрами и OS, поддерживающую многоядерную систему. Затем запускаем RealTime-задачу в виде приложения или процесса с максимальным приоритетом. Случись такое в однопроцессорном/ядерном варианте, то всё бы повисло. А здесь всегда окажется у дел второе ядро/процессор, к которому RealTime-задача на обработку не попала. В результате чего юзер-интефейс будет функционировать за счет второго ядра, а первое будет постоянно занято RealTime-задачей. Системные прерывания в такой ситуации вынуждено будет обслуживать второе ядро, т.к. первое будет всегда занято высокоприоритетной работой и на прерывания откликаться не будет. Однако взаимодействовать процессы обоих ядер могут по стандартному механизму, поскольку высокоприоритетный процесс читает поступающую к нему корреспонденцию за свой счет (своего времени). Т.е. взаимной "переписке" высоко- и низко-приоритетных потоков ничто не мешает, если выполняются они в разных ядрах. При необходимости второе ядро может информировать первое о прерываниях в системе, если такая информация интересует RealTime-задачу. Если же RealTime-задача сама хочет работать с прерываниями, то ей тогда нужно понизить приоритет до такого, чтобы от аппаратных прерываний эта задача прерывалась, но более высокого, чем приоритет задач юзер-интерфейса. Хотя здесь возникнут определенные сложности.