Я считаю, что это неправильное определение.
Round-Robin это просто циклическое выполнение задач с одинаковым приоритетом. Если задача получила время на выполнение, то после завершения следующая ее заявка становится в конец очереди. Таймера здесь не причем.
И вот такой способ выполнения очень важен.
О том какие проблемы может вызвать чиcтое приоритетное выпонение читать здесь:
http://www.rtos.com/page/imgpage.php?id=210Из жизни приведу простой сценарий:
Имеем кучу задач-источников событий, допустим разные коммуникационные каналы низкого уровня, внешние сигналы, периодические задачи и т.д.
Имеем коллекционер-менеджер сигналов от этих задач. Он, так скажем, дает необходимый уровень абстракции и централизует логику приложения, и имеем исполнителей связанных с менежером это могут быть драйвера, а могут быть и более высокие уровни приложения.
Понятно что выбрать оптимальную стратегию назначения приоритетов здесь практически невозможно.
И спецы из Express Logic правильно говорят, что в этой ситуации вы получите солидную деградацию производительности из-за лишних переключений контекста.
И выход в осях не имеющих фичи "Preemption-Threshold" это довольствоваться Round Robin
Цитата(yuri_t @ Feb 2 2008, 22:40)

Давайте определимся с терминологией.
Round-robin - это когда задачи преключаются по таймеру, т.е работала себе задача и вдруг - сработал некий глобальный системный таймер и задача снята с исполнения - не потому, что ждет семафор или появления нового элемента в очереди и т.п. и не потому, что после прерывания задача с более высоким приоритетом стала активной, а просто потому, что истекло время, отведенное данной задаче на работу.
Так вот, такой механизм в real-time системах не нужен и, более того - вреден.
Если же нужно множество задач с одинаковым приоритетом - то нужно просто создать множество threads(tasks) c одинаковым приоритетом (но это не Round-robin !!!)