Обработка в реальном времени с помощью машин

Я напишу интерфейс на C ++, который управляет большим станком с ЧПУ, и он будет работать в Windows. Из соображений безопасности я хотел бы, чтобы этот процесс выполнялся на собственном ядре, чтобы он мог запускать процесс в режиме реального времени. Если он разделяет ядро ​​с Windows, все процессы Windows будут рассмотрены до моего процесса. По сути, как мне убедиться, что мой процесс всегда находится впереди очереди обработки, или как мне назначить ядро ​​для запуска моего процесса и оставить другое ядро ​​для обработки Windows? Кроме того, есть ли способ увидеть, что мое программирование выполняется в режиме реального времени. АКА, это ядро ​​обрабатывает эту программу, но это ядро ​​ничего не делает, потому что мы сказали программе не запускаться на нем. Любой вклад будет полезен.

2

Решение

Там нет никакой гарантии, что ваш процесс будет рассматриваться в режиме реального времени. Windows не делает этого. Поскольку вы упоминаете о безопасности, я упомяну, что в случае судебного разбирательства у вас будут большие проблемы. Опытные свидетели будут свидетельствовать о том, что дизайн по своей сути небезопасен.

Пользовательский контроль и отображение могут выполняться в Windows, но операции в реальном времени выполняются на специальном оборудовании, таком как ПЛК.

4

Другие решения

Ты можешь использовать SetThreadAffinityMask ограничить поток для работы на некотором подмножестве доступных процессоров / ядер.

Если вы используете SetThreadPriority а также SetProcessPriorityClass чтобы установить для потока приоритет в реальном времени, только другие потоки, работающие с приоритетом реального времени, могут прерывать его, эффективно заставляя другие потоки работать на других ядрах (если вы не повысите два или более потоков до приоритета реального времени.

1

Как альтернатива, Windows Embedded Compact ОС, основанная на приоритетах в реальном времени, которая дает мягкие гарантии в реальном времени (намного лучше, чем Windows Vista / 7). Это дорого, но наравне с другими коммерческими ОСРВ.

1
По вопросам рекламы [email protected]