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

реал тайм осы

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


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

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


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

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

Это всё прописано не в реализациях отдельных OS- а в RFCs TCP/IP!
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 10:42
К сожалению, сайт, на который Вы ссылаетесь, сейчас в
дауне...

Но вообще замечу, что может и нужно в избах жить...
Экология, то-се, картошечка, банька, теплая русская
печка... :-)

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

Я это к тому, что палить по 1000++ зеленых на ОС - это
круто, но для этого должны быть некоторые основания.
Кьникс мы рассматривали, к сожалению, анализ показал,
что его использование для нас экономически менее
эффективно, чем ДОС.

а на форум по Кьюниксу обязательно схожу, почитаю...
Может действительно Кьюникс надежнее ДОСа, хотя ДОС у
нас только при начальной загрузке кода в ОЗУ
используется, да на этапе загрузки нового кода программы
на Флеш-диск... ;-)

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

Первоначально опубликовано Владимир Е. Зюбин

А мы и вообще под ДОСом живем...
стоит 40 долларов за экземпляр...
ПО все в кэше первого уровня помещается...
летает как реактивный истребитель...
не говоря уже о надежности и прочих
прибамбасах...

Это хорошо, можно за вас порадоваться...
Вот некоторые в избах живут, и топят навозом... даже на $40 не тратятся...

А вот "о надежности и прочих прибамбасах... " - это действительно не надо говорить: "в доме повешенного не говорят о верёвке"(с). Посмотрите здесь:
http://qnx.org.ru/forum/viewtopic.php?topic=1690&forum=7&77
http://qnx.org.ru/forum/viewtopic.php?topic=2054&forum=4&13
http://qnx.org.ru/forum/viewtopic.php?topic=2052&forum=4&12
http://qnx.org.ru/forum/viewtopic.php?topic=2044&forum=4&21
- там как раз обсуждаются подобные предметы, чтоб не повторяться...
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 10:54
Ну и при чем здесь компиляция?

Вы же мне просто предлагаете РУЧКАМИ каждое тревожное
место контролировать... что несомненно полезно,
но, увы, не надежно, не гарантирует отсутствие ошибок,
т.к. метод завязан на человеческий фактор.

Кстати, то, что у нас сделано структурно эквивалентно
предлагаемому Вами, только сконцентрировано в одном
месте, этот контроль деления на ноль не нужно специально
программировать, т.к. он выполнен КОНСТРУКТИВНО
(его невозможно избежать, даже если сильно захотеть ;-)...

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

Первоначально опубликовано Владимир Е. Зюбин

Дмитрий Милосердов насчет последствий деления на ноль в UL:
Ничего не будет- скажет что ошибка деления на
ноль при компиляции.


При чем здесь компиляция?


Компиляция здесь при том, что прежде чем делить просто проверьте на что делите.

код:

if a<>0 to
begin
c:=b/a;
end
else
   ...... обработка критической ситуации

Избавит вас от любого отсыхания части ПО. У вас никогда и ничего не отсохнет. Это можно сделать в любом языке даже на IL/ :)





Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 11:11
А как Вы производительность замеряли? Может в методике замера ошибка? ;-)

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


А в QNX (как 1 из образцов RTOS) - timeslice = 1ms. Но и это ещё не всё - он может программно изменяться! Я сам доводил timeslice в QNX до его минимальной границы (в текущей версии 6.2.1) - 10mks. На это все говорят: "так при этом сильно упадёт производительность!"... Не падает!
Как? Не знаю :-).
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 11:15
Действительно своппинг потенциально опасен с точки зрения надежности... не только из-за задержек, но и из-за того, что вся система может грохнутся при недостатке места на диске...

И я вот такую штуку слыхал, говорят,
в Кьюникс 5.хх введен своппинг. ;-)

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

П.9. - этого пункта вы не найдёте ни в одном "академическом" перечислении (до таких ли конкретностей снисходить мужам от науки? ;-)) - это пункт "от меня": в RTOS ни при каких обстоятельствах не может быть механизма свопирования страниц на диск. И действительно нет: QNX, VxWorks, pSOS...
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 11:29
А я бы тут вскомнил старый анекдот:
"Вам ехать нужно, или шашечки на такси"?

Не стоит фетишизировать слова "реальное время"...
тем более за ними ничего корректного с формальной точки
зрения не стоит...

Есть некая конкретная задача, да решайте ее хоть на
Виндовз, хоть на ДОС... если выполнены все требования
ТЗ, то в чем могут быть проблемы?! 8-) А если задача
выполнена не за 1000++ баксов, а за 40, то это ПЛЮС, а
не минус.

