реал тайм осы |
Ответить | Страница <1 3132333435 36> |
Автор | ||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
Опубликовано: 30 Ноябрь 2003 17:53 |
|||
Номера можно найти, но что с ними дальше делать ? Это такой тонкий намек - что неплохо было бы собрать в кучу все стандарты, имеющие отношение к СТА, или на худой конец - прямые ссылки на них...Скажем, в разделе "ссылки"... SY, EK |
||||
SY,
EK |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||
Если есть такие ссылки, присылайте в редакцию. Думаю можно открыть специальный раздел на сайте СТА с полезными ссылками. Проблема в том, что многие организации не разрешают какую либо публикацию своих стандартов (в том числе в интернете) без их разрешения (то есть МЭКовские стандарты в интернете - это скорее некое не вполне законное исключение, чем правило). Тот же МЭК стандарты продает. Поэтому если Вам нужен какой нибудь МЭКовский стандарт, то можно его купить в самом МЭК или в Госстандарте, либо в том же Госстандарте купить соответствующий ГОСТ, если стандарт уже переведен на русский. С Уважением, Сергей Сорокин
|
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||
Здесь видится несколько проблем. 1) Подход работает только для систем со статической приоритизацией. 2) На этапе разработки нужно всем ресурсам присвоить ceiling число соответствующее максимальному приоритету из всех потоков, которые к этому ресурсу только СОБИРАЮТСЯ обращаться. Соответственно при скажем удалении из одного из потоков обращения к какому нибудь ресурсу (и при добавлении обращения) надо проверить не нужно ли изменить ceiling число этого ресурса. При изменении приоритета потока нужно просмотреть и при необходимости изменить ceiling числа всех ресурсов к каким этот поток может обратиться. При сложных проектах отслеживание такого рода зависимостей может превратиться в настоящую головную боль. Можно конечно предусмотреть динамическую регистрацию вновь запущенных потоков у "своих" ресурсов, но головная боль остается, так как сами ресурсы (семафоры) могут быть динамическими и в общем случае могут образовываться после потоков, которые будут ими пользоваться. 3) В общем случае не происходит улушения динамических свойств системы по сравнению с вариантом наследования приоритетов (в том смысле как я об этом писал - на время "пропихивания застрявшего потока"). Например если какой то ресурс может использоваться высокоприоритетной задачей раз в секунду и этот же ресурс используется низкоприоритетной задачей раз в 1 мсек, то ceiling число семафора будет равно высокому приоритету, в результате чего каждую миллисекунду низкоприоритетный поток будет всех блокировать (включая высокоприоритетную задачу), несмотря на то что никакому другому потоку этот ресурс даром не нужен ближайшие 1000 мсек. Что касается взаимных блокировок на ресурсах включая описанный вами вариант взаимоперекрестного вложенного доступа к ресурсам, то можно предложить некий способ, позволяющий в необходимых случаях в принципе избегать таких блокировок. Я бы назвал его транзакционным. Способ этот связан конечно с некоторыми накладными расходами, но вобщем то это уже для тех кто пишет диссертации на эту тему или пишет свои операционные системы. В печати я обсуждений транзакционых методов захвата ресурсов не встречал.
Пролистал я эту статью. Действительно RMS рассматривается для весьма ограниченного класса задач. Потоки периодичны, длительности времени выполнения каждого протока известны и постоянны. Я не увидел никаких преимуществ RMS по сравнению с динамической планировкой "earliest-deadline-first". Реальные процессы могут быть не только непериодическими, но и вообще не стационарными. Возможны ситуации когда запрашиваются ресурсы превышающие 100% имеющихся. В этом случае нужно оттеснять задачи "мягкого" реального времени. То есть я бы для планировщика EDF предусмотрел бы для каждого потока 2 дедлайна со значениями штрафа за просрочку каждого (для потока ЖРВ штраф уже за первый дедлайн должен быть бесконечным). Моменты планировки могли бы быть те же, что и в классической вытесняющей многозадачности. Если дедлайнов много, для их постоянного движения по внутренней "оси времени" можно использовать алгоритмы инкрементных таймеров. Для работы с потоками "мягкого" реального времени понадобится информация о длительностях исполнения этих "мягких" потоков (желательна связь с профилировщиком или "хитрым" компилятором). И т.п. Но это все опять может быть интересно наверное только тому кто диссертации пишет, а таких сейчас мало. Важнее научиться правильно применять доступные коммерческие ОС. С Уважением, Сергей Сорокин
|
||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||
Я работал в достаточно многих OS, и "да" - QNX мне откровенно нравится, когда есть с чем сравнивать... - это красивая OS, красивая своей архитектурой - именно так (кстати - здесь можно смеяться - я не один раз слышал от приверженцев QNX, пришедших из других OS, именно этот термин: "красивая" - здесь ещё примешиваются и эстетические критерии)! Но QSSL мне не сват и не брат... я не торгую OS QNX... и не предлагаю по найму свои услуги в этой OS через форумы... Я никому не стараюсь навязывть QNX как оптимальное решение. Если бы затра появилась OS, более характерно вписывающаяся в категорию RTOS - я бы с удовольствием сел за её разгребание, и приводил сравнения на основе именно её характеристик. Но мы ведь говорим в этой теме об RTOS, а не о конкретной OS QNX? На последнее время, как мне кажется, был ешё относительно удачный кандидат для рассмотрения - pSOS, но у неё нет такой динамики развития.. или вовсе нет никакой динамики?...
Это - достаточно точное замечание, соответствующее тому, что я написал выше: есть сообщество специалистов, работающих на сегодня с OS QNX (если вам хочется именно определения "сообщество"), но отнюдь нет какого либо фанатичного сообщества "приверженцев" QNX (это же - не футбол, я, кажется, писал...). И работает этот круг лиц, кстати - совершенно не слабо, именно поэтому я показывал не раз на URL: qnx.org.ru - потому, что там можно посмотреть на результаты того, что наработано... Но появись завтра более удачная альтернатива - и многие из нас будут работать с ней. |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||
Проблема fat-стандартов в том, что они непрактичны. Людям нужно работать, а не изучать талмудистскую литературу... Может из-за этого, в том же КНХ есть проблемы с ПОЗИКС... (об этом косвенно говорится в исследованиях дидикатед-системс)
С моей точки зрения, своппинг нужно разрешать... если его не разрешить, а память требуется, то система грохнется... В этом смысле неверно сводить проблему к разрешению/неразрешению Д-С. Проблема гораздо шире - это динамические операции с ОЗУ, и их влияние на надежность... К слову, мы в своих системах динамические операции с ОЗУ исключаем конструктивно... Вот так. Как это не грустно слышать всем любителям calloc, malloc, а равно, рекурсий и ООП. |
||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||
Участник Присоединился: 31 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 52 |
||||
Однозначно с Вами согласен. Проблемы весьма серьезные, что, по видимому и не повлекло особого распространения этого механизма. Олег писал, что PCP, если я ничего не путаю, был реализован в San Solaris, как опциональная возможность, наряду с классическим наследованием приоритетов. Единственный момент, который меня в этом механизме привлек, это потенциальная возможность его реализации самим разработчиком прикладной системы. Хотя тут конечно масса сложностей, в том числе и тех, о которых Вы говорили, но в ОС где нет защиты от инверсии, а по каким-то причинам ввести эту защиту надо, этот механизм оказывается чуть-ли не единственным выходом.
Очень интерестно. Не для диссера, я свой в общем-то уже защитил, а на докторскую пока не тянет :-). По специфике своей области (радиофизика) я, в общем, привык к необходимости серьезного отношения к теории, что, к сожалению, не часто встретишь в программировании. Не могли бы Вы в двух словах о транзакционным методах? В принципе направление из названия понятно, но интерестно уточнить.
Вот тут Вы не вполне правы. Ведь статья Лиу и Лейланда - 70х годов, с тех пор утекло много воды. Давая ту ссылку я просто указал на источник этой теории. Я немного порылся в инете и скажу Вам, что эта теория явно получила свое дальнейшее развитие. Например здесь я указывал статью Zalewski, достаточно простую и ориентированную в первую очередь на инженеров. Там опущена математика и идут непосредственные рекомендации по применению методики анализа СРВ. Там же кстати показывается опастности методики earlier-deadline-first, и рекомендуетя, скажем, fasters-execution-first (что соответствует RMS)и как при такой методике оценить попадание в deadline каждого потока, какие потоки мешают этому и т.д. Но конечно остается проблема в определении времени выполнения потока. Я как бы не уверен, что я полностью разобрался в СОВРЕМЕННОМ состоянии RMS и Вам советую не быть уверенным. Колличество цитирований огромно, литературы по этому поводу море, что, конечно, затрудняет отделение зерен от плевел. Что меня все-таки подталкивает к изучени этого механизма, так это тот факт, что разработчики ОС столь высоко ценят эту теорию, и ради возможности ее применения в их системах идут на определенные издержки. |
||||
Draggan
Kharkov, QNX Seminars |
||||
Участник Присоединился: 31 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 52 |
||||
Соглсен. Убедили. По русски так наверно звучит лучьше :-) Я, в общем, по здравому размышлению пришел к тем же выводам. Однако использовать эту идею все-же можно. На мой взгляд наиболее точно идее реалтайма соответсвует комбинация из двух определений: 1. Ваше :-) из статьи Системы реального времени: СРВ это системы в которых важна не только правильность вычислений и логических решений но и время их выполнения. (моя вольная трактовка :-)) 2. Определение IEEE - что СРВ предназначены для контроля некоего внешнего процесса, при этом время выполнение операций и логических решений определяется временными характеристиками этого процесса. То есть, самым важным для разработчика СРВ является задача не пропустить deadline. А предсказуемость всех элементов СРВ ( прикладных программ, ОСРВ, целевой системы) как раз и является тем необходимым свойством, которое позволяет разработчику быть уверенным в надежности и вообще работоспособности его системы. То есть предсказуемость это необходимое свойство ОСРВ систем, отличающее их от систем общего назначения. А уже свойство предсказуемости диктует функциональные требования к ОСРВ системе. При этом в принципе систма может быть и не многозадачной. Те же дедикейтед системз приводят архитектуру MS-DOS как пример построения ОСРВ лет десять назад (в исторической ретроспективе). Однако для современных ОСРВ систем многозадачность - есть естественное положение вещей. То есть при наличии многозадачности уж однозадачность реализовать не сложно. А вот в многозадачной/многопоточной системе реализовать свойство ПРЕДСКАЗУЕМОСТИ уже проблема и Вы совершенно справедливо это заметили здесь на форуме. Из этих же требований исходит и специфика реализации объектов синхронизации в ОСРВ. Они не только должны быть в системе как таковые, но и их поведение должно быть соответствующим (скажем предсказуемые и высокие времена отработки своих функций). Плюс к этому обязательная защита от инверсии приоритетов, вынесенная как отдельное требование. Ну и конечно латенции во всех своих видах, от переключения потоков до обработки прерываний. Сюда также относятся не слишком важные для GPOS требования по стрес-тестам (например обработка двух прерываний первое с низким приоритетом, а второе с высоким, пришедших с небольшим временным разрывом в указанном порядке). Так что именно предсказуемость (временная) поведения системы и является, в общем-то, основным критерием ОСРВ(!) системы. Если некая GPOS по критерию предсказуемости отвечает требованиям объекта то - прекрастно, она вполне может использоваться как ОСРВ. Но, таже инверсия приоритетов может оказаться непреодолимым препятствием. |
||||
Draggan
Kharkov, QNX Seminars |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||
Идея довольно простая и реализует упомянутый в моей статье принцип при захвате ресурсов - "или все или ничего". То есть процесс для успешной работы которого нужно сразу несколько ресурсов может запрашивать у ОС эти ресурсы списком. Весь список обрабатывается ОС как единая транзакция. Транзакция заканчивается успешно только если все ее операции закончились успешно. Несколько процессов могут сгенерировать несколько таких запросов-транзакций к ОС в том числе содержащих запросы на захват одного и того же ресурса. Если при обработке транзакции нужно захватить ресурс уже захваченный успешной транзакцией, транзакция ждет освобождения этого ресурса (при необходимости наследуя свой приоритет захватившему ресурс процессу). Если ресурс захвачен еще не законченной (параллельно выполняемой) транзакцией, то транзакция либо как в предыдущем случае ждет конкурента, либо откатывает конкурирующую транзакцию - освобождает необходимый ресурс. При необходимости откат может происходить к самому началу (то есть освобождаются все захваченные к тому времени откатываемой транзакцией ресурсы). ОС откатывает конкурирующую транзакцию, например, если наша транзакция сгенерирована более приоритетным процессом или при равных приоритетах успела захватить больше ресурсов. Транзакция это конечно условное название, так как порядок захвата ресурсов внутри транзакции не важен. Можно назвать такого рода механизм пакетным захватом ресурсов. То есть только когда все запрошенные ресурсы захвачены, транзакция считается успешно законченной, а процесс ждущий ее окончания разблокируется и продолжает работу. Проблемы с взаимными блокировками решаются обработчиком транзакций ОС, прикладному программисту достаточно поместить в пакет (или соответствующим образом оформить в последовательность вызовов) список одновременно необходимых ресурсов. Несмотря на то что стандартный захват ресурса может быть представлен как вырожденный (состоящий из одного элемента) пакет, пакетный способ может скорее всего служить неким добавлением к стандартным механизмам ОС и использоваться при опасности возникновения взаимных блокировок.
В статье Zalewski на которую Вы давали ссылку (http://www-md.e-technik.uni-rostock.de/ma/gol/ebsys.htm откуда потом http://www-md.e-technik.uni-rostock.de/ma/gol/bsys/pdf/whatevereyeng.pdf) я не нашел описания опасностей методики earlier-deadline-first и какого либо упоминания про fasters-execution-first. С Уважением, Сергей Сорокин
|
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||
Ничего не могу сказать про проблемы КНХ, но мне трудно представить человека, который сразу начнет работать в области программирования ничего не изучая. Скажем начать программировать на С, не прочтя ни строчки из толстых книжек про то как это делать. Некоторые стандарты fat просто потому, что они не могут быть другими. Хотя возможно Вы знаете как описать несколько тысяч вызовов API ОС на 10 страницах.
Я не очень понял в чем Вы видите проблему. Во многих приложениях память распредляется статически при запуске, а во время выполнения динамически вообще не аллокируется. Если же какой либо программе от системы динамически требуется память, а у системы памяти больше нет, то система возврашает этой программе в ответ на ее запрос кукиш с маслом. Что с этим кукишем делать - проблемы разработчика программы, не вижу здесь фатализма с точки зрения "грохания системы". С Уважением, Сергей Сорокин
|
||||
Участник Присоединился: 31 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 52 |
||||
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
В статье Zalewski на которую Вы давали ссылку (http://www-md.e-technik.uni-rostock.de/ma/gol/ ebsys.htm откуда потом http://www-md.e-technik.uni-rostock.de/ma/gol/bsys/pdf/whatevereyeng.pdf) я не нашел описания опасностей методики earlier-deadline-first и какого либо упоминания про fasters-execution-first. С Уважением, Сергей Сорокин >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Сильно прошу прощения, виноват, исправлюсь. :-) Совсем заработался и все перепутал. Конечно в этой статье критикуетеся не earlier-deadline-first а установка приоритетов по важности задачи и обсуждается расстановка по периодичности дедлайнов, что, как я понимаю, весьма близко к earlier-deadline-first (если только это не оно и есть). А не могли бы Вы дать ссылочку на какую-нибудь статью по earlier-deadline-first? Интерестно почитать и сравнить. Может мы в чем-то об одном и том же говорим? Отдельное спасибо за разъяснение по пакетным запросам на ресурсы. Но ведь эта технология может быть реализована только в рамках ОС? Хотя... возможно и не только... Вы не могли-бы подсказать в каких ОС используется этот механизм? |
||||
Draggan
Kharkov, QNX Seminars |
||||
Ответить | Страница <1 3132333435 36> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |