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

 
 
> scmRTOS - где семафоры?
bmf
сообщение Jun 9 2005, 09:09
Сообщение #1


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

Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831



Хотел попробовать, стал разбираться и не нашел семафоров.
Может я чего не понял?
Есть TEventFlag - но это немножко другое (после "сигнала" все процессы,
ожидающие указанное событие, будут переведены в состояние готовых к выполнению)
Более похож TMutex - но тоже вроде не то.
Кто работал? В чем фишка?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bmf
сообщение Jun 10 2005, 08:42
Сообщение #2


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

Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831



Цитата
Надо бы уточнить, что Вы понимаете под термином "семафар". Мутекс - семфор. И флаг события тоже семафор. Нет счетных семафоров? Да, нету. А они нужны? Приведите реальный пример на мелкой однокристаллке, где они нужны.

Вообще то чаще нужен простой бинарный. А Мутекс и Флаг события - работают здесь по другому, обратите внимание в обычном семафоре после "сигнал" только событие с большим приоритетом переведется в состояние работы, а у флага - все события которые имеют этот флаг, сначала естественно с вышим преоритетом, затем и все остальные. Совсем другая функциональность. Я не знаю никакой другой RTOS, гдебы не было этих обычных семафоров как базовый элемент взаимодействия.

По поводу безапелляционности высказываний автора, меня больше задело не содержание(хотя здесь можно поспорить), а форма и категоричность высказываний: "убогий", "два норвега" "о чем думали" - для официальной документации в русском языке есть более мягкие выражения, а то создается впечатление, что все кто юзает ATMEL тоже убогие и недалекие.

По архитектуре: - я в основною юзаю DSP - там тоже применяют два стека (реально даже больше - еще для аппаратных циклов)- только это преимущество - быстрее реакция на прерывание
А что медленно работает с памятью - так это за один так пре тех частотах не зделаешь, у микрочипа любая команда 4 такта. И большое колличество регистров наверно как раз и должно компенсировать.
Так что все дело с какой стороны смотреть.
И все вышесказонное естественно ИМХНО.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 10 2005, 09:57
Сообщение #3


Adept
******

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



Цитата(bmf @ Jun 10 2005, 14:42)
Цитата
Надо бы уточнить, что Вы понимаете под термином "семафар". Мутекс - семфор. И флаг события тоже семафор. Нет счетных семафоров? Да, нету. А они нужны? Приведите реальный пример на мелкой однокристаллке, где они нужны.

Вообще то чаще нужен простой бинарный. А Мутекс и Флаг события - работают здесь по другому, обратите внимание в обычном семафоре после "сигнал" только событие с большим приоритетом переведется в состояние работы, а у флага - все события которые имеют этот флаг, сначала естественно с вышим преоритетом, затем и все остальные. Совсем другая функциональность. Я не знаю никакой другой RTOS, гдебы не было этих обычных семафоров как базовый элемент взаимодействия.

Флаг - да. А если события ожидают несколько процессов, то как их все проинформировать? Заводить для каждого объект и сигналить всю пачку? Некузяво. Но если вас такое устраивает, то и заводите просто для каждого процесса свой TEventFlag, получите ровно то, что хотите. Флаг событий не заставляет использовать его одного.

У меня, кстати, за все время работы ни разу не возникло необходимости (ситуации) в той функциональности, за которую Вы ратуете - чтобы событие обрабатывал только один процесс. Ведь тут пролучается непредсказуемость: если события ждут несколько процессов, какой из них получит управление?

С другой стороны, когда несколько процессов ждут какого-то события, это, как правило, означает, что событие это широковещательное. Такая ситуация у меня была: пришла команда снаружи, все ожидающие ее проснулись. Коротко, предсказуемо и эффективно.

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

Каких сервисов Вам не хватает?

Цитата(bmf @ Jun 10 2005, 14:42)
По поводу безапелляционности высказываний автора, меня больше задело не содержание(хотя здесь можно поспорить),

У Вас есть дельные возражения по существу сказанного в моем предыдущем посте (об указателе стека, регистрах...)? Изложите, интересно узнать.

Цитата(bmf @ Jun 10 2005, 14:42)
а форма и категоричность высказываний: "убогий", "два норвега" "о чем думали" - для официальной документации в русском языке есть более мягкие выражения,

Ну вообще-то, это не официальный документ, а частное описалово. Стиль там вполне свободный и даже анекдоты кое-где в качестве эпиграфов присутствуют. Т.ч. все вполне в "духе". smile.gif

Цитата(bmf @ Jun 10 2005, 14:42)
а то создается впечатление, что все кто юзает ATMEL тоже убогие и недалекие.

А вот это Вы зря - ничего подобного там нет и не просматривается. Есть только то, что сказано. И сказано по делу: в AVR указатель стека кривой! Это факт! Указатель стека - это один из ключевых компонентов процессора, "заточенного" под использование ЯВУ Си - об этом (особенно первое время) Атмел свистел на всех углах, заявляя, что, дескать, соорудили офигительно эффективный для С процессор, не в последней степени благодаря тесному сотрудничеству со специалистами по компиляторам фирмы IAR Systems. Как же так?!! Они его (процессор) специально делали эффективным для С, а указатель стека - ключевой компонент для эффктивной косвенной адресации, которую интенсивно используют С-компиляторы, - сделали убогим (именно убогим, если выражаться цензурно smile.gif). Что-то тут не складывается.

