Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

реал тайм осы

 Ответить Ответить Страница  <1 89101112 36>
Автор
Сообщение
Sergey Sorokin Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 27 Март 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 240
Свойства публикации Свойства публикации   Ответить, цитируя автора - Sergey Sorokin Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: реал тайм осы
    Опубликовано: 20 Октябрь 2003 21:00

Первоначально опубликовано Olej


Что там не на высоте, но это к самому Linux не имеет ровно никакого касательства - так это документированность: все разных лет описания, относящиеся к различным версиям ядра и т.д. - всё свалено в одних кучах в Internet. Вот ещё и в этом смысле я использую QNX, даже если это обще-UNIX (POSIX) задача: там в составе OS исчерпывающий HELP, на несколько тыс. (а может и дес.тыс.) стр. - весь API... сидишь в редакторе, и подсматриваешь вызовы ;-), а компилятор - то-же GCC - часто перепортировать вопрос нескольких минут.

P.S. Вот вам ещё одно "некоммерческое" использование QNX 6.2.1 NC :D!

Мне кажется отсутствие хорошей документированности Linux связано с моделью развития и распространения этой ОС.

Кстати QNX в свое время ориентировался на компиляторы Wattcom. После того как они захотели работать не только с x86 процессорами, они переориентировались на другую фирму (Metrowerks кажется). Сейчас используется GCC. Не было ли каких либо проблем при переносе исходного текста приложений с одного компилятора на другой? Несовместимости библиотек и т.п.?

С Уважением

Сергей Сорокин

 

 

Наверх
Sergey Sorokin Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 27 Март 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 240
Свойства публикации Свойства публикации   Ответить, цитируя автора - Sergey Sorokin Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2003 01:53

Первоначально опубликовано Olej

А как аргумент того, что для realtime есть определённая ниша и это не чисто коммерческий трюк - говорит, по-моему, то, что RTOS как отдельный "класс" появились "параллельно" весьма давно ... RT-11 та-же - 70-е годы.


RT-11 можно было назвать многозадачной ОС с определенной натяжкой. Только старшая из ее трех разновидностей поддерживала диспетчер памяти и до 8 неравноправных задач (остальные - до 2 задач).  Одновременно с ней существовала более серьезная система RSX-11M, которая была гораздо ближе к тому что мы сейчас понимаем под RTOS.

Меня до сих пор поражает как тогда боролись за каждый байт (64кбайта ОЗУ в то время было почти роскошью). Даже шестибуквенные имена файлов на диске умудрялись запихивать в 4 байта с помощью специального кодирования RADIX50.

Что касается основной темы дискуссии, то я хотел бы высказать несколько соображений.

1) Когда говорят, что идет управление процессом в реальном времени, то это означает, что быстродействие системы управления адекватно скорости протекания управляемого процесса. Это определяется не только вычислительными средствами и операционной системой, но и коммуникационной инфраструктурой, а так же датчиками и исполнительными устройствами. То есть, если применен датчик или исполнительный механизм, чья инерционность не позволяет управлять процессом с нужной скоростью, то никакая ОСРВ не поможет.

2) Допустим с коммуникацией и низовой автоматикой все нормально. Есть ли процессы, для которых производительности коммерческих ОС достаточно? Да есть. И такие системы успешно работают. Необходимая скорость реакции в таких системах может измеряться минутами. На том же Windows NT можно получить предсказуемое время отклика в районе 50-100мс, а с определенными настройками до 10мс. Если залезть в код ядра (как это делает тот же venturcom), то можно добиться еще лучших результатов. Опять же нужно учитывать, что скажем та же предназначенная для встраиваемых систем Windows CE это ОС, которая  целиком написана другим коллективом программистов и основное, что ее объединяет с "большими" Виндами - это Win API (и то из 7000 тысяч оригинальных функций поддерживается только около 1500)

3) Подходят ли офисные ОС для управления действительно  быстрыми процессами, требующими детерминированного времени реакции на внешние события? Как правило нет. Здесь как раз оправдано применение специализированных ОСРВ. В то же время требования современных мультимедийных приложений (потоковое видео, звук и т.п.) подталкивают коммерческие ОС к улучшению их динамических характеристик.

