|
|
||
5. Циклическое обслуживание потоков |
||
Теперь кратко о сути алгоритмов управления потоками. Сначала предположим, что все потоки имеют одинаковый приоритет. Тогда они выстраиваются в одну очередь на обслуживание к процессору. Процессор обслуживает потоки в порядке FIFO (first in — first out), т. e. первым пришел — первым вышел, и прерванные потоки становятся в конец очереди. Такая дисциплина обслуживания называется циклическим обслуживанием. Так как незавершившиеся потоки блокируются до следующего обслуживания, а не уходят не обслуженными, то циклическое обслуживание также называется FCFS (first come - first served), т. e. первым пришел — первым обслужен. Схематически циклическое обслуживание потоков показано на рис. 2.4.
Рис. 2.4. Циклическое обслуживание потоков |
||
Если потоки имеют разные приоритеты, то для управления ими используются более сложные дисциплины обслуживания с несколькими очередями. В этом случае каждая очередь включает потоки, которые имеют одинаковый приоритет. Схематически дисциплины обслуживания с несколькими очередями показаны на рис. 2.5.
Рис. 2.5. Дисциплины обслуживания с несколькими очередями Простейший алгоритм обслуживания нескольких очередей заключается в следующем: первыми обслуживаются потоки, которые имеют наивысший приоритет. В общем случае управление потоками разделяется на планирование и диспетчеризацию. Под планированием потоков понимается алгоритм, используемый для постановки прерванных потоков в очереди. Менеджер потоков (диспетчер) может изменять приоритет прерванного потока, что изменяет очередь, в которую этот поток будет поставлен. Алгоритмы планирования изучаются математической дисциплиной, которая называется теория расписаний. Под диспетчеризацией потоков понимается алгоритм, устанавливающий порядок, в котором процессор обслуживает очереди. Алгоритмы диспетчеризации изучаются математической дисциплиной, которая называется теория массового обслуживания.
|
||
|
||
5 |