Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Windows > Windows выше 2000 и реальное время.


Автор: Сергей85 05.04.14, 07:50
Вопрос касательно систем реального времени для Windows (вроде RTX).

Задача: уйти с Windows 2000, хорошо работающую с (вероятно, жестким) реальным временем, на более современную ОС (хотя бы XP), не переделывая при этом программу, работающую с платами и написанную на C++ Builder. Но в более новых версиях с реальным временем большие проблемы.

Программа работает с платами. Платы поддерживают все линейки Windows.

Теперь вопросы:
- пусть я поставил XP и RTX на нее. Как будут обстоять дела с драйверами к платам: будут ли они работать в этом RTX или придется свои писать?
- пусть я поместил в RTX исходники Borland C++. Как сделать так, чтобы потребовалось минимум изменений исходного кода при компиляции EXE-файла? И как его в этой среде вообще компилировать? Возможно ли поставить Builder в RTX?
- Windows 8.1 поддерживает реальное время? Тестировал кто-нибудь? Если да - то никакой RTX не нужен.
- держит ли Windows 2003 Server реальное время? Или Windows 2008 Server.

Автор: Сергей85 22.04.14, 16:10
Ап.

Автор: ^D^ima 23.04.14, 10:51
не проще выяснить экспериментальным путем?

Автор: Славян 23.04.14, 13:27
Цитата ^D^ima @
не проще выяснить экспериментальным путем?
Испытать 4 ОС? Муторно, явно. Но я бы, Сергей85, согласился с мнением Димы, начав с ХРюши.

Автор: OpenGL 25.04.14, 02:54
С каких это пор windows является системой реального времени?

Автор: UncleBob 25.04.14, 06:26
Цитата OpenGL @
С каких это пор windows является системой реального времени?

http://en.wikipedia.org/wiki/IntervalZero

Автор: OpenGL 25.04.14, 10:47

И что - оно работает? :unsure: Это же то же самое, что из буханки хлеба троллейбус делать.

Автор: UncleBob 25.04.14, 11:17
OpenGL, а я хз, думаю что эта дискуссия слегка за рамками вопроса...

Автор: Qraizer 25.04.14, 11:37
Нормальная она RTOS. В ядре у неё строгая приоритетность, поэтому при необходимости чёткие временные соотношения выдержать не проблематично. То же я делал и под 9x, с ней даже сложнее. На уровне пользователя, в частности в сервисах, где царствует динамическая диспетчеризация, реального времени не получить.

Автор: Сергей85 25.04.14, 13:36
Qraizer, придется ли переписывать драйверы специальных плат в системном блоке и программу, созданную на билдере - для того, чтобы это все работало в RTX?

Автор: Qraizer 25.04.14, 15:28
RTX можно получить, только если всё RT вынести в ядро, и построить плотный канал взаимодействия между приложением и драйвером, так чтобы RT прикладного уровня вообще не касалось. Разумеется, если эта архитектура не была выдержана, и приложение, и драйвер должны быть модифицированы. Формально если, приложение может нуждаться только в небольших модификациях, заключающихся в удалении всего RT-функционала и его замене на вызовы драйвера. Драйвер может быть оставлен как есть, но написан новый спецом под поддержку RT, в который этот RT-функционал будет перенесён, и взаимодействующий с железом посредством имеющегося драйвера. Но я не вижу причин, почему бы просто не дополнить уже имеющийся. Так что формально работы может быть немало, но она относительно проста, и уже имеющиеся наработки не окажутся лишними.

Автор: Сергей85 09.06.14, 16:15
Я написал программу, измеряющую задержки в ОС Windows (которой пока не доверяю). Время тестирования - 60000 мс (1 минута). Каждая винда максимально урезалась на предмет фоновых задач (процессы, службы). В Windows 7 x32 был получен результат на 5мс больше (60005), в 7 x64 - 4, в Windows XP x32 - 9, в Windows 2000 - 0.01. Windows 2000 может являться системой жесткого реального времени. В остальных ОС возможны задержки. Причем результаты растянуты во времени: может быть как 100 микросекундных задержек, так и 1 9-мс.

Сейчас идет борьба с закрытыми I/O портами в Windows 7. Если смогу их разблокировать - смогу проверить корректность работы программы с циклом 12 (24) мс. Это решит, корректно ли я написал код программы для анализа ОС.

Если все выгорит, и задержек не будет - Windows 7 x64 - самая стоящая система после Windows 2000, которая на текущий режим доступна к покупке. Потому что допиливать программу, написанную в BCB, оказалось совсем не сложно: новые драйверы, файлы LIB да пара функций для работы с I/O портами.

Автор: Gonarh 09.06.14, 17:06
Забудь, в юзерспейсе тебе ничего не светит.

Автор: Сергей85 30.07.14, 17:34
Борьба с портами I/O окончена. Решилось путем установки библиотеки InpOut32. В тестовом примере есть таймер, ежесекундно показывающий статус нажатой клавиши на клаве. Или отжатой, если отпустили - как попадет таймер. ____________.zip (, : 289)
Файл .TDS пришлось удалить: большой. Что это за файл такой?

Скоро исправим функции в основной программе - и двинемся дальше. Через год-другой проверим винду на наличие критических задержек. )))

Автор: Сергей85 22.12.14, 17:20
Другой отдел на работе получил результаты с Windows 7. Не сообщаю технических подробностей, но проблемы не наблюдаются с реальным временем, если частоты не менее 1мс. Так что винда ещё может поспорить с линуксом или ртх.

Автор: Сергей85 11.06.20, 17:31
Сейчас тестирую Windows XP 75 MB Edition. Пока показывает результаты такого плана. Есть одинаковое ПО, измеряет частоту съема информации. При всех равных в обычной XP частота 52Гц, в XP 75 - 55Гц. На реальное время еще не оценивалась, прогу оценки придется в корне переписать. И в ней очень мало служб подключенных.

И служб вообще в ней очень мало. Весь сторонний софт типа пейнта, игр - вырезано практически все.

Службы.

Автор: Маршал 18.06.20, 12:33
Цитата
Сейчас тестирую Windows XP

шел 2020 год ... возможно уже пора начинать тестировать десятку, пока не поздно

Автор: Сергей85 05.07.20, 09:20
Не хочу копипастой быть. Результаты анализа по ссылке внизу. Если удастся русифицировать и заставить работать MS Access -дистру цены не будет.

http://www.bad-good.ru/2020/june/windows-xp-realtime.html

Сейчас пишу конфигуратор на Batch, который автоматом после установки эту винду допилит.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)