Цитата(bmf @ Jun 10 2005, 14:42)
По архитектуре: - я в основною юзаю DSP - там тоже применяют два стека (реально даже больше - еще для аппаратных циклов)- только это преимущество - быстрее реакция на прерывание

Извините, у DSP стек возвратов частенько аппаратный. Либо имеет отдельную память со своими шинами для этого. Чтобы параллельности достичь. А на AVR два стека тут совершенно ничего не дают - шина-то одна, все равно адрес возврата в память последовательно складыватся/извлекается - из-за чего и время реакции на прерывание 4 такта. Никакой параллельности нет. Недодуманный он, недоделанный.

Цитата(bmf @ Jun 10 2005, 14:42)
А что медленно работает с памятью - так это за один так пре тех частотах не зделаешь, у микрочипа любая команда 4 такта. И большое колличество регистров наверно как раз и должно компенсировать.
Так что все дело с какой стороны смотреть.
*

А с какой не смотри - вон у ТМСов с черными финами тактовые не в пример выше, а в память за такт лазят. Да еще и два раза (параллельно). Какая проблема за такт обратится к памяти? Частоты, можно сказать, детские. И ограничиваются они не логикой, а флешью. Вон FPSLIC из ОЗУ весь работает, так там он с самого начала, afair, за 30 МГц имел частоты. Не проблема. Думается, что и этот момент просто недодуманный, недоделанный. Как и перебор с регистрами и их функциональность.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bmf   scmRTOS - где семафоры?   Jun 9 2005, 09:09
- - ig_z   Цитата(bmf @ Jun 9 2005, 12:09)Хотел попробов...   Jun 9 2005, 10:23
- - bmf   ЦитатаТак ведь автор вполне ясно сказал, что семаф...   Jun 9 2005, 12:24
|- - ig_z   Цитата(bmf @ Jun 9 2005, 15:24)ЦитатаТак ведь...   Jun 9 2005, 13:58
|- - dxp   Цитата(bmf @ Jun 9 2005, 18:24)ЦитатаТак ведь...   Jun 10 2005, 06:25
- - bmf   В доке к версии 2.0 такого обзаца нет. Думаю что к...   Jun 9 2005, 14:41
|- - dxp   Цитата(bmf @ Jun 9 2005, 20:41)В доке к верси...   Jun 10 2005, 06:38
|- - IgorKossak   Цитата(bmf @ Jun 9 2005, 17:41)В доке к верси...   Jun 17 2005, 11:17
|- - dxp   Цитата(IgorKossak @ Jun 17 2005, 17:17)А чем,...   Jun 20 2005, 04:14
- - bmf   Спасибо за идеи. В принципе если есть исходники, т...   Jun 10 2005, 11:41
|- - dxp   Цитата(bmf @ Jun 10 2005, 17:41)Дя и сомнения...   Jun 10 2005, 12:09
- - bmf   Не знаю, впринципе всего десяток функций, там и со...   Jun 10 2005, 12:59
|- - dxp   Цитата(bmf @ Jun 10 2005, 18:59)Не знаю, впри...   Jun 10 2005, 13:28
- - bmf   Ну например, для тойже uCos - реакция на прерывани...   Jun 10 2005, 16:57
|- - dxp   Цитата(bmf @ Jun 10 2005, 22:57)Ну например, ...   Jun 14 2005, 06:00
- - bmf   И еще, посмотрите как в uCos ищется самая приорите...   Jun 10 2005, 19:39
|- - dxp   Цитата(bmf @ Jun 11 2005, 01:39)И еще, посмот...   Jun 14 2005, 06:20
- - bmf   А если реализовывать по честному семафоры (как в т...   Jun 11 2005, 09:22
|- - dxp   Цитата(bmf @ Jun 11 2005, 15:22)А если реализ...   Jun 14 2005, 06:32
- - bmf   Знаю что не влезет на мегу8, поэтому и ищу вариант...   Jun 14 2005, 17:50
|- - dxp   Цитата(bmf @ Jun 14 2005, 23:50)Знаю что не в...   Jun 15 2005, 05:47
|- - dxp   Цитата(bmf @ Jun 14 2005, 23:50)Просто надо в...   Jun 15 2005, 05:51
|- - dxp   Цитата(bmf @ Jun 14 2005, 23:50)И проблем пер...   Jun 15 2005, 06:53
- - bmf   На каждый ваш лист, я смогу аргументированно ответ...   Jun 15 2005, 17:25
- - bmf   Теперь о позитиве. ЦитатаОна никогда не станет ко...   Jun 17 2005, 05:12
- - bmf   Придется его такой и использовать. Просто в оригин...   Jun 17 2005, 12:52
- - bmf   Да все уже получилось не так, как вначале задумавы...   Jun 21 2005, 17:39


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

 


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


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