реклама на сайте
подробности

 
 
> РТОС системы "реал тайм" ?
a9d
сообщение Feb 20 2012, 08:19
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Разгорелся очередной мини холивар по воду слова "реал тайм".

Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать.

Оппоненты, насколько я понял, это "непрерывное выполнение задач". Т.е. задача выполняется 10мс и будет выполнятся 10мс и ее никто не прервет.
Второе утверждение "задача будет выполнятся через определенные промежутки времени". Т.е сказали задаче выполнятся раз в секунду, она и будет выполнятся раз в секунду.

Сообщение отредактировал a9d - Feb 20 2012, 08:25
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 25)
MrYuran
сообщение Feb 20 2012, 09:21
Сообщение #2


Беспросветный оптимист
******

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



Цитата(a9d @ Feb 20 2012, 12:19) *
Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать.

Да, вы правы.
Это и есть определение реалтайма.
Причем, не только посчитать, но и задать и гарантировать.
А насчет того, что "поцесс будет гарантированно выполняться 10мс", этого как раз гарантировать нельзя. Потому что многие системы имеют функции принудительного вызова диспетчера с целью ускорения реакции.
Например:
Цитата
Гибридная многозадачность во FreeRTOS

Гибридная многозадачность сочетает в себе автоматический вызов планиров­щика каждый квант времени, а также воз­можность принудительного, явного вызова планировщика. Полезной гибридная мно­гозадачность может оказаться, когда необ­ходимо сократить время реакции системы на прерывание. В этом случае в конце тела обработчика прерывания производят вызов планировщика, что приводит к переключе­нию на задачу, ожидающую наступления этого прерывания.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Demeny
сообщение Feb 20 2012, 09:23
Сообщение #3


Знающий
****

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



Цитата(a9d @ Feb 20 2012, 12:19) *
Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать.

Отклика на что ? А если процесс отправил сообщение по сети и ждёт ответа - как предсказать (посчитать) время его "отклика" ?
Это весьма распространённое заблуждение, что механизм ОСРВ заложен, в основном, в планировщике, который обладает волшебным свойством "детерминированности отклика" ...
На самом деле, абсолютно все механизмы ОС должны быть перестроены таким образом, чтобы работать в режиме РВ. Одним планировщиком тут не обойтись.
Возьмём, к примеру, выделение/освобождение памяти, тот же malloc(). В обычной (не-ОСРВ) системе malloc() при каждом вызове ищет первый подходящий по размеру кусок виртуальной памяти (first fit), не особо задумываясь, как там будет дальше, если не находит, то начинает "тасовать" страницы, дефрагментировать и т. п. Таким образом, в процессе работы приложений память фрагментируется, находить нужный кусок каждый раз всё сложнее, и каждый последующий вызов malloc() занимает время, существенно большее предыдущего (экспоненциальная зависимость), а главное - время работы malloc() ничем не ограничено сверху. Ни о каком РВ при таком подходе не может быть и речи.
Другое дело ОСРВ - там malloc() использует специальные механизмы поиска (best fit), основанные на теории графов, и время его работы вполне ограничено сверху и более того, не сильно меняется от вызова к вызову.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
a9d
сообщение Feb 20 2012, 09:28
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Отклика на какое либо событие.
Событием может быть:
- системный таймер.
- прерывание.

Если в системе есть две задачи. У них соответственно приоритет 1 и 2.
То время отклика на событие задачи 1 будет переключение контекста.
У второй задачи будет их два:
-переключение контекста
-переключение контекста+время работы приоритетной задачи.

Если в менее приоритетной задаче требуется непрерывное выполнение куска кода. То ставится крит. секция.
При этом время пребывания в крит. секции должно быть учтено в высокоприоритетной задаче.

Также менее приоритетная задача не может повлиять на отклик высокоприоритетно. За исключением кри. секций.

При этом не забываем про прерывания. Они тоже могут повлиять на отклик. Поэтому их делают минимальными.

Сообщение отредактировал a9d - Feb 20 2012, 09:34
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 20 2012, 09:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(a9d @ Feb 20 2012, 11:28) *
Если в системе есть две задачи. У них соответственно приоритет 1 и 2.
То время отклика на событие задачи 1 будет переключение контекста.
У второй задачи будет их два:
-переключение контекста
-переключение контекста+время работы приоритетной задачи.

