|
РТОС системы "реал тайм" ? |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 25)
|
Feb 20 2012, 09:21
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(a9d @ Feb 20 2012, 12:19)  Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать. Да, вы правы. Это и есть определение реалтайма. Причем, не только посчитать, но и задать и гарантировать. А насчет того, что "поцесс будет гарантированно выполняться 10мс", этого как раз гарантировать нельзя. Потому что многие системы имеют функции принудительного вызова диспетчера с целью ускорения реакции. Например: Цитата Гибридная многозадачность во FreeRTOS
Гибридная многозадачность сочетает в себе автоматический вызов планировщика каждый квант времени, а также возможность принудительного, явного вызова планировщика. Полезной гибридная многозадачность может оказаться, когда необходимо сократить время реакции системы на прерывание. В этом случае в конце тела обработчика прерывания производят вызов планировщика, что приводит к переключению на задачу, ожидающую наступления этого прерывания.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Feb 20 2012, 09:23
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(a9d @ Feb 20 2012, 12:19)  Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать. Отклика на что ? А если процесс отправил сообщение по сети и ждёт ответа - как предсказать (посчитать) время его "отклика" ? Это весьма распространённое заблуждение, что механизм ОСРВ заложен, в основном, в планировщике, который обладает волшебным свойством "детерминированности отклика" ... На самом деле, абсолютно все механизмы ОС должны быть перестроены таким образом, чтобы работать в режиме РВ. Одним планировщиком тут не обойтись. Возьмём, к примеру, выделение/освобождение памяти, тот же malloc(). В обычной (не-ОСРВ) системе malloc() при каждом вызове ищет первый подходящий по размеру кусок виртуальной памяти (first fit), не особо задумываясь, как там будет дальше, если не находит, то начинает "тасовать" страницы, дефрагментировать и т. п. Таким образом, в процессе работы приложений память фрагментируется, находить нужный кусок каждый раз всё сложнее, и каждый последующий вызов malloc() занимает время, существенно большее предыдущего (экспоненциальная зависимость), а главное - время работы malloc() ничем не ограничено сверху. Ни о каком РВ при таком подходе не может быть и речи. Другое дело ОСРВ - там malloc() использует специальные механизмы поиска (best fit), основанные на теории графов, и время его работы вполне ограничено сверху и более того, не сильно меняется от вызова к вызову.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Feb 21 2012, 11:30
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(a9d @ Feb 20 2012, 12:19)  ...по воду слова "реал тайм".... свои 5 копеек... при всём том что сказали выше... системы(имеется ввиду не ОС а именно "железные" системы) "реального времени" НЕ ЕСТЬ мк с РТОС  )) т.е. ваша задача в МК может гарантированно вызываться каждые 10 мс, но вот в целом МК может не обеспечивать данного понятия либо иметь гарантированный отклик значительно бОльший. (круглый)
|
|
|
|
|
Feb 21 2012, 15:34
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(a9d @ Feb 20 2012, 10:19)  Разгорелся очередной мини холивар по воду слова "реал тайм".
Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать.
Оппоненты, насколько я понял, это "непрерывное выполнение задач". Т.е. задача выполняется 10мс и будет выполнятся 10мс и ее никто не прервет. Второе утверждение "задача будет выполнятся через определенные промежутки времени". Т.е сказали задаче выполнятся раз в секунду, она и будет выполнятся раз в секунду. Лучше спросите кто считал время такого "гарантированного" отклика в RTOS. Принципиальная возможность посчитать не есть еще реальная возможность. Ни в одной даже самой раскрутой RTOS не найдете формул расчета отклика. О чем бы это могло говорить? Отклик меняется даже от опций компиляции. Как вы собираетесь его считать? 'реальное время' это маркетинговый термин. Чаще означает, что дивайс действительно справляется со своей задачей. Или что быстродействие микроконтроллера адекватно быстроте управляемых процессов.
|
|
|
|
|
Feb 28 2012, 22:29
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(MrYuran @ Feb 20 2012, 12:21)  Да, вы правы. Это и есть определение реалтайма. Причем, не только посчитать, но и задать и гарантировать. ... знакомые споры разгорелись с новой силой через 2 года после завершения предыдущего тура Ну ещё добавьте к этим определениям: - в системах без вытеснения, однопоточных, не мультизадачных - нет смысла говорить о реалтаймовости: они все реалтайм ... в некотором смысле MS-DOS самый что ни есть реалтайм  - в системе, сверх сказанного должно быть гарантировано не возникновение инверсии приоритетов (для этого рассмотрите пример, но как минимум 3-х процессов); - а для обеспечения пред.п. придумано не так уж много способов: а). наследование приоритетов на примитивах синхронизации или б). граничные приоритеты примитивов синхронизации + в). такие дисциплины диспетчеризации процессов как адаптивная и спорадическая... А выполнение всех этих условий наблюдаем ох как в мало операционных систем!  ... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно.
|
|
|
|
|
Feb 29 2012, 00:31
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Olej @ Feb 29 2012, 02:29)  - в системах без вытеснения, однопоточных, не мультизадачных - нет смысла говорить о реалтаймовости: они все реалтайм ... в некотором смысле MS-DOS самый что ни есть реалтайм  Да уж.. Этот код который сможет выполнить любой превратит вашу ДОС-РТОС в тыкву Код cli in AL,70h or AL,80h out 70h,AL jmp $ Цитата ... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно.  "А мужики то не знают" - ПО зачем-то сертифицируют на соответствие стандартам, например такому - ничего не гарантирующему http://en.wikipedia.org/wiki/DO-178B
|
|
|
|
|
Feb 29 2012, 01:14
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(a9d @ Feb 29 2012, 02:45)  А какие ОС "дурят" ? Можно примеры с пруфиками? можно от обратного - только то, что можно считать realtime: pSOS, QXN, vxWorks ... OS-9, в какой-то мере... Цитата(sasamy @ Feb 29 2012, 03:31)  Да уж.. Этот код который сможет выполнить любой превратит вашу ДОС-РТОС в тыкву завалить всё можно, дело нехитрое ... но к детерминированности или нет поведения это не имеет никакого касательства. Цитата(sasamy @ Feb 29 2012, 03:31)  а это? так это рыночные игрища ... с "вытесняюще конкурентов многозадачностью"
|
|
|
|
|
Feb 29 2012, 14:32
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(sasamy @ Feb 29 2012, 16:49)  Теперь убираем ДОС-РТОС и запускаем вашу "задачу" нативно и получаем ровно то же что было с ДОС-РТОС - чтобы иметь детерминированность ни одну ф-ию ДОС-РТОС вы не можете вызывать. так это называется : завалить, и дело это не хитрое... но какое это имеет минимальное отношение к детерминированности переключения контекста в многозадачной среде, когда только и имеет смысл говорить об RT-характеристиках.
|
|
|
|
|
Mar 6 2012, 14:55
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-07
Пользователь №: 25 855

