Преемптивность - это, как сказали, вытеснение текущей задачи как только появится высокоприоритетная задача. Маст хэв при нескольких приоритетах.
RR - это когда задачи одного приоритета по очереди поступают на выполнение, т.е. если порядок определен как 1-2-3, то после первой задачи всегда будет запускаться №2.
Переключение задач в RR может осуществляться как явно программистом (засыпание, ожидание, явный перешедулинг), так и самой системой с помощью TimeSlicing, когда задачам выдается квант времени, по истечении которого она вытеснится независимо от программиста.
TimeSlicing появился во времена, когда пользователи с помощью терминалов подключались к мейнфрейму и запускали свои расчеты. Т.о., каждому пользователю казалось, что он один работает с мейнфреймом (хотя и более медленным чем на самом деле).
Однако, если задача не вычислительная, а событийная (т.е. ждет событие - реагирует на него - опять впадает в ожидание), TimeSlicing усложняет жизнь, ага

Цитата(beer_warrior @ Jan 23 2008, 15:54)

...
3.Изумительные вызовы типа taskLock() и taskSafe(), чтобы если уже залочить задачу навеки, чтобы никто ее не снял и не вытеснил. Это особо интересно в контексте использования этой оси в критических приложениях.
4.Собственные вызовы типа taskSpawn() перемежаются со стандартными POSIX, тоже самое с объектами синхронизации.
Вобщем выглядит это похоже на ранние поделки Мелкософт. Но ведь система сертифицирована как супер-пупер надежная и устойчивая.
Кто-то может объяснить в чем тут дело?
3. Эти вызовы требуются, например, когда нужно жестко уложиться во временные рамки (т.е. сформировать временную диаграмму для работы с железом), т.к. иногда нет возможности сделать такую задачу высокоприоритетной. В основном, это следствие "кривого" железа

Другой пример - синхронизация с более высокоприоритетной задачей, т.к. мьютекс потяжеловесней и может привести к лишним переключениям задач. Использовать нужно "с головой" и на очень короткий срок (понимая, что задержка на переключение более приоритетной задачи увеличится на некоторую известную величину).
4. Типичный бардак, обусловленный повышением производительности. POSIX вызовы - это, скорее всего, обертки для нейтивных функций, поэтому когда можно использовать нейтив вызовы - их и используют. Еще можно покурить доку на предмет их отличий

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