+Время выполнения прерываний
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Feb 20 2012, 10:07
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



QUOTE (Demeny @ Feb 20 2012, 12:23) *
...Возьмём, к примеру, выделение/освобождение памяти, тот же malloc()....


чем более РВ задача, тем меньше в ней malloc`ов. biggrin.gif


Go to the top of the page
 
+Quote Post
Terminator
сообщение Feb 21 2012, 03:45
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(Mahagam @ Feb 20 2012, 17:07) *
чем более РВ задача, тем меньше в ней malloc`ов. biggrin.gif

бывают malloc-и с фиксированным временем
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 21 2012, 11:30
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(a9d @ Feb 20 2012, 12:19) *
...по воду слова "реал тайм"....


свои 5 копеек...
при всём том что сказали выше...
системы(имеется ввиду не ОС а именно "железные" системы) "реального времени" НЕ ЕСТЬ мк с РТОС sm.gif))

т.е. ваша задача в МК может гарантированно вызываться каждые 10 мс, но вот в целом МК может не обеспечивать данного понятия либо иметь гарантированный отклик значительно бОльший.

(круглый)
Go to the top of the page
 
+Quote Post
a9d
сообщение Feb 21 2012, 13:54
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



РТОС не гарантирует вызов каждые 10мс.
А гарантирует время отклика. МК с РТОС с этой задачей справляется.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 21 2012, 15:34
Сообщение #10


Ally
******

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



Цитата(a9d @ Feb 20 2012, 10:19) *
Разгорелся очередной мини холивар по воду слова "реал тайм".

Я считаю, что это "детерминированное время отклика для каждого процесса в системе". Его можно посчитать.

Оппоненты, насколько я понял, это "непрерывное выполнение задач". Т.е. задача выполняется 10мс и будет выполнятся 10мс и ее никто не прервет.
Второе утверждение "задача будет выполнятся через определенные промежутки времени". Т.е сказали задаче выполнятся раз в секунду, она и будет выполнятся раз в секунду.


Лучше спросите кто считал время такого "гарантированного" отклика в RTOS.
Принципиальная возможность посчитать не есть еще реальная возможность.
Ни в одной даже самой раскрутой RTOS не найдете формул расчета отклика. О чем бы это могло говорить?
Отклик меняется даже от опций компиляции. Как вы собираетесь его считать?
'реальное время' это маркетинговый термин.
Чаще означает, что дивайс действительно справляется со своей задачей.
Или что быстродействие микроконтроллера адекватно быстроте управляемых процессов.
Go to the top of the page
 
+Quote Post
a9d
сообщение Feb 21 2012, 15:55
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



А почему это его нельзя рассчитать?

Временем переключения контекста можно пренебречь и взять заведомо большим. Тогда влияние компилятора будет списано.
Время выполнение процесса, легко определить.
Учесть прерывания тоже довольно просто. Нужно знать только их максимальное возможно количество.

Да и о каком маркетинге идет речь??
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 21 2012, 16:14
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(AlexandrY @ Feb 21 2012, 17:34) *
Лучше спросите кто считал время такого "гарантированного" отклика в RTOS.
Принципиальная возможность посчитать не есть еще реальная возможность.
Ни в одной даже самой раскрутой RTOS не найдете формул расчета отклика. О чем бы это могло говорить?
Отклик меняется даже от опций компиляции. Как вы собираетесь его считать?
'реальное время' это маркетинговый термин.
Чаще означает, что дивайс действительно справляется со своей задачей.
Или что быстродействие микроконтроллера адекватно быстроте управляемых процессов.


В точку.
Go to the top of the page
 
+Quote Post
Olej
сообщение Feb 28 2012, 22:29
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(MrYuran @ Feb 20 2012, 12:21) *
Да, вы правы.
Это и есть определение реалтайма.
Причем, не только посчитать, но и задать и гарантировать.


... знакомые споры разгорелись с новой силой через 2 года после завершения предыдущего тура santa2.gif

Ну ещё добавьте к этим определениям:

- в системах без вытеснения, однопоточных, не мультизадачных - нет смысла говорить о реалтаймовости: они все реалтайм ... в некотором смысле MS-DOS самый что ни есть реалтайм wink.gif

