Mr.McD. писал(а):
То, что для "А" заняло на один такт (квант) времени больше, то для "В" заняло 6! тактов, т.к. пришлось пропустить всю очередь.
На самом деле и поток А доделывает свою работу только после прохода С-F, всё вполне симметрично, без изгибов и перекосов.
Вообще я не вижу нарушения принципов разделения времени одного процессора на несколько потоков.
Это падение производительности в 6 раз каждого потока в сумме даёт единицу. Тоесть, реальных потерь нет.
А с точки зрения оптимизации, напрашивается увеличение длительности кванта для потока А, или вообще отмена квантования (прерывания) этого потока. Что-то вроде кооперативной многозадачности.
Что касается полезности механизма приоритетности, то он особо проявляется при использовании так называемой динамической приоритетности. Наподобии упоминаемого алгоритма инверсии приорита. Например, можно динамически повышать приоритетность потока, которого ожидают другие потоки (можно даже по количеству ожидающих).