Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: RTOS for Windows  (Прочитано 20385 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« : 08-08-2008 17:58 » 

Выбираю RT расширитель для Windows XP/Vista на платформе x86(стандартный комп).

Задача - получение данных с PCI платы, обработка во float (с сопроцессором), команды обратно в PCI. Задержка - критична.
Результаты обработки - отсылать в Windows на отображение, запись и дальнейшую отложенную обработку.

Список вариантов примерно такой:

 INtime(или iRMX?) от Tenasys
http://www.tenasys.com/products/intime.php
http://msdn.microsoft.com/en-us/library/ms838597.aspx
в россии представительства нет. торгуют напрямую.
ОПИСАНИЕ с позиций Microsoft http://msdn.microsoft.com/en-us/library/ms838597.aspx
и http://msdn.microsoft.com/en-us/library/ms838589.aspx

 RTX Ardence (позже VenturCom) недавно продана Citrix... сейчас в IntervalZero.
http://msdn.microsoft.com/en-us/library/ms838583.aspx
http://msdn2.microsoft.com/en-us/library/ms838340.aspx
http://www.citforum.ru/operating_systems/rtx/index.shtml - на русском!
перенесен на http://www.intervalzero.com/rtx.htm
FAQ http://www.intervalzero.com/faq.htm#two
есть представительство в россии http://www.rtsoft.ru/ru/catalogue/group/embsystem/windows/index.php?id4=38
ОПИСАНИЕ с позиций Microsoft http://msdn.microsoft.com/en-us/library/ms838340.aspx с цифрами поризвдительности на версии RTX 5.1
создание WIN Embeded с включением RTX http://msdn.microsoft.com/en-us/library/ms838335.aspx

сравнение (2006 года)
http://www.citforum.ru/operating_systems/rtos/14.shtml
http://www.mka.ru/?p=41325
http://www.rtsoft.ru/ru/press/news/index.php?id4=319


в иоге:
   RTX - судя по описанию, крайне простая RTOS, но необходимый минимум в ней есть(планировщик 255 потоков на 255 приоритетов, никакой защиты памяти процессов, WachDog, таймеры, NET, работа со своим железом, набор функций передачи данных в Windows) + возможность работать с сопроцессором в RT-задачах. теоретически - мне этого достаточно...
позворляет компилировать свои программы в качестве RT-приложений, либо как windows-приложения(для отладки).
ее процессы запускаются в ring-0, однако в отличии от Windows не блокирована работа с сопроцессором...
Кроме того - вроде бы есть что то типа операционки(называется ETS) с API, совместимой с Windows? http://www.intervalzero.com/ets.htm



   INtime - навороченная почти полноценная RTOS, масса инструментов отладки и профилирования, принцип работы тот же что и в RTX, но на первый взгляд гораздо сложнее. бОльшее количество функций. В каком ring-e работает - пока не разобрался, но ring-3 упомянут в документации. (работает в 0 и 3 ринге точно, есть защита адресного протранства процессов. есть системные для ринга 0) Работает на основе Intel® Virtualization Technology


обе - имеют возможность монопольно выполнятся на одном из ядер на двухядерной машине (и HT). RTX - так же умеет разделять один существующий процессор с виндой.

если сравнивать эти две - то по совсем старым версиям пишут что RTX пошустрее, за счет исползования ТОЛЬКО ring-0.

В вопрос следующий: кто-нибудь сталкивался с подобными системами? или хотя бы слышал о них?
хотелось бы услышать оценку реальной работы... и степень сложности перехода.



еще существуют/существовали следующие подобные системы
HyperKernel – Real-time for Windows NT/2000
сайт http://www.nematron.com/products/hmi/hyperkernel.html


и
 CeWin фирмы KUKA Controls GmbH
 по всем продуктам KUKA :
http://www.kuka-rtos.com/en/products/
представительство в россии http://www.kuka-systems.de/ru (не занимается RTOS?)
продажи через «Кварта Технологии»  http://www.msembedded.ru/kuka.aspx

у этой фирмы несколько продуктов.
KUKA Real-Time Extension CeWin
    позволяет запускать WinCE+Windows XP с приоритетом Win CE.
KUKA Real-Time Extension VxWin 
    - аналогично для VxWorks
KUKA Real-Time Virtualization Platform (RTOS-VM, VmfWin)
    - информации на сайте мало, но подозреваю что просто универсальная виртуальная машина?
   

следующие две - запускают RTOS под Windows XP/Embedded (в одно-, двух-, четырехпроцесорной конфигурации):
Third Party RTOSWin Products (based on VmfWin):
      QWin® (Windows® XP/Vista + QNX®)
      RTOS32Win® (Windows® XP/Vista + RTOS32®)


последовательное оисание:
http://www.kuka-rtos.com/en/products/technology/rtos/
http://www.kuka-rtos.com/en/products/technology/virtual_worlds/
http://www.kuka-rtos.com/en/products/technology/processor_cores/
http://www.kuka-rtos.com/en/products/technology/device_management/
http://www.kuka-rtos.com/en/products/technology/communication/

описание последних двух:
 http://www.acontis.com/eng/produkte/rtos32win.php
« Последнее редактирование: 07-09-2008 21:12 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 04-09-2008 21:51 » 

короче я склонился в сторону RTX...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 05-09-2008 05:18 » 

Ochkarik, а какое назначение у RTOS под виндой? Что будет, если произойдет RT-событие во время обращения к Win32?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 05-09-2008 09:43 » 

RXL,
- выполнение функции Win32 прервется. не то чтобы совсем немедленно, но достаточно быстро (гарантированно до единиц-десятков мкс в зависимости от типа события)
вот тут http://msdn.microsoft.com/en-us/library/ms838583.aspx табличка времен переключения(P3-800, RTX v5.1):
Operation Windows XP         Windows CE .NET      RTX 5.5     
ReleaseMutex>WFSO: min/max in usec 1.49 / 5000+ 4.9 / 13.3 0.70 / 3.26
ReleaseSemaphore>WFSO: min/max in usec 1.39 / 5000+ 3.9 / 8.4 0.61 / 3.43
Yield: min/max in usec 1.11 / 5000+ 2.6 / 63.9 0.33 / 3.37
Interrupt service thread dispatch: min/max in usec 4.3 / 5000+ 13 / 30.8 2.0 / 19
Win32-to-RTSS SetEvent call: min in usec NA NA 14
*WFSO - WaiteForSingleObject
...или что имеется в виду?

они перепрограммируют контроллер прерываний так, что обработка прерываний от устройств помеченных для использования в RT процессах - не прерываются прерываниями которые обслуживает винда. И соответственно все процессы RT выполняются более приоритетно нежели все остальные процессы Win32 и даже приоритетнее системных процессов Win32.

она перепрограммирует таймер на более высокое разрешение (в итоге можно сделать программный таймер с периодом 100мкс).
- по их тесту(сам запускал на P4-HT 3.2ГГц, оба проца расшарены) отклонение - в среднем 1-2мкс, максимум(десятитысячные проценты от всех событий) - до 20-40мкс.

кроме того (правда я не понял как) они, что то делают, чтобы винда не маскировала прерывания на вермя более 30мкс.
насчет sti/cli - пока сам не понял...
PS собстно если на двухядерных машинах работать - оно понятно) а вот на одноядерной? или когда оба процессора расшарены на обе системы?