- в системе, сверх сказанного должно быть гарантировано не возникновение инверсии приоритетов (для этого рассмотрите пример, но как минимум 3-х процессов);

- а для обеспечения пред.п. придумано не так уж много способов: а). наследование приоритетов на примитивах синхронизации или б). граничные приоритеты примитивов синхронизации + в). такие дисциплины диспетчеризации процессов как адаптивная и спорадическая...

А выполнение всех этих условий наблюдаем ох как в мало операционных систем! wink.gif

... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно. wink.gif
Go to the top of the page
 
+Quote Post
a9d
сообщение Feb 28 2012, 23:45
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



А какие ОС "дурят" ?
Можно примеры с пруфиками?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Feb 29 2012, 00:31
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Olej @ Feb 29 2012, 02:29) *
- в системах без вытеснения, однопоточных, не мультизадачных - нет смысла говорить о реалтаймовости: они все реалтайм ... в некотором смысле MS-DOS самый что ни есть реалтайм wink.gif


Да уж.. Этот код который сможет выполнить любой превратит вашу ДОС-РТОС в тыкву
Код
    cli
    in        AL,70h
    or        AL,80h
    out        70h,AL
    jmp         $


Цитата
... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно. wink.gif


"А мужики то не знают" - ПО зачем-то сертифицируют на соответствие стандартам, например такому - ничего не гарантирующему
http://en.wikipedia.org/wiki/DO-178B
Go to the top of the page
 
+Quote Post
Olej
сообщение Feb 29 2012, 01:14
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 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) *

а это? так это рыночные игрища ... с "вытесняюще конкурентов многозадачностью" wink.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Feb 29 2012, 13:49
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Olej @ Feb 29 2012, 05:14) *
завалить всё можно, дело нехитрое ... но к детерминированности или нет поведения это не имеет никакого касательства.


Теперь убираем ДОС-РТОС и запускаем вашу "задачу" нативно и получаем ровно то же что было с ДОС-РТОС - чтобы иметь детерминированность ни одну ф-ию ДОС-РТОС вы не можете вызывать. Поздравляю - с таким же успехом можно из /dev/random засунуть в память что-нибуть и назвать это РТОС.
Go to the top of the page
 
+Quote Post
Olej
сообщение Feb 29 2012, 14:32
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(sasamy @ Feb 29 2012, 16:49) *
Теперь убираем ДОС-РТОС и запускаем вашу "задачу" нативно и получаем ровно то же что было с ДОС-РТОС - чтобы иметь детерминированность ни одну ф-ию ДОС-РТОС вы не можете вызывать.

так это называется : завалить, и дело это не хитрое...
но какое это имеет минимальное отношение к детерминированности переключения контекста в многозадачной среде, когда только и имеет смысл говорить об RT-характеристиках.

Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 1 2012, 09:47
Сообщение #19


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Moderator: Т.к. никаких действий после оглашенного предупреждения я не увидел, то обещанные наказания исполнены. На будущее рекомендую предупреждения не игнорировать.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Shein
сообщение Mar 6 2012, 14:55
Сообщение #20


Участник
*

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



Цитата(AlexandrY @ Feb 21 2012, 17:34) *
Или что быстродействие микроконтроллера адекватно быстроте управляемых процессов.

Это вообще условие желательное для любой системы под управлением контроллера/процессора.

Маркетинг это или нет, но есть , так сказать, просто операционные системы и операционные системы "реального времени". Основное отличие в принципах построения и требованиях предъявляемых к планировщику. Если у первых (та же Винда) трудно прогнозировать когда, после возникновения события, будет дана возможность его обработать. (Хотя и под управлением Win ухитряются строить системы real time), то у RTOS с определенной/заданной погрешностью это просчитать/измерить все же можно. И, с определенным допуском, получается повторяемый результат.

Цитата(Olej @ Feb 29 2012, 00:29) *
... так что, господа, когда вам обещают RT, то в большинстве случаев вас дурят ... пользуясь тем, что проверить это очень трудно. wink.gif