4) Можно ли управлять быстрыми процессами в реальном времени без ОСРВ? Можно. Классический вариант, когда нижележащая ОС (например однозадачная ДОС) используется только для запуска кода приложения, а то в свою очередь реализует функциональность небольшого ядра реального времени. Однако как только дело выходит за рамки обычного планировщика в стиле round-robin и работы с внешними устройствами с помощью поллинга (скажем нужна поддержка файловой системы, или коммуникаций в распределенной системе и т.п.), разработчик должен думать о том как все это организовать без потери детерминированности и динамических свойств критических процессов. Здесь как раз опять имеет смысл рассмотреть применение стандартных ОСРВ, где создатели ОС уже обо всем подумали (по крайней мере говорят что подумали :-)), и разработчик может просто пользоваться сервисами этой ОС, сосредоточившись на рещении прикладной задачи.

Споры идут в основном на стыке, когда параметры процесса и сложность решаемых задач таковы, что, либо кажется, что обычная ОС сможет справиться  с задачей, либо кажется, что стоимость самостоятельной разработки ядра реального времени будет дешевле покупки готовой ОСРВ.  Здесь то системный архитектор и должен принять оптимальное с точки зрения техники, коммерции и других факторов - решение. Универсальных рецептов на все случаи жизни не существует.

С Уважением,

Сергей Сорокин

 

 

 

 

 

Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2003 13:44
Первоначально опубликовано Sergey Sorokin

Мне кажется отсутствие хорошей документированности Linux связано с моделью развития и распространения этой ОС.



Безусловно, эта модель - это, признайте: новая философия разыития ПО (хорошая, плохая - это уже другое дело, но - новая). Кстати, развитие free software foundation - вовсе не такое некоммерческое, или "колхозом", как часто представляется - мне попалась такая цифра из отчёта IBM, что за 2002 год IBM финансировала на развитие free software что-то немногим свыше $1млрд. В рамках этих программ можно было, однако, и лучше отработать в части техдокументации.

Первоначально опубликовано Sergey Sorokin


Кстати QNX в свое время ориентировался на компиляторы Wattcom. После того как они захотели работать не только с x86 процессорами, они переориентировались на другую фирму (Metrowerks кажется). Сейчас используется GCC. Не было ли каких либо проблем при переносе исходного текста приложений с одного компилятора на другой? Несовместимости библиотек и т.п.?



Весь QNX 4.XX (и более ранние - ~20лет) построен на Wattcom. Линия 6.ХХ (Neutrino-2) - вся на GCC. Это связано, наверное, в первую очередь:
- Wattcom после очень долгой истории - объявил о прекращении развития линии компиляторов вообще;
- установка QSSL на большую совместимость и переносимость с GNU software.

Синтаксическая переносимость кодов проекта из-за смены компилятора - приемлемая, гораздо больше сложности может вызывать то, что архитектура OS между 4.ХХ и 6.ХХ претерпела бльшие изменения (очень расширена POSIX совместимость, добавлена широкая поддержка thread, и все алгоритмы диспетчеризации в OS перенесены со слоя процессов на уровень thread, ... и мн.др.).

Аппаратных платформ OS поддерживает много, вот здесь:
http://www.qnx.com/products/ps_momentics/ - читаем:
"...you can target the most popular processors (x86, MIPS, PowerPC, ARM, StrongARM, XScale, SH-4)...".

Средства разработки Metrowerks - это кроссовая технология (Win). Есть очень мощный внутренний инструмент разработки, отладки и диагностики приложений - на базе технологии IBM Eclipse.
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 13:46
Первоначально опубликовано Sergey Sorokin


Мне кажется отсутствие хорошей документированности Linux связано с моделью развития и распространения этой OC

С точки зрения [некернельных]девелоперов проблема не столько в линуксе, а, скорее в GCC и GNU-шных утилитах, которые есть не только под линуксом, а "везде"
SY,
EK
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 14:10
Первоначально опубликовано evgen

