|
Выпущена 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, 07:46
|

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

|
QUOTE (ReAl @ Apr 16 2012, 14:29)  Та не™, у Вячеслава по обеим (одинаково) большой :-) Тем более, зачем тут лишние накладняки на передачу управления в непредсказуемый момент? QUOTE (Lotor @ Apr 16 2012, 14:29)  Проще всего мою ситуацию можно представить как две задачи, каждой из которой нужно постоянно выполняться и нельзя указать места входа в блокировку. Если повысить приоритет одной из них, страдает другая, т.к. отбирается управление на достаточно долгое время. Возможно можно было обойтись разными приоритетами, и дело в моем малом опыте в этих вопросах. Но наиболее просто такое решилось именно одинаковыми приоритетами.  Внешне ситуация понятна. Но внутри-то всегда особенности. Скажем, вот обработка кнопок управления - она выполняется очень периодически. Т.е. там большие паузы между реальной работой. Поэтому, передвинув, задачу в приоритет выше, чем у той, которая пишет на карту, никаких проблем возникнуть не должно - приоритетная задача выполняется коротко, а скважность большая. Кстати, про задачу, которая пишет на карту, - неужели она съедает там всё время? Ведь сам процесс записи на такой носитель как правило требует значительных циклов ожидания, пока там очередная порция запишется - это ведь не в оперативу писать. И вот в эти моменты и отдавать управление. Или там окончания записи поллингом проверяется?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 16 2012, 08:44
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(dxp @ Apr 16 2012, 11:46)  Кстати, про задачу, которая пишет на карту, - неужели она съедает там всё время? Ведь сам процесс записи на такой носитель как правило требует значительных циклов ожидания, пока там очередная порция запишется - это ведь не в оперативу писать. И вот в эти моменты и отдавать управление. Или там окончания записи поллингом проверяется? Поллингом - использовал чужой драйвер, а допиливать "под себя" было некогда. Хотя по идеи, если время переключения контекста мало, то и в поллинге можно вставить небольшие задержки и выкрутиться. Так или иначе с одинаковыми приоритетами решить подобные задачи проще всего, особенно для не очень искушенных людей в подобных вопросах.
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
Сообщений в этой теме
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   Lotor Цитата(dxp @ Apr 16 2012, 10:35) Всё равн... Apr 16 2012, 07:29   VslavX Цитата(dxp @ Apr 16 2012, 09:35) Это что ... Apr 16 2012, 08:40    AHTOXA Цитата(VslavX @ Apr 16 2012, 14:40) Поэто... Apr 16 2012, 08:50     VslavX Цитата(AHTOXA @ Apr 16 2012, 11:50) ваш в... Apr 16 2012, 09:11      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 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|