|
Выпущена scmRTOS 4.0., Ура, товарищи! :) |
|
|
|
 |
Ответов
|
Apr 16 2012, 04:52
|

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 мс - и тогда я получил желаемый результат. Почему бы просто не вынести код этой библиотеки просто в отдельный процесс, и пусть он себе там живёт? Приоритет установить из требований приложения
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 16 2012, 05:48
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(dxp @ Apr 16 2012, 08:52)  Почему бы просто не вынести код этой библиотеки просто в отдельный процесс, и пусть он себе там живёт? Приоритет установить из требований приложения У меня шел непрерывный поток данных, который надо было писать библиотечными функциями на карту. Я пробовал сделать так, как вы предлагаете - получалось, что отображение и реакция на кнопки тормозилась. Если бы я мог указать в библиотеки места блокировки - расставить семафоры и т.п., то этот вариант сработал. Для меня это единственный случай, когда нужны были одинаковые приоритеты. Но он определил мой выбор RTOS.
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
|
Apr 16 2012, 06:35
|

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. Точнее, то, что от неё осталось после его доработок.  QUOTE (VslavX @ Apr 16 2012, 13:19)  И реально этот round-robin используется, недавний конкретный пример - потоки выполнения CGI в HTTP-сервере. С точки зрения системы, как бы не должны обработчики двух одновременных HTTP-запросов между собой по приоритетам отличаться. Или если у процессора два абсолютно одинаковых MAC-а. ИМХО, некрасиво если потоки драйвера одинакового "железа" будут иметь различные приоритеты. Это почему ещё? Это зависит от приложения. Кто сказал, что МАСи должны иметь одинаковые приоритеты? Если по одному из них трафик большой, а по второму малый, то вот и разница.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 16 2012, 08:40
|

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 - есть вот такая тема, там проведено практическое исследование вопроса (в разрезе по ОС и процессорам  ). Поэтому я продолжаю настаивать что "не так уж оно и накладно"  . Цитата(dxp @ Apr 16 2012, 09:35)  Это почему ещё? Это зависит от приложения. Кто сказал, что МАСи должны иметь одинаковые приоритеты? Если по одному из них трафик большой, а по второму малый, то вот и разница. Я просто привел в качестве примера проект из своей практики где MAC-и абсолютно идентичны, таких проектов у меня было несколько - не такая уж это и редкая ситуация. Кстати, схема приоритетов с поддержкой round-robin для меня была одним из плюсов, который повлиял на мой выбор ОС. Цитата(dxp @ Apr 16 2012, 10:46)  Тем более, зачем тут лишние накладняки на передачу управления в непредсказуемый момент? А код в вытесняемой среде надо всегда писать с учетом того что в непредсказуемый момент заберут управление. Я не хочу сейчас дискутировать о достоинствах и недостатках кооперативной и/или вытесняемой многозадачности. Просто у пользователей TNKernel всегда есть выбор между кооперативом и вытесняйкой, а вот у пользователей SCM - выбора нет, только кооператив (ессно, речь о задачах с одинаковым приоритетом).
|
|
|
|
|
Apr 16 2012, 09:11
|

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). Более чем в полтора раза однако  Та не™ Сравнивать надо на одинаковых процах, одинаковый прикладной код, одинаковым методом (скопом импульс на одной и той же ножке наблюдаем, например), с одинаковыми опциями компилятора, и исполнением из одного и того же места (из флеша, да  , и с одинаковыми waitstates). В упомянутой теме апдейт давний написан - включаешь у компилятора оптимизацию по скорости - и уже имеем 2.50uS на 1768@100МГц для TNKernel. BTW, я там еще оптимизаций добавил, надо бы потестить - а то что-то давно я ерундой не страдал
|
|
|
|
Сообщений в этой теме
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 страниц
1 2 3 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|