|
Цитата(AlexandrY @ Feb 21 2012, 17:34)  Или что быстродействие микроконтроллера адекватно быстроте управляемых процессов. Это вообще условие желательное для любой системы под управлением контроллера/процессора. Маркетинг это или нет, но есть , так сказать, просто операционные системы и операционные системы "реального времени". Основное отличие в принципах построения и требованиях предъявляемых к планировщику. Если у первых (та же Винда) трудно прогнозировать когда, после возникновения события, будет дана возможность его обработать. (Хотя и под управлением Win ухитряются строить системы real time), то у RTOS с определенной/заданной погрешностью это просчитать/измерить все же можно. И, с определенным допуском, получается повторяемый результат. Цитата(Olej @ Feb 29 2012, 00:29)  ... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно.   я бы сказал не дурят, а не договаривают всей правды. Но мы же тоже имеем голову на плечах.  Для каждого инструмента есть свое применение и важно понимать что для чего.
|
|
|
|
|
Mar 6 2012, 17:24
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Shein @ Mar 6 2012, 16:55)  Маркетинг это или нет, но есть , так сказать, просто операционные системы и операционные системы "реального времени". Основное отличие в принципах построения и требованиях предъявляемых к планировщику. Если у первых (та же Винда) трудно прогнозировать когда, после возникновения события, будет дана возможность его обработать. (Хотя и под управлением Win ухитряются строить системы real time), то у RTOS с определенной/заданной погрешностью это просчитать/измерить все же можно. И, с определенным допуском, получается повторяемый результат. Никто не скажет что Windows 7 не среагирует в течении часа на какое либо одно событие. И это будет повторяемый и вполне детерминированный результат. А значит для потока таких событий Winows 7 вполне система реального времени. Ведь при определении реального времени всегда стараются политкорректно не говорить об абсолютном быстродействии. На самом деле ИМХО большинство подразумевает быстродействие, и я полагаю что на современном этапе для RTOS с виртуализацией памяти это время 10 мкс, для RTOS без виртуализации это 1 мкс и меньше. Т.е. если ось на может уложиться с переключением контекста железно в 10 мкс то рано или поздно пойдут слухи что она не RTOS. Но прямых обвинений не будет, ведь трогать быстродействие в "профессиональных" оценках RTOS строго неприлично. И тут тогда можно ссылаться на планировщик, структуру и т.д. , придумывать другие критерии чтобы добиться статуса RTOS. RTOS это глубоко контекстно зависимый термин.
|
|
|
|
|
Mar 7 2012, 05:47
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(AlexandrY @ Mar 6 2012, 21:24)  На самом деле ИМХО большинство подразумевает быстродействие, и я полагаю что на современном этапе для RTOS с виртуализацией памяти это время 10 мкс, для RTOS без виртуализации это 1 мкс и меньше. Виртуальная память может и не требовать дополнительных расходов - см FCSE на arm, при таком подходе инвалидация cache и tlb не требуется при переключении контекста.
|
|
|
|
|
Mar 7 2012, 14:23
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-07
Пользователь №: 25 855