С точки зрения [некернельных]девелоперов проблема не столько в линуксе, а, скорее в GCC и GNU-шных утилитах, которые есть не только под линуксом, а "везде"

С этим можно согласиться, но с 1-м "но": я бы отчётливо выделил из общей массы GNU-soft 2 продукта, а именно, тот-же GCC & GDB (GNU debuger):
- они весьма прилично описаны (другое дело, что многие этими описаниями не пользуются из лености - там не одна 100-ня страниц);
- они классом исполнения заметно отличаются от всего GNU-soft, да и по многим параметрам намного превосходят аналоги из мира "фирменного" ПО;
- это университетские разработки, которые не останавливаясь непрерывно прогрессируют уже много-много лет;
- и эта "долговременность" тоже очень важна, как показатель и гарант стабильности решений.

Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 14:29
Первоначально опубликовано Olej

Первоначально опубликовано evgen


Область применения: управление приводами(2-4координаты) для лазерных систем. Любая запинка видна глазками, слышна ушками и чувствуется ручками.
Характерные времена - от суток до десятков наносекунд,
характерные размеры - от метров до долей микрона, причем не только измеряемые/программные, но управляемые.
Объясните дураку чем это не realtime системы

То, что "работает" и "глазками" там что-то кому-то видно - это ещё, ну абсолютно, ни о чём не говорит. Возможно, вся система и выглядит как realtime, но, может, там весь управляющий процесс развивается как последовательностный... или ещё как подобно, что негативные эффекты no-realtime могут вообще не выявляться: такого поверхностного описания, что "там всё круто" - в постановочном плане явно недостаточно, чтоб либо утверждать (либо опровергать) что такая система требует realtime ПО.

"Работает" - это значит идет одновременное управление перемещением по 2-4 координатам, при этом одновременно еще идет контроль/управление еще несколькими параметрами. Рассогласование управления перемещением при лазерной резке приводит к визуальным эффектам - неровность реза и т.п. толщина реза - порядка 0.1-0.2мм, Наблюдаемые глазками неровности - от примерно 0.05мм. Характерные скорости - 100мм/сек, дискрет с датчика положения - 0.005мм. Хотя повторюсь - непосредственное управление перемещением осуществляет в большинстве случаев спец.плата.


В случае непосредственного управления шаговым двигателем (с частотой 2000Гц) "негативный эффект многозадачночти" наблюдался непосредственно ("глазками")- при "плохом" выборе приоритетов движок начинал дергаться или ехать в противоположную сторону (на управление надо выдавать два меандра и когда они получаются смешенными не на полпериода и/или переод начинает гулять - то возникают такие эффекты)

Первоначально опубликовано Olej


Очень часто realtime требования выплывают в приложениях, в которых достаточно много логически параллельных ветвей исполнения 5-10 (но, кстати, и 100-200 thread тоже совершенно реально). Вот там в полную меру предмет обсуждения и вылезает...

Первоначально опубликовано evgen


Часть из приложений я описывал, и не только здесь. И почему-то никто не объявился и не сказал - у меня точно такое же, но под QNX.
Первоначально опубликовано Olej


Не повезло, значит. Ну я теперь восполняю - я делал точно такое, ещё начиная с времён DEC RT-11 (тоже RTOS ;-)) и заканчивая QNX...

Такое - что ?
1-Wire ? Во времена RT-11 его мягко говоря еще не было.

Юноша, я же не буду с вами спорить на ваших некорректных тонах... Хотя-бы потому, что "из 2-х дураков один должен, всё таки, быть умнее"(с). У вас есть технические соображения (озарения?) - излагайте.
А "такое" - это, например, код, который до сих пор работает в штатных изделиях систем ПВО/ПРО России (тогда СССР)... Это - "мягко говоря" ;-) - в те времена, когда вы изучали мироздание ещё по методике "не отрывая задницу от горшка"... :-). А после тех времён - ещё много, мнго и много...

Кто тут въюнош еще надо посмотреть.
Изделия с кодом на кулачковых механизмах ;-) вроде бы не так давно снимали с боевого дежурства.
Первоначально опубликовано Olej



