Верно ли, что Windows 7 не поддерживает последовательную связь в реальном времени?

Мой коллега получает цитату от разработчика программного обеспечения, которая включает последовательную связь, и в своей цитате разработчик делает следующее заявление:

... Операционная система Windows 7, которая использует настройку последовательной связи не в реальном времени.

Верно ли, что Windows 7 не поддерживает последовательную связь в реальном времени? Чтобы прояснить, что подразумевается под «реальным временем», в проекте рассматривается автоматизация роботов, и любые задержки в обмене данными (например, из-за буферизации) могут привести к повреждению продукта или остановке производственной линии. Я не могу найти никаких доказательств, подтверждающих или опровергающих это утверждение. Я не верю, что это правда, и я думаю, что это, вероятно, больше связано с тем, что они используют VB.Net для разработки.


person Drew Chapin    schedule 14.10.2013    source источник
comment
Примечание для модераторов: я не мог решить, задать ли этот вопрос на Stack Overflow или на Разработка программного обеспечения, но в конечном итоге решил опубликовать его на Stack Overflow, потому что я чувствовал, что он получит лучший ответ.   -  person Drew Chapin    schedule 14.10.2013
comment
Это зависит от того, что, по вашему мнению, означает «в реальном времени». Все операции ввода-вывода в некоторой степени буферизуются базовым оборудованием / ОС.   -  person dbasnett    schedule 14.10.2013
comment
@dbasnett, я изменю вопрос, чтобы было понятнее, но проект касается автоматизации / управления роботами.   -  person Drew Chapin    schedule 14.10.2013
comment
разве это не ограничено 115.200 бод по дизайну, так что по умолчанию не очень полезно для вещей в реальном времени ... побей меня, если я ошибаюсь;)   -  person David Sdot    schedule 14.10.2013
comment
Windows - это не операционная система реального времени, потому что ее упреждающая многозадачность означает, что ее реакция на входящие события может быть отложена или прервана. Это очевидно только в короткие сроки, поэтому это может быть или не быть проблемой для конкретных приложений. Также возможно свести к минимуму влияние этого - приложения для создания музыки и т. Д. В настоящее время работают хорошо. Я думаю, что эти методы являются специализированными и недоступны среднему разработчику VB. Я бы воспринял это как CYA от разработчика.   -  person peterG    schedule 14.10.2013
comment
Я хотел бы добавить, что я не буду доверять ОС, такой как Windows, Linux или что-то еще, для управления производственной линией. Только для визуальной обратной связи / записи данных и т. Д. остальное обрабатывается ПЛК и / или системами реального времени, такими как ADwin или подобные.   -  person David Sdot    schedule 14.10.2013
comment
@DavidSdot, мне, наверное, следовало упомянуть, что компьютер напрямую не управляет роботом. ПК предназначен для системы технического зрения, которая предоставляет данные контроллеру робота. Но я пытался ограничить вопрос только Windows 7 и Коммуникацией в реальном времени, не раскрывая что-либо еще о настройке, насколько это возможно.   -  person Drew Chapin    schedule 14.10.2013


Ответы (3)


Используемый здесь термин «в реальном времени» на самом деле не относится ни к чему в шине последовательной связи.

Однако это связано с тем, что планировщик многозадачности Windows не предназначен для выполнения задач в реальном времени с жесткими сроками выполнения.

См. Этот вопрос для получения дополнительной информации Почему Windows не считается подходящей для систем реального времени / высокопроизводительных серверов?

Предположим, у вас есть ускоритель частиц, подключенный к вашему компьютеру, и вы должны убедиться, что каждые 10 микросекунд магнитный поезд переключается на питание следующего набора ячеек, но Windows решает, что пора применить некоторые исправления Windows Update. Ваш поток фотонов не будет перенаправлен должным образом и может вызвать повреждение системы.

person nvuono    schedule 14.10.2013

Это довольно бессмысленное утверждение, сама Windows не является операционной системой реального времени. Он не может дать жестких гарантий того, что код пользовательского режима будет реагировать достаточно быстро. Помимо задержек планирования потоков, простой неудачи, такой как перестановка страниц процесса в файл подкачки, достаточно, чтобы вызвать произвольные задержки в его повторном запуске. Атрибут любой операционной системы виртуальной памяти с подкачкой по требованию. Так что, конечно же, не может быть и «установки последовательной связи», если вы не собираетесь писать код ядра для кольца 0. Никто не делает.

Это не практическая проблема, единственный смысл использования последовательного порта - это связь с контроллером робота. Что дает гарантию в реальном времени.

Проблемы могут возникнуть только тогда, когда вы прикажете роботу сделать неограниченное движение и использовать внешний датчик, чтобы заставить его остановиться. Не редкость, когда вам нужно найти объект, местоположение которого вы не знаете. Приличный контроллер знает, как это сделать, не используйте его в коде Windows. В любом случае необходима надежная защита от перебега, встроенная в самого робота, которая запускает аварийную остановку, вы также не можете доверять этому датчику.

person Hans Passant    schedule 14.10.2013

Нет, Windows 7 (и фактически все основные выпуски Windows) не являются операционными системами реального времени < / а>. Чтобы прояснить, что подразумевается под операционной системой реального времени:

Операционная система реального времени (RTOS) - это операционная система (ОС), предназначенная для обслуживания запросов приложений в реальном времени. Он должен иметь возможность обрабатывать данные по мере их поступления, обычно без задержек при буферизации. Требуемое время обработки (включая любую задержку ОС) измеряется в десятых долях секунды или меньше.

Ключевой характеристикой ОСРВ является уровень ее согласованности в отношении количества времени, необходимого для принятия и выполнения задачи приложения; изменчивость - это джиттер. [1] Операционная система жесткого реального времени имеет меньший джиттер, чем операционная система мягкого реального времени. Основная цель дизайна - не высокая пропускная способность, а скорее гарантия категории «мягких» или «жестких» характеристик. ОСРВ, которая обычно или в целом может уложиться в срок, является ОС реального времени, но если она может уложиться в срок детерминированно, то это ОС жесткого реального времени. [2]

RTOS имеет расширенный алгоритм планирования. Гибкость планировщика обеспечивает более широкую оркестровку приоритетов процессов компьютерной системы, но ОС реального времени чаще предназначена для узкого набора приложений. Ключевыми факторами в ОС реального времени являются минимальная задержка прерывания и минимальная задержка переключения потоков; ОС реального времени ценится больше за то, насколько быстро и предсказуемо она может реагировать, чем за объем работы, которую она может выполнить за определенный период времени. [3]

Обратите внимание, что большинство операционных систем реального времени менее эффективны (т. Е. Имеют более низкую пропускную способность), поэтому ни одна из основных операционных систем не работает в реальном времени (например, версии Linux в реальном времени полностью используют разные ядра) - это того стоит, только если время на очень точном уровне абсолютно критично. .

Windows CE - это операционная система реального времени реального времени Системы с Microsoft Windows CE 2.1

person Justin    schedule 14.10.2013
comment
Согласны ли вы, что время можно было бы улучшить, если бы вместо .Net использовался такой язык, как C или C ++? - person Drew Chapin; 14.10.2013
comment
@druciferre Нет, в реальном времени все равно не получится. Это свойство операционной системы, а не языка. - person Justin; 14.10.2013