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

 
 
> Выпущена scmRTOS 4.0., Ура, товарищи! :)
AHTOXA
сообщение Apr 5 2012, 12:57
Сообщение #1


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Собственно, субж.
Ссылки:

Кроме того, незадолго до этого была выпущена версия 3.11. Это завершающая, багофиксная версия 3.x. Ссылки:


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Apr 16 2012, 04:52
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Aprox @ Apr 15 2012, 15:20) *
Отдельные стеки, сохранять контекст каждой задачи, уже не неужно. Соответственно, одна из главных фич многозадачных OS с приходом C++ выглядит ненужной.

Это надо выбить в мраморе и покрасить золотыми буквами. И разместить в аллее троллинга.

QUOTE (sasamy @ Apr 15 2012, 18:08) *
" Ни один язык не заменит ОС, тем более убогий С++.

Да уж куда ему до мегаязыка Цэ.

QUOTE (Lotor @ Apr 16 2012, 11:20) *
Я согласен, что введение одинаковых приоритетов будет накладно. Просто я прекрасно обходился конечными автоматами, пока не наткнулся на то, что код чужой библиотеки надо было "параллелить" со своими задачами. Срочно пришлось смотреть RTOS, которые имели порты под мой мк - среди них была и ваша. Но, т.к. явно места блокировки в чужой библиотеки указать было затруднительно, пришлось выбрать FREERTOS, задать задачам одинаковый приоритет, переключение контекста 1 мс - и тогда я получил желаемый результат.

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Lotor
сообщение Apr 16 2012, 05:48
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(dxp @ Apr 16 2012, 08:52) *
Почему бы просто не вынести код этой библиотеки просто в отдельный процесс, и пусть он себе там живёт? Приоритет установить из требований приложения

У меня шел непрерывный поток данных, который надо было писать библиотечными функциями на карту. Я пробовал сделать так, как вы предлагаете - получалось, что отображение и реакция на кнопки тормозилась. Если бы я мог указать в библиотеки места блокировки - расставить семафоры и т.п., то этот вариант сработал. Для меня это единственный случай, когда нужны были одинаковые приоритеты. Но он определил мой выбор RTOS.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 16 2012, 06:35
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Lotor @ Apr 16 2012, 12:48) *
У меня шел непрерывный поток данных, который надо было писать библиотечными функциями на карту. Я пробовал сделать так, как вы предлагаете - получалось, что отображение и реакция на кнопки тормозилась. Если бы я мог указать в библиотеки места блокировки - расставить семафоры и т.п., то этот вариант сработал. Для меня это единственный случай, когда нужны были одинаковые приоритеты. Но он определил мой выбор RTOS.

Всё равно не понял. Почему тормозилось? Какой-то более приоритетный код надолго отбирал управление? Или этот код библиотеки тормозил остальное?

Если второе, то не очень понятно, почему ему не понизить приоритет, чтобы кнопки не блокировал?

QUOTE (VslavX @ Apr 16 2012, 13:19) *
Не очень-то оно и накладно.

Это что считать наклАдным. Переключение контекста сама по себе приличная по объёму инструкций операция. И отдельный стек. Я понимаю, что при наличие 32К оперативы выделить лишних полкилобайта особых вопросов не вызывает. Но чем это лучше, чем просто выполнять задания по очереди в одном процессе?

QUOTE (VslavX @ Apr 16 2012, 13:19) *
Например, TNKernel поддерживает и уровни приоритетов и round-robin в пределах каждого приоритета, а время планирования и переключения контекста такое же (или даже лучше, правда новую версию SCM4.0 я не тестил) как у SCM.

Чудес-то не бывает. Если планировщик более сложный, то и время его работы тоже будет больше. В своё время сранивал с uC-OS/II, там карта процессов состоит из распределённой структуры и приоритет вычисляется в два приёма - время передачи управления было в 2-2.5 раза больше. При прочих равных. Именно время передачи управления, а не переключение контекстов. Время переключения контекстов само по себе зависит от размера контекста, от процессора и его тактовой, но не от ОС.

Другое дело, что кому-то пофиг, что время передачи управления в несколько раз меньше. Например, zltigo прямо говорил, что ему не важно, сколько он там времени тратит, на его задачах всё успевает, а наличие возможностей ему нравится, поэтому его выбор FreeRTOS. Точнее, то, что от неё осталось после его доработок. sm.gif

