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

 
 
> "Тормозные" RTOS и запрещение прерываний
yuri_t
сообщение May 19 2011, 05:00
Сообщение #1


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



В последнее время прочитал несколько сообщений в русскоязычных конференциях по электронике (Electronix, Caxapa)
о том, что есть замечательные варианты повышения быстродействия RTOS - "без блокировки прерываний вообще,
без spin-lockов, без циклов"(цитата) .

На эту тему замечу:

1) Системы с запрещением прерываний на время изменения системных данных надежно работают в любых проектах
и с любыми CPU.

2) Системы без запрещения прерываний на время изменения системных данных можно разделить на две категории

- системы, которые работают только в проекте автора (как правило, единственном) - здесь без комментариев

- Segmented Interrupt Architecture - системы, в которых прерывания не запрещаются, а просто останавливается
переключатель контекста. Если во время прерывания появляется условия, требующие переключения контекста,
то эти условия помещаются в специальную очередь и обрабатываются вне прерываний.
Такой подход кажется привлекательным на первый взгляд, но на практике имеет столь серьезные недостатки,
что мне известно только 2 коммерческих RTOS (CMX, Velocity) использующих такой подход. Для тех, кому
интересны детали, рекомендую статью W.Lamie (автор ThreadX RTOS) "Pardon the Interruption: Two Approaches to
RTOS Interrupt Architectures"

В общем, если вы не хотите получить случайные, совершенно непонятные баги и проклинать тот день, когда решили
связаться с операционной системой - используйте RTOS с запрещением прерываний (VxWorks, pSOS, ThreadX/Nucleous,
TNKernel, FreeRTOS, scmRTOS и т.п. ).



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kikos
сообщение May 19 2011, 09:47
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 1-02-11
Пользователь №: 62 608



1) Что такое "RTOS" ? Слишком общее название включает и OSEK и VxWorks и QNX. Плохо и непонятно
2) Никакой RT OS не гарантирует RT проект.
2) Маленькому ядру если и нужны прерывания так только от одного тайрмера.
Все остальное на усмотрение разработчика проекта. Ему решать нужно входить после прерывания в скедулер или нет. Да и само прерывание таймера переправлять в ОС придется ручками для каждой борды

Сообщение отредактировал kikos - May 19 2011, 09:50
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 19 2011, 10:35
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(kikos @ May 19 2011, 12:47) *
1) Что такое "RTOS" ? Слишком общее название включает и OSEK и VxWorks и QNX. Плохо и непонятно
2) Никакой RT OS не гарантирует RT проект.
2) Маленькому ядру если и нужны прерывания так только от одного тайрмера.
Все остальное на усмотрение разработчика проекта. Ему решать нужно входить после прерывания в скедулер или нет. Да и само прерывание таймера переправлять в ОС придется ручками для каждой борды


Ну эт вы тоже перегнули.
Первые два пункта ликбеза не в тему вообще.

По третьему тоже гигантское заблуждение.
Маленькая RTOS или большая все они решают одну главную задачу - обеспечение параллелизма.
А самая большая проблема параллелизма это с периферией.
Не делать же при живой RTOS программные задержки на ожидании заполнения или освобождения буферов UART, SPI, I2S, DMA и проч.
Все это делается через прерывания и использования в них сервисов RTOS!

По последнему. Если вы получаете фреймворк уже скомпилированный по типу embOS, то никуда не денетесь, а все прерывания пройдут через сепаратор RTOS.
Так же, скажем, и с SDK для Windows CE.
Go to the top of the page
 
+Quote Post
kikos
сообщение May 19 2011, 12:01
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 1-02-11
Пользователь №: 62 608



Цитата(AlexandrY @ May 19 2011, 14:35) *
Ну эт вы тоже перегнули.
Первые два пункта ликбеза не в тему вообще.

По третьему тоже гигантское заблуждение.
Маленькая RTOS или большая все они решают одну главную задачу - обеспечение параллелизма.
А самая большая проблема параллелизма это с периферией.
Не делать же при живой RTOS программные задержки на ожидании заполнения или освобождения буферов UART, SPI, I2S, DMA и проч.
Все это делается через прерывания и использования в них сервисов RTOS!

По последнему. Если вы получаете фреймворк уже скомпилированный по типу embOS, то никуда не денетесь, а все прерывания пройдут через сепаратор RTOS.
Так же, скажем, и с SDK для Windows CE.

Если бы Вы правильно понимали первые 2 пункта, Вы бы такого не написали...
Есть огромная разница в том как устроены Windows CE или QNX и маленкие ядра, к примеру RTXC.
Последний ничего не знает о периферии и процессоре.... UART, SPI, I2S, DMA и проч. конечно имеют прерывания, но обработчики придется писать .... и будет при этом вызываться планировщик или нет дело девелопера



Цитата(yuri_t @ May 19 2011, 09:00) *
В последнее время прочитал несколько сообщений в русскоязычных конференциях по электронике (Electronix, Caxapa)
о том, что есть замечательные варианты повышения быстродействия RTOS - "без блокировки прерываний вообще,
без spin-lockов, без циклов"(цитата) .

Не приведи господи с такой ОС поработать

Сообщение отредактировал kikos - May 19 2011, 12:06
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- yuri_t   "Тормозные" RTOS и запрещение прерываний   May 19 2011, 05:00
- - AlexandrY   Цитата(yuri_t @ May 19 2011, 08:00) В пос...   May 19 2011, 05:48
- - VslavX   Цитата(yuri_t @ May 19 2011, 08:00) что м...   May 20 2011, 07:26
|- - AlexandrY   Цитата(VslavX @ May 20 2011, 10:26) ИМХО,...   May 20 2011, 09:45
- - yuri_t   Применение Segmented Interrupt Architecture в мал...   May 20 2011, 13:01
|- - AlexandrY   Цитата(yuri_t @ May 20 2011, 16:01) Приме...   May 20 2011, 13:28
||- - VslavX   Цитата(AlexandrY @ May 20 2011, 16:28) Но...   May 20 2011, 15:42
||- - AlexandrY   Цитата(VslavX @ May 20 2011, 18:42) А обя...   May 20 2011, 17:16
||- - Terminator   Цитата(AlexandrY @ May 21 2011, 00:16) Ну...   May 22 2011, 08:13
|- - kikos   Цитата(yuri_t @ May 20 2011, 17:01) Приме...   May 23 2011, 11:04
- - yuri_t   Статьи Ralph Moore и David Kliedermacher я читал (...   May 23 2011, 15:34
|- - sasamy   Цитата(yuri_t @ May 23 2011, 19:34) А тут...   May 24 2011, 09:28
|- - kikos   Цитата(sasamy @ May 24 2011, 13:28) И вед...   May 25 2011, 07:14
|- - sasamy   Цитата(kikos @ May 25 2011, 11:14) не так...   May 25 2011, 09:56
|- - evg123   Несколько замечаний из собственного опытов: 1) На ...   May 26 2011, 11:15
|- - VslavX   Цитата(evg123 @ May 26 2011, 14:15) Неско...   May 26 2011, 12:34
|- - evg123   Цитата(VslavX @ May 26 2011, 16:34) Может...   May 27 2011, 08:59
|- - AlexandrY   Цитата(evg123 @ May 27 2011, 11:59) Я так...   May 27 2011, 11:01
||- - evg123   Я понимаю, что я немного не в тему, но всё равно, ...   May 30 2011, 08:48
||- - sasamy   Цитата(evg123 @ May 30 2011, 12:48) А что...   May 31 2011, 05:29
||- - AlexandrY   Цитата(evg123 @ May 30 2011, 11:48) Я не ...   May 31 2011, 05:59
||- - evg123   Цитата(AlexandrY @ May 31 2011, 08:59) Эт...   May 31 2011, 15:11
||- - AlexandrY   Цитата(evg123 @ May 31 2011, 18:11) Верно...   May 31 2011, 17:25
|||- - evg123   Цитата(AlexandrY @ May 31 2011, 20:25) Эт...   Jun 1 2011, 21:04
|||- - sasamy   Цитата(evg123 @ Jun 2 2011, 01:04) 20 тыс...   Jun 2 2011, 05:27
|||- - LightElf   QUOTE (evg123 @ Jun 2 2011, 01:04) Вы что...   Jun 2 2011, 08:18
||||- - kikos   Цитата(LightElf @ Jun 2 2011, 12:18) Испо...   Jun 2 2011, 11:00
|||- - AlexandrY   Цитата(evg123 @ Jun 2 2011, 00:04) Одни д...   Jun 2 2011, 10:00
|||- - evg123   Цитата(AlexandrY @ Jun 2 2011, 14:00) Зач...   Jun 2 2011, 15:43
||||- - AlexandrY   Цитата(evg123 @ Jun 2 2011, 18:43) ... и ...   Jun 3 2011, 05:14
|||||- - aaarrr   Цитата(AlexandrY @ Jun 3 2011, 09:14) Вот...   Jun 3 2011, 08:01
||||- - sasamy   Цитата(evg123 @ Jun 2 2011, 19:43) Поясня...   Jun 3 2011, 07:37
||||- - evg123   Цитата(sasamy @ Jun 3 2011, 11:37) ...Вы ...   Jun 7 2011, 09:28
|||- - neiver   Цитата(AlexandrY @ Jun 2 2011, 14:00) Для...   Jun 3 2011, 10:29
||- - sasamy   Цитата(evg123 @ May 31 2011, 19:11) А поп...   May 31 2011, 22:50
||- - AlexandrY   Цитата(sasamy @ Jun 1 2011, 01:50) ОС без...   Jun 1 2011, 05:27
|- - VslavX   Цитата(evg123 @ May 27 2011, 11:59) Я реж...   May 27 2011, 11:46
|- - kikos   Цитата(VslavX @ May 27 2011, 15:46) Более...   May 27 2011, 13:47
|- - AlexandrY   Цитата(kikos @ May 27 2011, 16:47) Покажи...   May 27 2011, 20:46
- - kikos   Согласен. Хотел обратить внимание на то, что ...   May 24 2011, 07:59
- - yuri_t   Цитата(kikos @ May 27 2011, 16:47) Покажи...   May 27 2011, 13:56
- - kikos   Цитата(yuri_t @ May 27 2011, 17:56) http:...   May 30 2011, 08:27


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

 


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


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