« Последнее редактирование: 06-09-2008 12:42 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 03-10-2008 16:22 » new

еще найдено. буду разбираться.
"Real time module for Windows 2000/XP"

сайт http://www.hadcon.ru/rtmintroduc.htm
пример,демо и описание http://www.codeguru.com/cpp/w-p/system/messagehandling/article.php/c14457__1/ (демо так же есть на офф сайте)
демо видимо на 60 дней.
простая конечно, но либеральные цены: 300уе модуль(400 с годовым суппортом) 400уе десять лицензий(57уе - одна)...
в интернет магазине 760уе. странно.

буду разбираться что она умеет...
последняя версия от 10.2007го - то есть годовалой давности. Vista - видимо нет.

PS компания расположена в на "str. Genkina 41a , office 7, Nizni Novgorod, 603105, Russia")))))))))))))))))

Итак. поставил на ноут - увидел BSOD. вывод - либо ноут на CoreDuo не поддерживается, либо у меня в паралель RTX Ardence пытается работать - что кстати тоже похоже)

почитал доку(она совсем куцая) - выводы:
1. установка: драйвер(64кб)+inf файл, с парой настроек:
    период RT таймера - 100,200,500,1000мкс. (параметр в inf, а так же функция RT-приложения)
    ресурсы: порты, память, какой то параметр(может быть расшариваемость с виндой?)
    устройства(платы)  - bus,slot,Vendor,Device
    то есть inf при старте определяет все ресурсы и устройства с которыми в дальнейшем будем работать.
   паралельно есть функции RT для конфигурации используемых в RT устройств.
2. приложения RT представлены в виде библиотеки, причем библиотека содержит секции исполняемые в ring-0 и секции исполняемые в ring-3. (две точки входа, DllMain и extern "C"  RTXEntry.
3. функциональность:
   таймеры
   нити (алгоритм планирования не указан?!) кажется используется планировщик windows. приоритетов нет.
   в ring-0 судя по примерам можно использовать функции ядра?
   установка обработчика прерываний "void newintr(void *)" для заданного девайса по номеру шины и Vendor-у (напр PCI/ISA)     
   hook на номер прерывания (обрабтчик такой же)
   захват и размещение ресурсов для устройства (напр PCI) - в документации описаны не все функции!!! лентяи.
   чтение/запись памяти по физическим адресам.(физический адрес задается 32битами!) получение физ адреса буфера.
   две функции для отладки - брекпоинты и пошаговый тик для таймеров.
   немножко (штук 15)функций поддержки арифметики с плавающей точкой в double.
   немножко (штук 20)функций STD типа memcpy, strstr..
   фнкции размещения памяти (ой подозвераю используются ядровые windows)
и... все. действительно все.
видно все остальное - через ядро windows.
в комплекте 3 инклуда и две либы. из них один инклуд 170кб - структуры и функции ядра Windows.  либа 130к - видимо оттуда же. остальное копейки.

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

за сим - все) отчитался)
PS да, по косвенным признакам разработка проекта началась году в 2005... впрочем могу ошибаться.  в общем привет и уважуха Новгородцам) Класс!
   
« Последнее редактирование: 03-10-2008 20:51 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines