Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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 |
Испытать 4 ОС? Муторно, явно. Но я бы, Сергей85, согласился с мнением Димы, начав с ХРюши. |
Автор: OpenGL 25.04.14, 02:54 |
С каких это пор windows является системой реального времени? |
Автор: UncleBob 25.04.14, 06:26 |
http://en.wikipedia.org/wiki/IntervalZero |
Автор: OpenGL 25.04.14, 10:47 |
И что - оно работает? Это же то же самое, что из буханки хлеба троллейбус делать. |
Автор: 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, который автоматом после установки эту винду допилит. |