1. Планирование должно быть справедливым. Ни один процесс не должен пострадать от бесконечного откладывания.
2. Обеспечивать максимальную пропускную способность системы, т.е. обслуживать максимальное количество процессов в единицу времени.
3. Обеспечивать максимальному числу пользователей, работающих в интерактивном режиме, приемлемые времена ответа.
4. Быть предсказуемым. Данное задание должно выполняться приблизительно за одно и то же время независимо от нагрузки на систему.
5. Минимизировать накладные расходы.
6. Сбалансировать использование ресурсов. Предпочтение должно оказываться тем процессам, которые будут занимать недогруженные ресурсы.
7. Обеспечивать баланс между временем ответа и коэффицентом использования ресурсов. В одних системах существенно время реакции системы на запрос, а в других эффективное использование ресурсов.
8. Исключать бесконечное откладывание.
9. Учитывать приоритеты процессов.
10. Оказывать предпочтение процессам, занимающим ключевые ресурсы, для того, чтобы процесс быстрее освободил удерживаемый им ключевой ресурс.
11. Характеризоваться постепенностью снижения работоспособности при больших нагрузках.
Многие из перечисленных целей противоречат друг другу, что делает организацию планирования весьма сложной проблемой.
Планирование с переключением и без переключения
Если после предоставления УП в распоряжение некоторого процесса отобрать УП у этого процесса нельзя, то говорят о дисциплине планирования без переключения. Если же УП можно отобрать, то говорят о дисциплине планирования с переключением. Планирование с переключением необходимо в системах реального времени. В системах без переключения процессы выстраиваются в очередь.
Планирование по сроку завершения
При этом планировании принимаются все меры для того, чтобы выполнение определенных заданий заканчивалось к заранее обусловленному времени. Планирование по сроку завершения сложно организовать по многим причинам:
· Пользователь должен заранее точно указать, какие ресурсы потребуются для выполнения его задания.
· Система должна выполнять задания к сроку без серьёзного снижения уровня обслуживания других пользователей.
· Если приходится иметь дело одновременно с многими заданиями, для которых задаётся срок выполнения, то планирование может существенно усложниться.
Планирование по принципу “первый пришедший обслуживается первым”
УП предоставляется процессам в порядке их прихода в очередь готовности. Это принцип планирования без переключения.
Циклическое планирование осуществляется по принципу “первый пришедший обслуживается первым”, однако, каждый раз процессу предоставляется ограниченное количество времени УП. Циклическое обслуживание эффективно для работы с разделением времени, когда система должна гарантировать приемлемые времена ответа для всех интерактивных пользователей.
Планирование по принципу “кратчайшее задание – первым”
Согласно этому принципу для выполнения выбирается ожидающее задание с минимальным оценочным рабочим временем, остающимся до завершения. Проблема, связанная с реализацией этого принципа, состоит в том, что он требует точно знать, сколько времени будет выполняться задание или процесс, а такой информации обычно не бывает.
Планирование по принципу “наибольшему относительному времени реакции”
Это планирование без переключений, согласно которой приоритет каждого задания является не только функцией времени обслуживания этого задания, но также времени, затраченного заданием на ожидание обслуживания. Динамические приоритеты вычисляются по формуле. Приоритет = (время ожидания + время обслуживания)/(время обслуживания). Предпочтение отдается более коротким заданиям и тем, которые долго ожидают.