Действительно ли вам нужна ОС реального времени? |
Ответить | Страница <1 23456 12> |
Автор | |||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
Опубликовано: 03 Ноябрь 2003 19:52 |
||||||||
Только потому, что DSP как процессор, устройство... и DSP как обозначение класса алгоритмов "цифровой обработки сигналов" - чем то похожи по внешнему виду... так вот - только на этом основании - не морочьте мне голову. |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
|||||||||
[пять минут смеха пропущено] ОООО! И эти люди еще будут меня чему-то учить! И в риалтайме и в быстродействии |
|||||||||
SY,
EK |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
|||||||||
Скажем термин Fieldbus я считаю очень неудачным, однако он прижился, и в общем то все более менее представляют что за ним стоит. Вы можете конечно между собой притвориться, что термина realtime OS не существует, но он существует, как существует и объективная реальность, которую этим термином пытаются называть. Можно спорить насколько этот термин удачен. Можно предлагать другие термины. Мой взгляд на эту тему в основном приведен в статье, ссылка на которую есть в начале этого треда. Если коротко, то все системы АСУ ТП являются системами реального времени. Поэтому в этом контексте термин «реальное время» ничего не добавляет и не убавляет, а значит не имеет большого смысла. Тем не менее термины «жесткое реальное время» и «мягкое реальное время» имеют по моему право на существование. Можно конечно критиковать термин «hard realtime» или его устоявшийся перевод на русский язык, однако в любом случае существует большая группа систем, где своевременность выполнения тех или иных действий является критической. То есть несвоевременность выполнения каких то действий приводит к разрушению системы или к невыполнению целевой функции системы, для исполнения которой она и создавалась. Другими словами в результате несвоевременности выполнения каких то действий происходят неприемлимые для системы последствия. Что такое «неприемлимые последствия» зависит от конкретной системы и обычно указывается в ТЗ на создание системы. Некоторые неприемлимые последствия очевидны исходя из здравого смысла или действующих стандартов и могут в ТЗ не указываться (например, что котел не должен взорваться, что не должна подвергаться риску жизнь обслуживающего персонала и т.п.). Можно сказать что в системах жесткого реального времени несвоевременность каких то действий приводит к катастрофическим последствиям, а в системах мягкого реального времени несвоевременность приводит к нежелательныму, но допустимому ущербу или к нежелательной, но допустимой деградации каких либо характеристик системы. Несколько условных примеров: Скажем если в котле я при повышении давления вовремя не прекращу подачу реагентов, то котел может взорваться (в случае если ПАЗ не сработает). Если я не открою клапан сразу после того как очередная бутылка на конвейере остановится под наливным краном, у меня эта бутылка не заполняется и идет в брак, а загрязнение конвейера жидкостью может привести к необходимости его остановки на профилактику (это все недопутимые последствия – экономические убытки) . Если же в овощной теплице я при понижении окружающей температуры вовремя не включу нагреватели, то у меня может померзнуть сколько то процентов овощей (например допустимо до 30%) . Последний пример иллюстрирует что в одной и той же системе могут быть мягкие временные ограничения, несоблюдение которых приводит к негативным, но приемлимым последстиям и жесткие ограничения, несоблюдение которых приводит к неприемлимым последствиям. Опять же ни «жесткое» ни «мягкое» реальное время никак не связаны со скоростью управляемого процесса. Например в теплице «жесткое» временное ограничение, когда АСУ ТП должна среагировать на изменение температуры, что бы не померзло более 30% овощей, может измеряться часами. За это время можно десять раз по вотчдогу перезагрузить операционную систему (какой нибудь windows) после стольких же зависаний ПО, и система в целом все равно будет работать как система «жесткого реального времени», то есть укладываться в заданные временнЫе ограничения. То есть в медленных системах «жесткого реального времени» могут работать практически любые вычислительные средства с любым системным ПО (операционными системами). Другое дело когда система управления и ее вычислительное устройство должны БЫСТРО работать в рамках «жесткого реального времени». Собственно словосочетание «операционная система реального времени» обозначает операционную систему ЗАТОЧЕННУЮ для работы в составе «БЫСТРЫХ систем жесткого реального времени». По моему не более того. Эти ОС по своей архитектуре отличаются от «обычных» ОС и заслуживают какой то выделющей их из общей массы приставки. ОС РВ вполне приемлимое обозначение этой группы ОС. Можно ли без операционной системы создавать ПО для быстрых систем жесткого реального времени? Как я уже говорил – можно. У Владимира насколько я понял такая система и работает. Скорее всего – это некий самодельный планировщик в стиле round-robin, который позволяет обходиться без вытеснения (прерывания текущей задачи) и связанных с этим проблем приоритетов, разделяемых ресурсов, синхронизации, реентерабельности и т.п. Такой подход наиболее «честный» так как обычно позволяет уже на этапе проектирования оценить наихудший случай и выбрать аппаратуру такого быстродействия, что бы даже при наихудшем случае все временнЫе ограничения выполнялись. И конечно лучше переплатить за избыточные «в среднем» вычислительные ресурсы, но быть при этом уверенным в предсказуемости и детерминированности поведения системы. Проблемы с таким подходом начинаются когда нужно несколько вычислительных устройств объединть в сеть, критическое приложение распределено по узлам, необходимо использовать ПО написанное сторонними организациями и т.п.. Здесь как раз не обойтись без ОС РВ, которые предлагают разработчику специализированные сервисы, о которых говорил Olej, но которые имеют и некоторый букет связанных с нимим возможных проблем (инверсия приоритетов, скложность просчета наихудшего случая и т.п.). С Уважением, Сергей Сорокин
|
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||||
Я лично этим словом не пользуюсь, ровно, как Ваш знакомый педагог и рекомендовал... если говорите "реал- тайм", а имеете ввиду "надежность" - так и говорите "надежность"... все проще.
Под дед-локами я имею ввиду ситуации, когда две или более задачи входят в клинч... дед-локи, там, мексиканские петли... эти слова в QNX очень общеупотребительны... архитектура ОС QNX здесь при том, что она характеризуется возможностью возникновения этих самых дед-локов, что обусловлено механизмом организации обмена между приложениями... Если это делать запрещено, то имеет смысл иметь контроль таких ситуаций... запрещать запуск задач, которые друг к другу обращаются... чего, насколько я знаю, в QNX почему-то не сделано.
Да, на уровне алгоритма, нам хватает синхронных логических параллелизмов, хотя на уровне аппаратуры/УСО, разумеется, имеется асинхронный логический параллелизм. А захватов, распределения и блокирования критических ресурсов у нас действительно нет... как-то без них получается. Да и то сказать, у семи нянек, дитя без глазу...
Правильно не верите. Мы не замахиваемся на общий случай. Наш случай - алгоритмы работы сложных объектов автоматизации. |
|||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||||
Если у в системе не хватает выч. ресурсов, то никакой диспетчер не поможет... Вся проблема т.н. "реального времени" - это проблема недостатка ресурсов... ресурсов недостаточно, вот и выдумываются алгоритмы, как отключить некритичные процессы и подключить критичные... да еще при этом и здоровым остаться (в дед-лок не влететь)... И все б хорошо, да никто априорно не знает, какой задаче сколько процессорного времени надо... Кстати, не обязательно распараллеливать задачу, можно и тактовуй частоту поднимать, и процессор менять на более мощный.
Да, у физического параллелизма тоже есть свои проблемы, но если Вам нужно выполнить выч. алгоритм за очень маленькое время, которое невозможно обеспечить на одном процессоре, то надо два процессора ставить... и других вариантов нет. Увы, но никакая QNX тут уже не поможет...
А это-то здесь при чем? Я лично общаясь с Вами, например, полезные для себя вещи черпаю... Относительно "РТ" я свое мнение и аргументы высказал: все это дуст, призванный запорошить умы рядовых обывателей. На термин не тянет. |
|||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||||
Я Вам так скажу:
Мои заказчики имеют настолько большие претензии к системам управления, они настолько умны и опытны, что надписи "Ку-На-Хэ Инсайд" на корпусе наспех сг#вняканной аппарутуры им будет явно недостаточно.
|
|||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||||
Прошу прощения, но статья все же не об РТ ОС, а о том, что с ПО связано очень много мифов. И один из опущенный в статье мифов - миф о том, что покупное ПО с надписью "РТ ОС" решает все проблемы с надежностью и быстродействием. Да для того же Therac-25, в статье констатируется, что проблема была, в частности, в неадекватном интерфейсе оператора... это не решается с помощью QNX. Те же дед- локи... люди ляпали баг-на-баге... Тут уж запретом использования приемов, ведущих к дед-локам, не обойтись... Вляпались бы в дед-лок и вообще б жгли пациентов, в пепел... на входе старушка - на выходе урна с пеплом... |
|||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
|||||||||
Очень часто - не хватает ресурсов не "вообще", а в короткие пиковые интервалы. Мы просматривали загрузку одной из реальных загруженных управляющих систем, доля idle-процесса составляет 80-90%, и это при том, что производительность системы в пиках "под завязку". Такие же цифры показывали RTSU на недавнем семинаре на примере недавно сданной ими производственной АСУТП (классика). Т.е. процедуры диспетчеризации придуманы для того, чтобы разумным образом распланировать задания в пиках.
Очень даже поможет. Благодаря своей собственной сети QNET обмена сообщениями, QNX сеть - это уже практически готовый кластер для физического распараллеливания. Всё это достигается минимальной трудоёмкостью, на порядки ниже, чем при использовании традиционных сетевых реализаций! В реадкции СТА лежит набросок моей статьи с примером реализации кластерного вычислителя в ~300 строк С++ - если сочтут нужным опубликовать - посмотрите. Но это так, кстати - одна их достопримечательностей одной из OS - QNX, к realtime вообще - отношения не имеет. ;-)
Вот появятся приоритеты - появятся и проблемы... :D |
|||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
|||||||||
Статья совершенно не об РТ, но там есть одно примечательное наблюдение, когда ассинхронное возмущение и выполнение параллельной ветки инициирует ... оператор, и к чему это приводит. Это очень близко к тому, что обсуждается, если только не зацикливаться: "время, время, время..." даже если оно реальное. То что я говорил: realtime - это не из области временных соотношений, а из области надёжности.
1. нет такого мифа - никто никогда, даже в чисто рекламных материалах не утверждал, что realtime OS решает все проблемы. Вас обманули ;-). 2. а если с узкой позиции непосредственно работающих с RTOS, то и ещё менее: RTOS помогает более корректно и просто решить в приложении проблемы, связанные с параллелизмами, ассинхронностью и синхронизацией. Ничего более. 3. а вот проблемы "неадекватного интерфейса" и старушек - они и были в синхронизациях. |
|||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||||
А я про пиковую нагрузку и говорю... и про диспетчеризацию с Вами абсолютно согласен, диспетчер - это попытка вылезти из ситуации пиковой загрузки (нехватки выч. ресурсов) путем отключения некритических процессов и подключения критических... К сожалению, эта, в общем-то простая, идея на практике превращается в большую проблему... (кл. слова: доказательность, априорность, выбор алгоритма планирования, накладные расходы на организацию планирования, закрытые исходники сторонних производителей ПО)
Я имел ввиду не принципиальную невозможность организации кластера на QNX, а невозможность решить описываемые проблемы чисто программными средствами... без увеличения выч. мощности системы. Кстати, возможность организации многомашинного физического параллелизма, не сводится к наличию ПО организации кластера. Коего (ПО) полно и для других ОС.
1. Приоритеты, о которых говорится, заведомо не подразумевают появления сложного (ненадежного?) и динамического алгоритма планирования... подразумевается просто статический алгоритм балансировки на этапе трансляции... 2. Идея о введении таких "приоритетов" пока так и не набрала достаточно аргументов "за". |
|||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||||
Ответить | Страница <1 23456 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |