Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.114.38] |
|
Сообщ.
#1
,
|
|
|
Вопрос касательно систем реального времени для 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. |
Сообщ.
#2
,
|
|
|
Ап.
|
Сообщ.
#3
,
|
|
|
не проще выяснить экспериментальным путем?
|
Сообщ.
#4
,
|
|
|
Цитата ^D^ima @ Испытать 4 ОС? Муторно, явно. Но я бы, Сергей85, согласился с мнением Димы, начав с ХРюши. не проще выяснить экспериментальным путем? |
Сообщ.
#5
,
|
|
|
С каких это пор windows является системой реального времени?
|
Сообщ.
#6
,
|
|
|
Цитата OpenGL @ С каких это пор windows является системой реального времени? http://en.wikipedia.org/wiki/IntervalZero |
Сообщ.
#7
,
|
|
|
И что - оно работает? Это же то же самое, что из буханки хлеба троллейбус делать. |
Сообщ.
#8
,
|
|
|
OpenGL, а я хз, думаю что эта дискуссия слегка за рамками вопроса...
|
Сообщ.
#9
,
|
|
|
Нормальная она RTOS. В ядре у неё строгая приоритетность, поэтому при необходимости чёткие временные соотношения выдержать не проблематично. То же я делал и под 9x, с ней даже сложнее. На уровне пользователя, в частности в сервисах, где царствует динамическая диспетчеризация, реального времени не получить.
|
Сообщ.
#10
,
|
|
|
Qraizer, придется ли переписывать драйверы специальных плат в системном блоке и программу, созданную на билдере - для того, чтобы это все работало в RTX?
|
Сообщ.
#11
,
|
|
|
RTX можно получить, только если всё RT вынести в ядро, и построить плотный канал взаимодействия между приложением и драйвером, так чтобы RT прикладного уровня вообще не касалось. Разумеется, если эта архитектура не была выдержана, и приложение, и драйвер должны быть модифицированы. Формально если, приложение может нуждаться только в небольших модификациях, заключающихся в удалении всего RT-функционала и его замене на вызовы драйвера. Драйвер может быть оставлен как есть, но написан новый спецом под поддержку RT, в который этот RT-функционал будет перенесён, и взаимодействующий с железом посредством имеющегося драйвера. Но я не вижу причин, почему бы просто не дополнить уже имеющийся. Так что формально работы может быть немало, но она относительно проста, и уже имеющиеся наработки не окажутся лишними.
|
Сообщ.
#12
,
|
|
|
Я написал программу, измеряющую задержки в ОС 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 портами. |
Сообщ.
#13
,
|
|
|
Забудь, в юзерспейсе тебе ничего не светит.
|
Сообщ.
#14
,
|
|
|
Борьба с портами I/O окончена. Решилось путем установки библиотеки InpOut32. В тестовом примере есть таймер, ежесекундно показывающий статус нажатой клавиши на клаве. Или отжатой, если отпустили - как попадет таймер.
Прикреплённый файл____________.zip (75,11 Кбайт, скачиваний: 287)
Файл .TDS пришлось удалить: большой. Что это за файл такой? Скоро исправим функции в основной программе - и двинемся дальше. Через год-другой проверим винду на наличие критических задержек. ))) |
Сообщ.
#15
,
|
|
|
Другой отдел на работе получил результаты с Windows 7. Не сообщаю технических подробностей, но проблемы не наблюдаются с реальным временем, если частоты не менее 1мс. Так что винда ещё может поспорить с линуксом или ртх.
|
Сообщ.
#16
,
|
|
|
Сейчас тестирую Windows XP 75 MB Edition. Пока показывает результаты такого плана. Есть одинаковое ПО, измеряет частоту съема информации. При всех равных в обычной XP частота 52Гц, в XP 75 - 55Гц. На реальное время еще не оценивалась, прогу оценки придется в корне переписать. И в ней очень мало служб подключенных.
И служб вообще в ней очень мало. Весь сторонний софт типа пейнта, игр - вырезано практически все. Службы. |
Сообщ.
#17
,
|
|
|
Цитата Сейчас тестирую Windows XP шел 2020 год ... возможно уже пора начинать тестировать десятку, пока не поздно |
Сообщ.
#18
,
|
|
|
Не хочу копипастой быть. Результаты анализа по ссылке внизу. Если удастся русифицировать и заставить работать MS Access -дистру цены не будет.
http://www.bad-good.ru/2020/june/windows-xp-realtime.html Сейчас пишу конфигуратор на Batch, который автоматом после установки эту винду допилит. |