sm.gif я бы сказал не дурят, а не договаривают всей правды. Но мы же тоже имеем голову на плечах. wink.gif Для каждого инструмента есть свое применение и важно понимать что для чего.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 6 2012, 17:24
Сообщение #21


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 это глубоко контекстно зависимый термин.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Mar 7 2012, 05:47
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(AlexandrY @ Mar 6 2012, 21:24) *
На самом деле ИМХО большинство подразумевает быстродействие, и я полагаю что на современном этапе для RTOS с виртуализацией памяти это время 10 мкс, для RTOS без виртуализации это 1 мкс и меньше.


Виртуальная память может и не требовать дополнительных расходов - см FCSE на arm, при таком подходе инвалидация cache и tlb не требуется при переключении контекста.
Go to the top of the page
 
+Quote Post
Shein
сообщение Mar 7 2012, 14:23
Сообщение #23


Участник
*

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



Цитата(AlexandrY @ Mar 6 2012, 19:24) *
Никто не скажет что Windows 7 не среагирует в течении часа на какое либо одно событие. И это будет повторяемый и вполне детерминированный результат.
А значит для потока таких событий Winows 7 вполне система реального времени.

В общем говорим об одном и том же, только немного по разному sm.gif Для конкретной системы, и ее требований к времени реакции, принимается решение о применении той или иной ОС или о не применении ОС.
В микросекундах, честно говоря, никогда не анализировал что относят к RTOS, а что нет. Точнее смотрел на временные параметры, не особо акцингтируя внимание на собственно названии.
Go to the top of the page
 
+Quote Post
vshemm
сообщение Apr 1 2012, 18:54
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Резюме: RTOS в "общепринятом" смысле не существует и не может существовать.
О чем еще AlexandrY в первом посте намекал, впрочем, он так и не ответил на вопрос ТС-а.

Предлагаю поразмышлять над следующим:
1. Сколько выполняется операция "ноп" на интеловских процессорах? База - http://www.intel.com/content/www/us/en/pro...er-manuals.html
2. Windows XP - real time система по POSIX.1?
3. QNX (VxWorks и т.д.) - real time системы по POSIX.1?
4. Наследование приоритетов (как и ceiling) избавляет от инверсии?
5. Спорадическая диспетчеризация нужна для избавления от инверсии приоритетов? А зачем тогда?

P.S. AlexandrY в ударе sm.gif
Go to the top of the page
 
+Quote Post
kikos
сообщение Jun 4 2012, 13:11
Сообщение #25


Участник
*

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



Чтоб дурить эффективнее придуман термин "Soft real-time systems"


Цитата(AlexandrY @ Mar 6 2012, 21:24) *
На самом деле ИМХО большинство подразумевает быстродействие, и я полагаю что на современном этапе для RTOS с виртуализацией памяти это время 10 мкс, для RTOS без виртуализации это 1 мкс и меньше.
Т.е. если ось на может уложиться с переключением контекста железно в 10 мкс то рано или поздно пойдут слухи что она не RTOS.


sm.gif как Вы думаете, сколько и какие OS не впишутся в 10 мкс, если процессор работает на ~80MHz и кеши выключены ?


Цитата(vshemm @ Apr 1 2012, 22:54) *
Резюме: RTOS в "общепринятом" смысле не существует и не может существовать.

согласен, однако существуют реал тайм системы т.е. HW + SW ( OS + прикладная часть), которые удовлетворяют по реал тайму в конкретных узких областях применения, в определенном месте в определенное время.... sm.gif как то выше изложил AlexandrY

Go to the top of the page
 
+Quote Post
dch
сообщение Jun 5 2012, 03:22
Сообщение #26


Профессионал
*****

Группа: Участник
Сообщений: 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), не особо задумываясь, как там будет дальше, если не находит, то начинает "тасовать" страницы, дефрагментировать.

Опять же это не правильно прикладные задачи могут использовать статическое выделение памяти, и не обращаться к малок, и работать с более высоким приоритетом. У Вас всегда есть средние величины и отклонения от них, Вы это должны понимать и правильно отрабатывать ситуацию когда отклонение велико.
Сертифицируете Вы всю систему целиком, там есть и ос и Ваша програмка и куча программок сторонних производителей которые в общемто работают не гарантированным образом.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 19:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01631 секунд с 7
ELECTRONIX ©2004-2016