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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> РТОС системы "реал тайм" ?
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
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

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:28
Рейтинг@Mail.ru


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