|
"Тормозные" RTOS и запрещение прерываний |
|
|
|
May 19 2011, 05:00
|
Частый гость
 
Группа: Свой
Сообщений: 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 и т.п. ).
|
|
|
|
|
 |
Ответов
|
May 23 2011, 11:04
|
Участник

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

|
Цитата(yuri_t @ May 20 2011, 17:01)  Применение Segmented Interrupt Architecture в малых RTOS - это (ИМХО) просто достаточно неуклюжая попытка перетащить механизм обработки прерываний из больших OS (в Velocity -из Unix). Для небольших по своей природе RTOS - это как "авианосец в домашней ванной(с)". 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продолжает утввержать, что прерфывания не запрещаются ....  При этом скромно молчит о возможностях процессора... или о регистрах типа irq clear (ARM) Но зато обе статьи согласны с тем, что вторая половина обработчика прерывания запускается на выполнение планировщиком в режиме задачи.
Сообщение отредактировал kikos - May 23 2011, 10:06
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|