Но это вся эта лирика - не аргументаци в выяснении технических нюансов.

Конечно.
SY,
EK
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 15:07
Первоначально опубликовано Olej

Первоначально опубликовано evgen

Я пайпы стандарно пользую по нетбиосу. Таймауты и ошибки при потере связи там есть и я думаю что оно точно также будет работать и для случая netbios over ip, тем более что у других оно работает. Как оно там реализовано - мне без большой разницы.


"... при потере связи..." - это у вас толко в случае "нормальной" потери связи: завершение приложения, или выгрузке OSна обратной стороне. В этом случае ваш socket получит FIN сегмент. А read() (или read после select) возвратит вам 0.

И есть ещё "ненормальная" потеря связи: обрыв линии, или контакты в разъёмах - в этом случае вы никогда и никаким образом не обнаружите потерю канала.

Это всё прописано не в реализациях отдельных OS- а в RFCs TCP/IP!

Однако ж сквид - обнаруживает как-то и пишет в логе - "парент подох" ?
Так что не надо ля-ля... Есть таймауты - и если за это время ничего не бегает - значит есть потеря канала, goto RECONNECT

SY,
EK
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 15:28
Первоначально опубликовано evgen


Однако ж сквид - обнаруживает как-то и пишет в логе - "парент подох" ?
Так что не надо ля-ля... Есть таймауты - и если за это время ничего не бегает - значит есть потеря канала, goto RECONNECT


1. по поводу "ля-ля": повторяюсь, юноша!
Я ведь не стану здесь восполнять пробелы в вашеи воспитании, допущенные на 2-м подготовительном году детского сада? нет у меня на то просто времени, помимо прочего...

2. об "сквидах" и "логах" - нужно букварь читать, а не догадываться ... "как-то" ...

3. в IP, TCP, RFCs - нет там никаких "таймаутов"!
Если вы об KEEPALIVE ... так это - через 2-3 часа и более, в зависимости от реализации... Очень актуально, для realtime :D.
А когда "ничего не бегает" - так это, скорее всего, не "потеря канала", а ... "не очнь то и надо".

Ещё раз, резюме: нужно не догадываться, а знать!, иначе из computering отправлялись бы куда ... в "творческие профессии".
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 15:35
Первоначально опубликовано Olej

Первоначально опубликовано evgen


Однако ж сквид - обнаруживает как-то и пишет в логе - "парент подох" ?
Так что не надо ля-ля... Есть таймауты - и если за это время ничего не бегает - значит есть потеря канала, goto RECONNECT


1. по поводу "ля-ля": повторяюсь, юноша!

Я ведь не стану здесь восполнять пробелы в вашеи воспитании, допущенные на 2-м подготовительном году детского сада? нет у меня на то просто времени, помимо прочего...

2. об "сквидах" и "логах" - нужно букварь читать, а не догадываться ... "как-то" ...

3. в IP, TCP, RFCs - нет там никаких "таймаутов"!
Если вы об KEEPALIVE ... так это - через 2-3 часа и более, в зависимости от реализации... Очень актуально, для realtime :D.
А когда "ничего не бегает" - так это, скорее всего, не "потеря канала", а ... "не очнь то и надо".

Ещё раз, резюме: нужно не догадываться, а знать!, иначе из computering отправлялись бы куда ... в "творческие профессии".

RTFM
Читайте доку на select и poll, сделайте поиск по ключевому слову timeout в доках по программированию тысипи
[всякие эмоции по поводу некорректности поскипаны]
SY,
EK
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2003 15:40
Первоначально опубликовано Olej


Кроме того, обратите внимание - может не все знают - что с ~2000г. предоставляется free полноценная версия QNX, на сегодня это QNX 6.2.1 NC (non-commercial), которая позволяет проверить и обкатать до уровня макета изделие без начальных затрат вообще.

...И те, кто купился на эту free версию уже успели наступить не на одни грабли
SY,
EK
Наверх
 Ответить Ответить Страница  <1 89101112 36>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz