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

 
 
> "Тормозные" 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
Ответов
yuri_t
сообщение May 20 2011, 13:01
Сообщение #2


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

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



Применение Segmented Interrupt Architecture в малых RTOS - это (ИМХО) просто достаточно
неуклюжая попытка перетащить механизм обработки прерываний из больших OS (в Velocity -из Unix).
Для небольших по своей природе RTOS - это как "авианосец в домашней ванной(с)".
Go to the top of the page
 
+Quote Post
kikos
сообщение May 23 2011, 11:04
Сообщение #3


Участник
*

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



Цитата(yuri_t @ May 20 2011, 17:01) *
Применение Segmented Interrupt Architecture в малых RTOS - это (ИМХО) просто достаточно
неуклюжая попытка перетащить механизм обработки прерываний из больших OS (в Velocity -из Unix).
Для небольших по своей природе RTOS - это как "авианосец в домашней ванной(с)".

sm.gif

http://www.smxrtos.com/articles/techppr/defint.htm

Цитата
In another recent article, David Kleidermacher2 discusses the need to keep ISRs simple
and short and to disable interrupts as little as possible. He distinguishes between RTOSs
that have a Simple architecture and those that have an Advanced architecture. These
match categories 1 and 2 above, respectively. He presents an Advanced architecture
wherein ISRs are split into two parts. The first part does the minimum necessary
processing to handle the hardware and to schedule the second part. The second part is
performed later, when interrupts are enabled, by a call back mechanism in the scheduler.
Unfortunately, not much detail is provided concerning this mechanism.


О полном отказе от блокировки прерываний речи не идет , и вдобавок Unfortunately...

Другая интересная статья
http://www.rtos.com/articles/18835
продолжает утввержать, что прерфывания не запрещаются .... sm.gif При этом скромно молчит о возможностях процессора... или о регистрах типа irq clear (ARM)

Но зато обе статьи согласны с тем, что вторая половина обработчика прерывания запускается на выполнение планировщиком в режиме задачи.



Сообщение отредактировал kikos - May 23 2011, 10: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
- - kikos   1) Что такое "RTOS" ? Слишком общее на...   May 19 2011, 09:47
|- - AlexandrY   Цитата(kikos @ May 19 2011, 12:47) 1) Что...   May 19 2011, 10:35
|- - kikos   Цитата(AlexandrY @ May 19 2011, 14:35) Ну...   May 19 2011, 12:01
- - 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
|- - 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
- - 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 Текстовая версия Сейчас: 20th August 2025 - 11:06
Рейтинг@Mail.ru


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