Архитектура современных операционных систем

81 1) Потоки реального времени, обрабатывающиеся по дисциплине FIFO. 2) Потоки реального времени, обрабатывающиеся в порядке циклической очереди. 3) Потоки разделения времени. Первые два класса считаются потоками наивысшего приоритета и обра- батываемые в первую очередь. Однако между ними существует разница. Потоки первого класса обрабатываются в порядке их поступления и не могут быть прерваны другими потоками, кроме потоков своего уровня. Потоки второго класса обрабатываются по циклической дисциплине, то есть им, периодически выделяется квант времени и их выполнение прерывает- ся по истечении этого кванта. Потоки третьего класса – это обычные потоки, обрабатывающиеся по циклической дисциплине обслуживания. Первый и второй классы потоков не являются в строгом смысле потоками реального времени, так как нет механизмов выполнения их к данному сроку. У любого потока есть свой приоритет (priority). По умолчанию priority=20, но он может, меняется с помощью вызова nice(w), где w вычитается из этого приоритета и принадлежит [19;20], таким образом, приоритет принад- лежит [1;40]. С любым потоком связан квант выделяемого ему времени ЦП. Величина кванта определенной значением переменной quantum и измеряется в тиках (jiffy). Таймер делает 100 прерываний в секунду, т.е. цена 1 тика – 10 мс. Планировщик для любого потока вычисляет величину специальную оценку goodness по следующим формулам: if (class = = real_time) goodness = 1000+priority if (class = = time_sharing && quantum>0) goodness = quantum+priority if (class = = time_sharing && quantum=0) goodness = 0 Время ЦП выделяется потоку с наивысшей goodness.

RkJQdWJsaXNoZXIy MTY0OTYy