Я так считаю: моя задача, как разработчика,
не молиться на фетишизированные РТОС, а
вырабатывать и реализовывать грамотное, экономически
эффективное решение.

Я работаю под ДОС 6.22, и горд тем, что мне удается
выполнять проекты за меньшие деньги, в более короткие
сроки и с качеством по нескольким параметрам превышающим
решение на базе Кьюникс.

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

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

P.S. Прошу прощения, если я написал слишком много, и утомил кого-то... Просто - "проходил мимо", сммотрю тема "реал тайм осы" - а в реал тайм осы скоро станут зачислять OS/2, и MS-DOS ... так дальше пойдёт - и MS Windows допустим в реалтайм... :-( Абыдно стало, панимаешь, да? Ещё раз прошу прощения.
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


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

К сожалению, сайт, на который Вы ссылаетесь, сейчас в дауне...

Да, там что-то произошло, но это - практически впервые по-серьёзному (более чем на 2-3 часа) за 1-1.5 года. Но попозже - сходите обязательно: этот форум отмечен на конференции "QNX-2002" в С.-Петербурге QSSL (разработчик QNX) в 3-ке лучших некоммерческих информационных ресурсов по QNX в мире...

Кстати, скоро ... в 1-й половине ноября - в С.-Петербурге опять ежегодная конференция "QNX-2003".

Первоначально опубликовано Владимир Е. Зюбин


Я это к тому, что палить по 1000++ зеленых на ОС - это
круто, но для этого должны быть некоторые основания.
Кьникс мы рассматривали, к сожалению, анализ показал,
что его использование для нас экономически менее
эффективно, чем ДОС.

А здесь есть какое-то явное противоречие масштабов... ;-) - поэтому требуется уточнить.

QNX действительно дорог начально - $7000-$14000 - но это developer-ская лицензия, т.е. ваше право поставлять коммерческие продукты на этой OS, так сказать ваше "въезжание" в сообщество разработчиков для QNX. Дальнейшие же "поэкземплярные" лицензионные платежи очень сильно зависят от тиражности изделия, и модульной комплектации OS, и составляет $80-$200 при малотиражности, и может падать до порядка на тиражах.

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

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


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


И я вот такую штуку слыхал, говорят,
в Кьюникс 5.хх введен своппинг. ;-)


Здесь есть небольшая неточность: наверное, не 5.ХХ (не было такого), а 6.ХХ, которая сейчас (~>200г.) сменяет линию 4.25.

Да, в 6.ХХ сделана большая ревизия OS:
- теперь система построена на компиляторе GCC (free, GNU, тот, который применяется, напр., в Linux - это даёт большие возможности для переносимости UNIX программ);
- очень сильная ревизия на совместимость с POSIX-стандартами;
- ... в частности, все процессы шедулирования перенесены с уровня процессов на уровень потоков (thread).
- ... есть ещё много существенных изменений, не место их здесь все перечислять.

В частности - "да" - в системе предоставлена (опционально) возможность свопинга, но:
- возможность свопинга может быть разрешена для задачи, но только в отношении страниц RAM данных, но не может - для страниц программного кода;
- такая возможность by default - запрещена, и должна быть установлена (если нужно) каждой задачей для себя;
- это связано, в первую очередь, с потребностями GNU компилятора GCC в перелопачивании больших объёмов данных, и, может быть, при переносе в QNX другого общеупотребимого UNIX ПО.
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


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

Не стоит фетишизировать слова "реальное время"... тем более за ними ничего корректного с формальной точки зрения не стоит...


Фетишизировать ничего не стоит, по жизни даже вообще, не только по OS - это безупречно верно... ;-).

А вот то, что за словами "реальное время" - ничего не стоит - это преувеличение. Худо то, что то немногое, что реально "стоит" - оно засорено и закамуфлировано массой наносной информации, циркулирующей в этой сфере.

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

Обратите внимание: всё, что realtime - обросло вокруг легендами:
- почему-то многими считается, что realtime - это "быстро"... хотя realtime OS при прочих равных условиях, как правило, несколько (или заметно) медленнее, чем OS общего применения. И это понятно - все внутренние переключения контекстов там должны делаться тщательнее и корректнее.
- realtime - это термин из области надёжности (безотказности, живучести), а уж никак не скоростных характеристик: выполните операцию 1000000 раз и усредните: в универсальной OS у вас, с большой вероятностью, среднее значение времени выполнения будет ниже, но дисперсия тестов - значительно больше.
- и ещё, из области realtime... многие изготовители RTOS оперируют (беспокоятся) коэффициентами готовности 5 9-ток: 99.999% ... - это означает 5 мин. в максимуие простоя на 1 год непрерывной работы. Всем нужну ли и интересны такие масштабы цифр? Многие ли из обсуждаемых систем предназначены, должны и т.д. эксплуатироваться в режиме "год горячего времени"? И можно ли всерьёз говорить о потенциальной даже возможности работы в таких режимах общих OS: MS-DOS, Windows, OS/2...

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