|
Цитата(AlexandrY @ Mar 6 2012, 19:24)  Никто не скажет что Windows 7 не среагирует в течении часа на какое либо одно событие. И это будет повторяемый и вполне детерминированный результат. А значит для потока таких событий Winows 7 вполне система реального времени. В общем говорим об одном и том же, только немного по разному  Для конкретной системы, и ее требований к времени реакции, принимается решение о применении той или иной ОС или о не применении ОС. В микросекундах, честно говоря, никогда не анализировал что относят к RTOS, а что нет. Точнее смотрел на временные параметры, не особо акцингтируя внимание на собственно названии.
|
|
|
|
|
Apr 1 2012, 18:54
|
Частый гость
 
Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803

|
Резюме: RTOS в "общепринятом" смысле не существует и не может существовать. О чем еще AlexandrY в первом посте намекал, впрочем, он так и не ответил на вопрос ТС-а. Предлагаю поразмышлять над следующим: 1. Сколько выполняется операция "ноп" на интеловских процессорах? База - http://www.intel.com/content/www/us/en/pro...er-manuals.html2. Windows XP - real time система по POSIX.1? 3. QNX (VxWorks и т.д.) - real time системы по POSIX.1? 4. Наследование приоритетов (как и ceiling) избавляет от инверсии? 5. Спорадическая диспетчеризация нужна для избавления от инверсии приоритетов? А зачем тогда? P.S. AlexandrY в ударе
|
|
|
|
|
Jun 4 2012, 13:11
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 1-02-11
Пользователь №: 62 608

|
Чтоб дурить эффективнее придуман термин "Soft real-time systems" Цитата(AlexandrY @ Mar 6 2012, 21:24)  На самом деле ИМХО большинство подразумевает быстродействие, и я полагаю что на современном этапе для RTOS с виртуализацией памяти это время 10 мкс, для RTOS без виртуализации это 1 мкс и меньше. Т.е. если ось на может уложиться с переключением контекста железно в 10 мкс то рано или поздно пойдут слухи что она не RTOS.  как Вы думаете, сколько и какие OS не впишутся в 10 мкс, если процессор работает на ~80MHz и кеши выключены ? Цитата(vshemm @ Apr 1 2012, 22:54)  Резюме: RTOS в "общепринятом" смысле не существует и не может существовать. согласен, однако существуют реал тайм системы т.е. HW + SW ( OS + прикладная часть), которые удовлетворяют по реал тайму в конкретных узких областях применения, в определенном месте в определенное время....  как то выше изложил AlexandrY
|
|
|
|
|
Jun 5 2012, 03:22
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Цитата(Demeny @ Feb 20 2012, 13:23)  А если процесс отправил сообщение по сети и ждёт ответа - как предсказать (посчитать) время его "отклика" ? У Вас прикладная программа и аппаратная платформа должна быть так построена что бы нормально отрабатывался неприход ответа. Цитата(Demeny @ Feb 20 2012, 13:23)  Возьмём, к примеру, выделение/освобождение памяти, тот же malloc(). В обычной (не-ОСРВ) системе malloc() при каждом вызове ищет первый подходящий по размеру кусок виртуальной памяти (first fit), не особо задумываясь, как там будет дальше, если не находит, то начинает "тасовать" страницы, дефрагментировать. Опять же это не правильно прикладные задачи могут использовать статическое выделение памяти, и не обращаться к малок, и работать с более высоким приоритетом. У Вас всегда есть средние величины и отклонения от них, Вы это должны понимать и правильно отрабатывать ситуацию когда отклонение велико. Сертифицируете Вы всю систему целиком, там есть и ос и Ваша програмка и куча программок сторонних производителей которые в общемто работают не гарантированным образом.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|