QUOTE (VslavX @ Apr 16 2012, 13:19) *
И реально этот round-robin используется, недавний конкретный пример - потоки выполнения CGI в HTTP-сервере. С точки зрения системы, как бы не должны обработчики двух одновременных HTTP-запросов между собой по приоритетам отличаться. Или если у процессора два абсолютно одинаковых MAC-а. ИМХО, некрасиво если потоки драйвера одинакового "железа" будут иметь различные приоритеты.

Это почему ещё? Это зависит от приложения. Кто сказал, что МАСи должны иметь одинаковые приоритеты? Если по одному из них трафик большой, а по второму малый, то вот и разница.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
VslavX
сообщение Apr 16 2012, 08:40
Сообщение #5


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(dxp @ Apr 16 2012, 09:35) *
Это что считать наклАдным. Переключение контекста сама по себе приличная по объёму инструкций операция. И отдельный стек. Я понимаю, что при наличие 32К оперативы выделить лишних полкилобайта особых вопросов не вызывает. Но чем это лучше, чем просто выполнять задания по очереди в одном процессе?

Оперативы ровно столько же - ведь меняется только схема приоритетов, а количество процессов и их стеки остаются теми же самыми. Или Вы про "сознательный" встроенный кооператив с явными yield говорите? Такой кооператив не всегда приемлем - в тех же CGI - там скрипты давно понаписаны, к тому же пишу их не я, зачем людей (да и специализация у них на сайтостроительстве и контенте) еще и кооперативом грузить. Я кооператив не отрицаю и не так уж редко им пользуюсь (для той же экономии числа процессов и стеков), но, увы, оно не всегда "в тему".

Цитата(dxp @ Apr 16 2012, 09:35) *
Чудес-то не бывает. Если планировщик более сложный, то и время его работы тоже будет больше. В своё время сранивал с uC-OS/II, там карта процессов состоит из распределённой структуры и приоритет вычисляется в два приёма - время передачи управления было в 2-2.5 раза больше. При прочих равных. Именно время передачи управления, а не переключение контекстов. Время переключения контекстов само по себе зависит от размера контекста, от процессора и его тактовой, но не от ОС.

От процессора зависит само собой. И от ОС зависит - от планировщика, схемы данных диспетчера, от активированных фич и просто от качества кода. Я сравнивал uC/OS, FreeRTOS, SCM и TNKernel - есть вот такая тема, там проведено практическое исследование вопроса (в разрезе по ОС и процессорам sm.gif). Поэтому я продолжаю настаивать что "не так уж оно и накладно" sm.gif.

Цитата(dxp @ Apr 16 2012, 09:35) *
Это почему ещё? Это зависит от приложения. Кто сказал, что МАСи должны иметь одинаковые приоритеты? Если по одному из них трафик большой, а по второму малый, то вот и разница.

Я просто привел в качестве примера проект из своей практики где MAC-и абсолютно идентичны, таких проектов у меня было несколько - не такая уж это и редкая ситуация. Кстати, схема приоритетов с поддержкой round-robin для меня была одним из плюсов, который повлиял на мой выбор ОС.


Цитата(dxp @ Apr 16 2012, 10:46) *
Тем более, зачем тут лишние накладняки на передачу управления в непредсказуемый момент?

А код в вытесняемой среде надо всегда писать с учетом того что в непредсказуемый момент заберут управление.
Я не хочу сейчас дискутировать о достоинствах и недостатках кооперативной и/или вытесняемой многозадачности. Просто у пользователей TNKernel всегда есть выбор между кооперативом и вытесняйкой, а вот у пользователей SCM - выбора нет, только кооператив (ессно, речь о задачах с одинаковым приоритетом).
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 16 2012, 08:50
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(VslavX @ Apr 16 2012, 14:40) *
Поэтому я продолжаю настаивать что "не так уж оно и накладно" sm.gif.

ваш вариант TNKernel : 2.83uS для LPC1768, @100МГц,
scmRTOS: 2.55uS STM32F103 @72MHz (приведённое к 100МГц - 1.83uS).
Более чем в полтора раза однако sm.gif



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
VslavX
сообщение Apr 16 2012, 09:11
Сообщение #7


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(AHTOXA @ Apr 16 2012, 11:50) *
ваш вариант TNKernel : 2.83uS для LPC1768, @100МГц,
scmRTOS: 2.55uS STM32F103 @72MHz (приведённое к 100МГц - 1.83uS).
Более чем в полтора раза однако sm.gif