Первоначально опубликовано Владимир Е. Зюбин

Есть некая конкретная задача, да решайте ее хоть на Виндовз, хоть на ДОС... если выполнены все требования ТЗ, то в чем могут быть проблемы?! 8-) А если задача выполнена не за 1000++ баксов, а за 40, то это ПЛЮС, а не минус.

Естественно...
Только вот то "плохо формализованное условие" - оно начинает работать (сказываться) при некоторой сложности ПО. Я бы сказал: именно сложности в смысле числа N параллельных ветвей развития процесса (multitasking, вне зависимости того, чем эти task выражаются: обработчики IRQ, process, thread...). Взаимодействие таких ветвей - это основное место нарушения realtime. RTOS (да и любая OS) - это такое-же ПО, которое вы пишите, из которго вы, как пользователь, можете использовать API. Альтернативы: либо мы все элементарные операции (чтение с диска, напр.) сами прописываем, либо используем то, что уже прописано в API.

Если вам знакома классическая работа Э.Дэйкстры "Взаимодействие последовательных процессов" - то вы должны знать, насколько там тонкие материи, и неочевидные при первом проходе, да и втором тоже... (а если вы не знакомы с этой работой - она в русскоязычном переводе публиковалась аж в ~1975г. - искренне советую: вы просто получите удовольствие от блеска ума). Так вот, в multitasking ничего принципиально нового со времён работ Э.Дейкстры не было придумано со 2-й половины 70-х - и всё это время ушло на реализации, и вытягивание тонких мест.
Возвращаясь к RTOS - вы с этой OS получаете API механизмы, совместимые с POSIX 1003b (realtime) - выверенные как в логических противоречиях, так и в реализациях за пару-тройку десятилетий. С соответствующими вероятностями deadlock-ов и других прелестей в "ручном" коде и в API.
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2003 12:42
Наверное Вы правы, 6.хх.

Я это просто к тому, что пункт со своппингом в т.н. РТОС
надо как минимум править... наверное. Впрочем, это
ремарка, разумеется... по мне хоть так, хоть эдак...

Но с точки зрения любви к изящному из всех определений
нужно еще выкосить числа... типа "приоритетов должно
быть не менее 256"... непонятно... почему 256, а не 255?
не 254? или не 1024?

также мне показалось, что разговор шел просто об
алгоритмах, используемых в планировщиках многозадачных
ОС... может так и нужно говорить... не об РТОС, а об
алгоритмах планирования.

Например, ДОС - это вообще однозадачная
ОС, да еще и нереентерабельная... там никакого
планировщика по определению нет. А что, если он и не
нужен? Вроде как ну и хорошо. Ну и при чем здесь т.н.
задачи РТ? Тоже вроде ни при чем. Программируй под ДОС,
если знаешь как.

А Виндовз - и реентерабельная и многозадачная... ну и
программируй под Виндовз, если умеешь.

Тут, мне кажется, не имеет смысл особо всех агитировать за
Кьюникс. Люди все вроде взрослые.

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

Первоначально опубликовано Владимир Е. Зюбин


И я вот такую штуку слыхал, говорят,
в Кьюникс 5.хх введен своппинг. ;-)


Здесь есть небольшая неточность: наверное, не 5.ХХ (не было такого), а 6.ХХ, которая сейчас (~>200г.) сменяет линию 4.25.

Да, в 6.ХХ сделана большая ревизия OS:
- теперь система построена на компиляторе GCC (free, GNU, тот, который применяется, напр., в Linux - это даёт большие возможности для переносимости UNIX программ);
- очень сильная ревизия на совместимость с POSIX-стандартами;
- ... в частности, все процессы шедулирования перенесены с уровня процессов на уровень потоков (thread).
- ... есть ещё много существенных изменений, не место их здесь все перечислять.

В частности - "да" - в системе предоставлена (опционально) возможность свопинга, но:
- возможность свопинга может быть разрешена для задачи, но только в отношении страниц RAM данных, но не может - для страниц программного кода;
- такая возможность by default - запрещена, и должна быть установлена (если нужно) каждой задачей для себя;
- это связано, в первую очередь, с потребностями GNU компилятора GCC в перелопачивании больших объёмов данных, и, может быть, при переносе в QNX другого общеупотребимого UNIX ПО.
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
 Ответить Ответить Страница  <1 678910 36>

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

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