Планирование в мультипрограммных системах
Все задания (процессы), находящиеся в системе с мультипрограммированием, конкурируют из-за процессорного времени. Кроме процессов пользователя, имеются и системные процессы, для выполнения которых нужно процессорное время. Имеются, как правило, две очереди процессов:
· очередь готовых процессов – активные процессы, ожидающие кванта времени ЦП (Ог);
· очередь заблокированных процессов, ожидающих выполнения какого-нибудь события (Об).
![]() |
Пусть P – процессор, тогда схема планирования ресурса-процессора выглядит следующим образом (рис. 12.3).
Рис. 12.3. Схема планирования ресурса
Каждый процесс Pi
может находиться в одном из состояний: готовом, заблокированном или выполняемом. Если piÎ Ог и ему выделен квант tpi
процессорного времени, то он будет выполняться, пока не произойдет одно из событий:
· истечет его квант времени;
· процесс будет заблокирован;
· процесс будет вытеснен более приоритетным процессом;
· процесс будет завершен.
Если произошло одно из указанных событий, процесс переводится либо в очередь Ог, либо в очередь Об, либо оставляет систему. По окончании блокировки процессы переводятся из очереди Об в Ог. Алгоритм планирования для такой системы включает в себя способ выбора готового процесса из заданной совокупности процессов и способ вычисления величины кванта tpi
для него.
Каждому pi Î Ог поставлен в соответствие приоритет – целое число, учитывающее важность процесса pi, занимаемый им объем памяти, срочность выполнения и объем I/О, а также внешний приоритет, назначаемый пользователем. На определение приоритета влияют также и динамические характеристики: общее время ожидания; ресурсы, находящиеся в распоряжении процесса; процессорное время, полученное в последний раз; общее время нахождения процесса в системе и т. д. Отсюда следует, что приоритет процесса может перевычисляться несколько раз за время его жизни.
Внешний приоритет играет важную роль при переводе pi в активное состояние и распечатке полученных результатов.
Такие системные процессы, как учет, управление стандартными программами, выполняются так же, как и задания пользователей. Но многие из них (например, управление освободившимся внешним устройством, перекачка страниц памяти, обслуживание прерываний и некоторые другие) должны иметь привилегии, позволяющие им быстрее получать процессорное время. Все алгоритмы планирования должны учитывать привилегированные процессы, а также тот факт, что ни один процесс в системе не должен ждать бесконечно долго. Система должна планировать процессы так, чтобы свести к минимуму средние потери или ограничить максимальные потери по всем заданиям, что не всегда согласуется с эффективным использованием всех компонент системы.