Та не™ biggrin.gif
Сравнивать надо на одинаковых процах, одинаковый прикладной код, одинаковым методом (скопом импульс на одной и той же ножке наблюдаем, например), с одинаковыми опциями компилятора, и исполнением из одного и того же места (из флеша, да sm.gif, и с одинаковыми waitstates). В упомянутой теме апдейт давний написан - включаешь у компилятора оптимизацию по скорости - и уже имеем 2.50uS на 1768@100МГц для TNKernel. BTW, я там еще оптимизаций добавил, надо бы потестить - а то что-то давно я ерундой не страдал biggrin.gif

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AHTOXA   Выпущена scmRTOS 4.0.   Apr 5 2012, 12:57
- - haker_fox   Искренние поздравления! Использовал несколько ...   Apr 6 2012, 02:27
- - Fat Robot   Молодцы!   Apr 6 2012, 09:10
- - Aprox   Уважаемые авторы новой 4-ой версии! Позвольте...   Apr 9 2012, 18:32
|- - _Артём_   Цитата(Aprox @ Apr 9 2012, 21:32) Или все...   Apr 9 2012, 19:00
||- - Aprox   Цитата(_Артём_ @ Apr 9 2012, 23:00) А что...   Apr 10 2012, 09:02
||- - demiurg_spb   Цитата(Aprox @ Apr 10 2012, 13:02) Зато к...   Apr 10 2012, 10:12
|||- - dxp   QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ...   Apr 10 2012, 10:17
||||- - demiurg_spb   ответил в предыдущем посте.   Apr 10 2012, 10:21
|||- - dxp   QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ...   Apr 10 2012, 13:33
||- - Сергей Борщ   QUOTE (Aprox @ Apr 10 2012, 12:02) Мне пр...   Apr 10 2012, 10:13
|||- - Aprox   Цитата(Сергей Борщ @ Apr 10 2012, 14:13) ...   Apr 10 2012, 19:47
|||- - aaarrr   Цитата(Aprox @ Apr 10 2012, 23:47) Я посм...   Apr 10 2012, 20:12
|||- - demiurg_spb   Цитата(Aprox @ Apr 10 2012, 23:47) ...   Apr 11 2012, 04:54
|||- - Сергей Борщ   QUOTE (Aprox @ Apr 10 2012, 22:47) Видите...   Apr 11 2012, 05:48
|||- - Aprox   Цитата(Сергей Борщ @ Apr 11 2012, 09:48) ...   Apr 11 2012, 12:50
|||- - mdmitry   Цитата(Aprox @ Apr 11 2012, 16:50) А юзер...   Apr 11 2012, 13:43
|||- - AHTOXA   Цитата(Aprox @ Apr 11 2012, 18:50) Уточни...   Apr 11 2012, 14:44
|||- - Aprox   Цитата(AHTOXA @ Apr 11 2012, 18:44) Обраб...   Apr 11 2012, 19:11
|||- - AHTOXA   Цитата(Aprox @ Apr 12 2012, 00:24) OS по ...   Apr 11 2012, 19:12
||||- - Aprox   Цитата(AHTOXA @ Apr 11 2012, 23:12) У мен...   Apr 12 2012, 07:57
||||- - Lotor   Цитата(Aprox @ Apr 12 2012, 11:57) Чтобы ...   Apr 12 2012, 08:29
||||- - MrYuran   Цитата(Aprox @ Apr 12 2012, 11:57) Дело з...   Apr 12 2012, 08:43
||||- - Aprox   Цитата(MrYuran @ Apr 12 2012, 11:43) ScmR...   Apr 12 2012, 11:54
|||- - Сергей Борщ   QUOTE (Aprox @ Apr 11 2012, 22:11) Работа...   Apr 11 2012, 19:56
||- - _pv   Цитата(Aprox @ Apr 10 2012, 16:02) Зато к...   Apr 10 2012, 11:35
||- - AHTOXA   Цитата(Aprox @ Apr 10 2012, 15:02) Вот, я...   Apr 10 2012, 12:31
||- - _Артём_   Цитата(AHTOXA @ Apr 10 2012, 15:31) Вложе...   Apr 10 2012, 14:11
||- - AHTOXA   Цитата(_Артём_ @ Apr 10 2012, 20:11) Може...   Apr 10 2012, 16:56
||- - _Артём_   Цитата(AHTOXA @ Apr 10 2012, 19:56) в scm...   Apr 10 2012, 18:08
|||- - AHTOXA   Цитата(_Артём_ @ Apr 11 2012, 00:08) Ну д...   Apr 11 2012, 07:26
|||- - _Артём_   Цитата(AHTOXA @ Apr 11 2012, 10:26) Ну, у...   Apr 11 2012, 17:09
|||- - AHTOXA   Цитата(_Артём_ @ Apr 11 2012, 23:09) 70 г...   Apr 11 2012, 18:07
||- - Aprox   Цитата(AHTOXA @ Apr 10 2012, 20:56) Нет, ...   Apr 10 2012, 20:30
||- - aaarrr   Цитата(Aprox @ Apr 11 2012, 00:30) Тогда ...   Apr 10 2012, 20:54
|- - bookevg   Цитата(Aprox @ Apr 9 2012, 22:32) 1. Вы ...   Apr 9 2012, 19:05
|- - Сергей Борщ   QUOTE (Aprox @ Apr 9 2012, 21:32) 1. Вы ...   Apr 9 2012, 20:53
- - Anatoly74   Найдена опечатка в порте AVR, Common/OS_Kernel.h В...   Apr 11 2012, 07:34
|- - _pv   Цитата(Anatoly74 @ Apr 11 2012, 14:34) На...   Apr 11 2012, 09:05
||- - demiurg_spb   Цитата(_pv @ Apr 11 2012, 12:05) а будет ...   Apr 11 2012, 09:08
|- - Сергей Борщ   QUOTE (Anatoly74 @ Apr 11 2012, 10:34) До...   Apr 11 2012, 10:23
||- - ReAl   Цитата(Aprox @ Apr 11 2012, 15:50) Но ни ...   Apr 11 2012, 13:48
||- - Сергей Борщ   QUOTE (ReAl @ Apr 11 2012, 16:48) Сдвигае...   Apr 11 2012, 14:03
||- - mdmitry   Получается, что в текущем варианте можно использо...   Apr 11 2012, 14:35
||- - Сергей Борщ   QUOTE (mdmitry @ Apr 11 2012, 17:35) Полу...   Apr 11 2012, 14:45
||- - mdmitry   Зануда: А в документации страницы с 115 по 118, ...   Apr 11 2012, 14:56
|- - ReAl   Цитата(Anatoly74 @ Apr 11 2012, 10:34) На...   Apr 11 2012, 13:39
- - mdmitry   Aprox, Вас ни кто не заставляет использовать эту О...   Apr 11 2012, 20:06
- - dxp   QUOTE (mdmitry @ Apr 11 2012, 21:56) Зану...   Apr 12 2012, 03:44
- - viterra   Дело в том, что с типами данных действительно БЕДА...   Apr 12 2012, 10:05
- - IgorKossak   Хочется надеяться, что на том и порешили. Дальше, ...   Apr 12 2012, 12:24
|- - Aprox   Цитата(IgorKossak @ Apr 12 2012, 16:24) Д...   Apr 12 2012, 17:42
|- - IgorKossak   Цитата(Aprox @ Apr 12 2012, 20:42) А по д...   Apr 12 2012, 17:56
|- - MrYuran   Цитата(Aprox @ Apr 12 2012, 21:42) А по д...   Apr 12 2012, 17:57
|- - ReAl   Цитата(MrYuran @ Apr 12 2012, 20:57) А вы...   Apr 12 2012, 20:33
|- - Aprox   Цитата(ReAl @ Apr 13 2012, 00:33) Я думаю...   Apr 13 2012, 07:18
|- - Nixon   Цитата(Aprox @ Apr 13 2012, 10:18) Если ч...   Apr 13 2012, 07:25
||- - Aprox   Цитата(Nixon @ Apr 13 2012, 11:25) Отличн...   Apr 14 2012, 09:01
|- - haker_fox   QUOTE (Aprox @ Apr 13 2012, 15:18) В моем...   Apr 13 2012, 15:24
|- - ReAl   Цитата(Aprox @ Apr 13 2012, 10:18) Нет, н...   Apr 13 2012, 18:47
- - Nixon   Хотелось бы в рантайме иметь возможность определен...   Apr 12 2012, 12:33
|- - mdmitry   Цитата(Nixon @ Apr 12 2012, 16:33) Хотело...   Apr 12 2012, 12:52
|- - Сергей Борщ   QUOTE (Nixon @ Apr 12 2012, 15:33) Хотело...   Apr 12 2012, 12:59
- - Nixon   Все правильно, но из плагина я читаю переменную ил...   Apr 12 2012, 13:04
|- - _Артём_   Цитата(Nixon @ Apr 12 2012, 16:04) Все пр...   Apr 12 2012, 13:30
- - dxp   QUOTE (IgorKossak @ Apr 13 2012, 00:56) П...   Apr 13 2012, 03:35
|- - ReAl   Цитата(dxp @ Apr 13 2012, 06:35) Ну, а си...   Apr 13 2012, 05:18
|- - IgorKossak   Цитата(dxp @ Apr 13 2012, 06:35) Одну я п...   Apr 13 2012, 06:42
- - Lotor   Позиция авторов, что задачи с одинаковым приоритет...   Apr 13 2012, 06:44
- - dxp   QUOTE (ReAl @ Apr 13 2012, 12:18) Кстати,...   Apr 13 2012, 13:08
|- - Lotor   Цитата(dxp @ Apr 13 2012, 17:08) Смысл в ...   Apr 13 2012, 13:46
|- - IgorKossak   Цитата(Lotor @ Apr 13 2012, 16:46) ... та...   Apr 13 2012, 14:29
- - Nixon   Хотел бы еще добавить свои пять копеек. IMHO полез...   Apr 13 2012, 13:27
- - dxp   QUOTE (Nixon @ Apr 13 2012, 20:27) По пов...   Apr 13 2012, 17:29
|- - Lotor   Цитата(dxp @ Apr 13 2012, 21:29) Да, тему...   Apr 16 2012, 04:20
|- - VslavX   Цитата(Lotor @ Apr 16 2012, 07:20) Я согл...   Apr 16 2012, 06:19
- - ReAl   Вы её просто не умеете готовить. Как, видимо, и лю...   Apr 14 2012, 10:38
|- - Aprox   Цитата(ReAl @ Apr 14 2012, 14:38) Если Вы...   Apr 15 2012, 08:20
|- - sasamy   Цитата(Aprox @ Apr 15 2012, 12:20) одна и...   Apr 15 2012, 11:08
|- - AHTOXA   Цитата(Aprox @ Apr 15 2012, 14:20) Зачем ...   Apr 15 2012, 13:57
|- - ReAl   Цитата(Aprox @ Apr 15 2012, 11:20) Видите...   Apr 15 2012, 15:46
|- - ReAl   Цитата(dxp @ Apr 16 2012, 09:35) Кто сказ...   Apr 16 2012, 07:29
||- - dxp   QUOTE (ReAl @ Apr 16 2012, 14:29) Та не™,...   Apr 16 2012, 07:46
||- - Lotor   Цитата(dxp @ Apr 16 2012, 11:46) Кстати, ...   Apr 16 2012, 08:44
|- - Lotor   Цитата(dxp @ Apr 16 2012, 10:35) Всё равн...   Apr 16 2012, 07:29
|- - AHTOXA   У меня нет ни IAR-а ни LCP17xx BTW, а не было ли ...   Apr 16 2012, 09:27
|- - VslavX   Цитата(AHTOXA @ Apr 16 2012, 12:27) У мен...   Apr 16 2012, 09:34
|- - AHTOXA   Цитата(VslavX @ Apr 16 2012, 15:34) Думаю...   Apr 16 2012, 09:48
|- - VslavX   Цитата(AHTOXA @ Apr 16 2012, 12:48) Предс...   Apr 16 2012, 10:09
|- - AHTOXA   Цитата(VslavX @ Apr 16 2012, 16:09) Это в...   Apr 16 2012, 11:12
- - dxp   QUOTE (VslavX @ Apr 16 2012, 15:40) Опера...   Apr 16 2012, 11:03
- - VslavX   Цитата(dxp @ Apr 16 2012, 14:03) Я про ва...   Apr 16 2012, 11:17
- - dxp   QUOTE (VslavX @ Apr 16 2012, 18:17) По зн...   Apr 16 2012, 11:47
- - VslavX   Цитата(dxp @ Apr 16 2012, 14:47) Это хоро...   Apr 16 2012, 11:59
3 страниц V   1 2 3 >


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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 00:31
Рейтинг@Mail.ru


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