Эффект конвоя приводит к снижению загруженности как процессора так и периферийного оборудования
Первый пришел – первый обслуживается, FCFS (first come first served). Является наиболее простой стратегией планирования процессоров и заключается в том, что процессор передается тому процессу, который раньше других его запросил.
Стратегии FCFS присущ «эффект конвоя». В том случае когда в компьютере имеется один большой процесс и несколько малых, то все процессы собираются в начале очереди готовых процессов, а затем в очереди к оборудованию. Т.о. «эффект конвоя» приводит к снижению загруженности как ЦП так и ПУ
Стратегия «наиболее короткая работа выполняется первой», SJF-Shortest Job First. Является одним из методов борьбы с «эффектом конвоя», позволяет процессу из очереди выполниться первым. SJF часто применяется в долгосрочных планировщиках, обслуживающих пакетный режим.
Приоритетное планирование. Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему ЦП. Обычно приоритет это целое положительное число находящееся в некотором диапазоне. Приоритеты назначаются исходя из совокупности внутренних и внешних по отношению ос факторов. Внутренние факторы: требование к памяти, количество открытых файлов, отношение среднего времени в/в к среднему времени использования ресурсов ЦП и т.д. Внешние факторы: важность процесса и т.д. Недостаток этой стратегии заключается в блокировании на неопределенное время низкоприоритетных процессов.
Карусельная стратегия. RR Round Robin – применяется в системах разделения времени. Определяется отрезок времени названный квантом времени. Очередь готовых процессов рассматривается как кольцевая. Процессы циклически перемещаются по очереди, получая ЦП на время равное кванту. Новый процесс добавляется в хвост очереди. Если процесс не завершился в определенный ему квант времени, то его работа принудительно прерывается, и он перемещается в хвост очереди.
Планирование с использованием многоуровневой очереди. Эта стратегия разработана для ситуации, когда процессы могут быть классифицированы на несколько групп, например часто процессы разделяют на две группы: интерактивные (процессы переднего плана) и пакетные (фоновые). Интерактивные и пакетные процессы имеют различные требования к краткосрочному планировщику, например по отношению ко времени отклика. Стратегия многоуровневой очереди разделяют очередь готовых процессов на несколько очередей, в каждой из которых находятся процессы с одинаковыми свойствами, и каждый из которых может планироваться индивидуальной стратегией, например RR стратегия для интерактивных процессов и FCFS для пакетных процессов. Взаимодействие очередей осуществляется по следующим правилам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом. Работа процесса из очереди с более низким приоритетом может быть приостановлена, если в одной из очередей с более высоким приоритетом появился процесс.
Использование многоуровневой очереди с обратными связями. Она предполагает, что процессы при определенных условиях могут перемещаться между очередями. Недостаток заключается в затратах времени на перемещение процессов из одной очереди в другую.
FCFS является наиболее простой стратегтей планирования процессов и заключается в том, что процессор передается тому процессу, который раньше всех других его запросил.
Когда процесс попадает в очередь готовых процессов, process control block присоединяется к хвосту очереди.
Среднее время ожидания для стратегии FCFS часто весьма велико и зависит от порядка поступления процессов в очередь готовых процессов.
Стратегии FCFS присущ так называемый “эффект конвоя”. В том случае, когда в компьютере имеется один большой процесс и несколько малых, то все процессы собираются в начале очереди готовых процессов, а затем в очереди к оборудованию. Таким образом, “эффект конвоя” приводит к снижению загруженности как процессора, так и периферийного оборудования.
Делись добром ;)
Делись добром ;)
Похожие главы из других работ:
2.1 Первый уровень функциональной модели
На входе функционального блока «Разграничение доступа» (А0) - «параметры пользователя», необходимая для последующего ее преобразования, на выходе - «отказ в запросе» и «выполнение запроса» (см. рисунок 1).
1.2 Первый в мире сайт
1. 8086: первый процессор для ПК
8086 стал первым процессором x86 - Intel к тому времени уже выпустила модели 4004, 8008, 8080 и 8085. Этот 16-битный процессор мог работать с 1 Мбайт памяти по внешней 20-битной адресной шине. Тактовая частота, выбранная IBM (4,77 МГц) была довольно низкой.
Первый алгоритм симплекс метода
Приведём описание алгоритма применительно к ЗЛП, записанной в канонической форме с односторонними ограничениями: Пусть известен начальный опорный план с базисом , т.е. - базисные компоненты, - небазисные компоненты.
2.3.1 Первый закон Зипфа
Все созданные человеком тексты построены по единым правилам. Тексты описывается законами Зипфа (G.K. Zipf). Зипф предположил, что слова с большим количеством букв встречаются в тексте реже коротких слов. Основываясь на этом постулате.
2. Первый шаг Intel
Первый процессор был выпущен 15 ноября 1971 года. Он был разработан фирмой Intel и назывался Intel 4004. Рабочая частота этого процессора составляла всего 108 кГц (0,108 МГц!). Процессор содержал 2 300 транзисторов и производился по 10-микронной технологии.
2.2 Первый шаг - создание оргкомитета
Может быть, это и громко сказано - «оргкомитет», особенно когда речь идет всего лишь о соревновании в рамках одного учреждения образования и/или турнире среди обучающихся 2 - 3 учреждений, но какую-то группу лиц.
1. История развития видеокарт. Первый акселлератор
Сегодня разница между словами видеокарта и видеоакселератор нивелировалась, и эти слова стали синонимами. Так было не всегда. Давайте вернемся на десяток лет назад и посмотрим на видеоиндустрию того времени.
2.3.2 Первый спринт
Основной задачей первого спринта является разработка технического задания для проекта.
3. Первый этап - установка комплектующих на материнскую плату
Рис.2 (Материнская плата) Рис.3 (Процессор) Рис.4 (Оперативная память) Рис.5 (Родиатор с куллером) Положите материнскую плату на стол, подложив под нее какой-нибудь нескользящий достаточно упругий материал вроде картона или полиэтилена.
1.1 Первый этап реализации атак
Первый этап реализации атак - это сбор информации об атакуемой системе или узле. Он включает такие действия как определение сетевой топологии, типа и версии операционной системы атакуемого узла, а также доступных сетевых и иных сервисов и т.п.
1.6.1 Первый способ реализации - PHP-клиент
2.2 Первый иерархический уровень базы знаний
На первом иерархическом уровне происходит активизация Пр С/С, соответствующей сложившейся внешней обстановке. Правила сопоставления текущей внешней ситуации, которая представляется ситуационным вектором SV(ТБС-Пр С/С).
2.1 Первый этап развития
Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык (МЯ) - единственный язык, понятный ЭВМ.
1.1 Первый период (1945 -1955)
Известно, что компьютер был изобретен английским математиком Чарльзом Бэбиджем в конце восемнадцатого века. Его "аналитическая машина" так и не смогла но настоящему заработать.
Эффект конвоя — это явление, связанное с алгоритмом First Come First Serve (FCFS), в котором вся операционная система замедляется из-за нескольких медленных процессов.
Алгоритм FCFS по своей природе не имеет преимущественного характера, то есть, как только процессорное время было выделено для процесса, другие процессы могут получить процессорное время только после завершения текущего процесса. Это свойство планирования FCFS приводит к ситуации, называемой эффектом конвоя.
Предположим, что в очереди готовности имеется один процесс с интенсивным использованием ЦП (большое время пакетной обработки) и несколько других процессов с относительно меньшим временем пакетной обработки, но с привязкой к входу / выходу (I / O) (часто требуются операции ввода-вывода).
Шаги, как показано ниже:
- Процессам, связанным с вводом / выводом, сначала выделяется процессорное время. Поскольку они менее интенсивно загружают процессор, они быстро выполняются и переходят в очереди ввода-вывода.
- Теперь процессору, интенсивно использующему процессор, выделяется процессорное время. Поскольку время его всплеска велико, для его завершения требуется время.
- Во время выполнения процесса, интенсивно загружающего ЦП, процессы, связанные с вводом / выводом, завершают свои операции ввода / вывода и возвращаются в готовую очередь.
- Однако процессы, связанные с вводом / выводом, вынуждены ждать, поскольку интенсивный процессорный процесс еще не завершен. Это приводит к тому, что устройства ввода-вывода простаивают.
- Когда процесс, интенсивно использующий процессор, заканчивается, он отправляется в очередь ввода-вывода, чтобы получить доступ к устройству ввода-вывода.
- Между тем связанные процессы ввода / вывода получают требуемое время ЦП и возвращаются в очередь ввода / вывода.
- Однако они вынуждены ждать, потому что процесс, интенсивно использующий процессор, все еще обращается к устройству ввода-вывода. В результате процессор сейчас бездействует .
Следовательно, в Convoy Effect один медленный процесс замедляет производительность всего набора процессов и приводит к потере процессорного времени и других устройств.
Чтобы избежать эффекта Convoy Effect, можно использовать алгоритмы упреждающего планирования, такие как Round Robin Scheduling — поскольку меньшим процессам не нужно много ждать процессорного времени — это ускоряет их выполнение и приводит к уменьшению простоя ресурсов.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
1 Лекция 5. Механизмы взаимодействия процессов. Стратегии планирования процессора 1.1 Взаимодействие между процессами Ситуации, когда приходится процессам взаимодействовать: Передача информации от одного процесса другому Контроль над деятельностью процессов (например: когда они борются за один ресурс) Согласование действий процессов (например: когда один процесс поставляет данные, а другой их выводит на печать. Если согласованности не будет, то второй процесс может начать печать раньше, чем поступят данные). Два вторых случая относятся и к потокам. В первом случае у потоков нет проблем, т.к. они используют общее адресное пространство. 1.2 Передача информации от одного процесса другому Передача может осуществляться несколькими способами: Разделяемая память Каналы (трубы), это псевдофайл, в который один процесс пишет, а другой читает. Сокеты - поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам, как на одном компьютере, так и в сети. Почтовые ящики (только в Windows), однонаправленные, возможность широковещательной рассылки. Вызов удаленной процедуры, процесс А может вызвать процедуру в процессе В, и получить обратно данные. Рис.1. Схема для канала Рис.2. Схема для сокетов 1.3 Состояние состязания Состояние состязания - ситуация когда несколько процессов считывают или записывают данные (в память или файл) одновременно. Рассмотрим пример, когда два процесса пытаются распечатать файл. Для этого им нужно поместить имя файла в спулер печати, в свободный сегмент. in - переменная указывающая на следующий свободный сегмент out - переменная указывающая на следующее имя файла для печати
2 Рис.3. Пример состязания Распишем события по пунктам. 1. Процесс А считывает переменную in (равную 7), и сохраняет ее в своей переменной next_free_slot. 2. Происходит прерывание по таймеру, и процессор переключается на процесс В. 3. Процесс В считывает переменную in (равную 7), и сохраняет ее в своей переменной next_free_slot. 4. Процесс В сохраняет имя файла в сегменте Процесс В увеличивает переменную next_free_slot на единицу (next_free_slot+1), и заменяет значение in на Управление переходит процессу А, и продолжает с того места на котором остановился. 7. Процесс А сохраняет имя файла в сегменте 7, затирая имя файла процесса В. 8. Процесс А увеличивает переменную next_free_slot на единицу (next_free_slot+1), и заменяет значение in на 8. Как видно из этой ситуации, файл процесса В не будет напечатан. 1.4 Критические области Критическая область - часть программы, в которой есть обращение к совместно используемым данным. Условия избегания состязания и эффективной работы процессов: 1. Два процесса не должны одновременно находиться в критических областях. 2. Процесс, находящийся вне критической области, не может блокировать другие процессы. 3. Невозможна ситуация, когда процесс вечно ждет (зависает) попадания в критическую область.
3 Пример: Рис.4. Взаимное исключение с использованием критических областей 1.5 Взаимное исключение с активным ожиданием Рассмотрим методы взаимного исключения Запрещение прерываний Заключается в запрещении всех прерываний при входе процесса в критическую область. Недостаток этого метода в том, что если произойдет сбой процесса, то он не сможет снять запрет на прерывания. Переменные блокировки Вводится понятие переменной блокировки, т.е. если значение этой переменной равно, например 1, то ресурс занят другим процессом, и второй процесс переходит в режим ожидания (блокируется) до тех пор, пока переменная не примет значение 0. Рис.5. метод блокирующих переменных Проблема, как и с процессом печати, после того как первый процесс считает 0, второй может занять процессор и тоже считать 0. Заблокированный процесс находится в режиме активного ожидания, постоянно проверяя, не изменилась ли переменная блокировки. Строгое чередование В этой модели, процессы могут выполняться строго по очереди, используя переменную.
4 Рис.6. Строгое чередование Недостатки метода: Заблокированный процесс постоянно находится в цикле, проверяя, не изменилась ли переменная. Противоречит третьему условию, когда процесс, находящийся вне критической области, может блокировать другие процессы. Существуют еще алгоритмы с активным ожиданием (алгоритм Петерсона, команда TSL), но у всех них есть общий недостаток - расходуется бесцельно время процессора на циклы проверки изменения переменной. 1.6 Примитивы взаимодействия процессов Вводится понятия двух примитивов. sleep - системный запрос, в результате которого вызывающий процесс блокируется, пока его не запустит другой процесс. wakeup - системный запрос, в результате которого блокированный процесс будет запущен. Рис.7. Применение примитивов Основное преимущество - это отсутствие активного ожидания..
5 Проблема заключается в следующем, если спулер пуст, то wakeup срабатывает в пустую. Проблема переполненного буфера (проблема производителя и потребителя) Рассмотрим два процесса, которые совместно используют буфер ограниченного размера, один процесс пишет в буфер, другой считывает данные. Чтобы первый процесс не писал, когда буфер полный, а второй не считывал, когда он пуст, вводится переменная count для подсчета количества элементов в буфере. Рис.8. Проблема переполненного буфера В этой ситуации оба процесса могут попасть в состояние ожидания, если пропадет сигнал активации. Алгоритм такой ситуации: 1. Процесс В, считал count=0 (заблокироваться он еще не успел) 2. Планировщик передал управление процессу А 3. Процесс А, выполнил все вплоть до wakeup, пытаясь разблокировать процесс В (но он не заблокирован, wakeup срабатывает впустую) 4. Планировщик передал управление процессу В 5. И он заблокировался, и больше сигнала на разблокировку не получит 6. Процесс А в конце концов заполнит буфер и заблокируется, но сигнала на разблокировку не получит. 1.7 Семафоры Семафоры - переменные для подсчета сигналов запуска, сохраненных на будущее. Были предложены две операции down и up (аналоги sleep и wakeup). Прежде чем заблокировать процесс, down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу. up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании.. down уменьшает значение семафора на 1 или блокирует процесс, если семафор =0. down и up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций. Значит, у операционной системы должен быть запрет на все прерывания, и перевод процесса в режим ожидания.
6 Решение проблемы переполненного буфера с помощью семафора Применим три семафора: full - подсчет заполненных сегментов (в начале = 0) empty - подсчет пустых сегментов (в начале = количеству сегментов) mutex - для исключения одновременного доступа к буферу двух процессов. (в начале = 1) Мьютекс упрощенная версия семафора, он управляет доступом к ресурсу. Показывает, блокирован или нет ресурс. Рис.9. Решение проблемы переполненного буфера с помощью семафора Применение семафоров для устройств ввода/вывода Для устройств ввода/вывода семафор выставляется равный нулю. После запуска управляющего процесса выполняется down, и т.к. семафор равен нулю, процесс блокируется. Когда нужно активизировать процесс управления, выполняется up. 2.1 Стратегии планирования процессора «Первый пришел первый обслуживается» (FIFO first in, first out, или FCFS first come, first served). FCFS является наиболее простой стратегией планирования процессов и заключается в том, что процессор передается тому процессу, который раньше всех других его запросил. Когда процесс попадает в очередь готовых процессов, УТП (РСВ) присоединяется к хвосту очереди. Среднее время ожидания для стратегии FCFS часто весьма велико и зависит от порядка поступления процессов в очередь готовых процессов. Стратегии FCFS присущ так называемый «эффект конвоя». В том случае, когда в компьютере имеется один большой процесс и несколько малых, то все процессы собираются в начале очереди готовых процессов, а затем в очереди к оборудованию. Таким образом, «эффект конвоя» приводит к снижению загруженности как процессора, так и периферийного оборудования.
7 2.1.2 Стратегия «наиболее короткая работа выполняется первой», SJF Shortest Job First. Одним из методов борьбы с «эффектом конвоя» является стратегия, позволяющая процессу из очереди выполняться первым. Стратегия SJF снижает время ожидания очереди. Наибольшая трудность в практической реализации SJF заключается в невозможности заранее определить величину времени последующего обслуживания. Поэтому стратегия SJF часто применяется в долгосрочных планировщиках, обслуживающих пакетный режим. В этом случае вместо величины времени последующего обслуживания используется допустимое максимальное время выполнения задания, которое программист должен специфицировать перед отправкой задания в пакет Приоритетное планирование. Описанные ранее стратегии могут рассматриваться как частные случаи стратегии приоритетного планирования. Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему CPU. Например, стратегия FCFS предполагает, что все процессы имеют одинаковые приоритеты, а стратегия SJF предполагает, что приоритет есть величина, обратная времени последующего обслуживания. Обычно приоритет это целое положительное число, находящееся в некотором диапазоне, например от 0 до 7 или от 0 до Будем считать, что чем меньше значение числа, тем выше приоритет процесса. Приоритеты назначаются, исходя из совокупности внутренних и внешних по отношению к операционной системе факторов. Внутренние факторы: требования к памяти; количество открытых файлов; отношение среднего времени ввода-вывода к среднему времени использования ресурсов CPU и т. д. Внешние факторы: важность процесса; тип и величина файлов, используемых для оплаты; отделение, выполняющее работы, и т. д. Внутренние факторы могут использоваться для автоматического назначения приоритетов самой операционной системой, а внешние для принудительного, с помощью оператора. Главный недостаток приоритетного планирования заключается в возможности блокирования на неопределенно долгое время низкоприоритетных процессов. Известен случай, когда в 1973 г. в Массачусетском технологическом институте при остановке компьютера IBM 7094 в очереди готовых процессов были обнаружены процессы, активизированные в 1967 г., но так и не выполненные. Для устранения отмеченного недостатка используются следующие методы: процессы, время ожидания которых превышает фиксированную величину, например 15 минут, автоматически получают единичное приращение приоритета «Карусельная» стратегия планирования RR-Round Robin применяется в системах разделения времени. Определяется небольшой отрезок времени t k, названный квантом времени ( мс). Очередь готовых процессов рассматривается как кольцевая. Процессы циклически перемещаются по очереди, получая CPU на время, равное одному кванту. Новый процесс добавляется в хвост очереди.
8 Если процесс не завершился в пределах выделенного ему кванта времени, его работа принудительно прерывается, и он перемещается в хвост очереди. Свойства стратегии Round Robin сильно зависят от величины временного кванта t k. Чем больше временной квант, тем ближе стратегия Round Robin приближается к FCFS-стратегии. При очень малых значениях временного кванта Round Robin-стратегию называют разделением процессора processor sharing. Теоретически это означает, что каждый из N процессов работает со своим собственным процессором, производительность процессора равна I/Not производительности физического процессора Планирование с использованием многоуровневой очереди (Multilevel queue scheduling). Эта стратегия разработана для ситуации, когда процессы могут быть легко классифицированы на несколько групп, например часто процессы разделяют на две труппы: интерактивные (процессы переднего плана) и пакетные (фоновые). Интерактивные и пакетные процессы имеют различные требования к краткосрочному планировщику, например по отношению ко времени отклика. Стратегия многоуровневой очереди разделяет очередь готовых процессов на несколько очередей, в каждой из которых находятся процессы с одинаковыми свойствами, и каждый из которых может планироваться индивидуальной стратегией, например Round Robin стратегия для интерактивных процессов и FCFS для пакетных процессов. Взаимодействие очередей осуществляется по следующим правилам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом. Работа процесса из очереди с более низким приоритетом может быть приостановлена, если в одной из очередей с более высоким приоритетом появился процесс Использование многоуровневой очереди с обратными связями (multilevel feedback queue sheduling) (рис. 11). Обычная многоуровневая очередь не допускает перемещения процессов между очередями. Многоуровневая очередь с обратными связями предполагает, что процессы при определенных условиях могут перемещаться между очередями. Здесь организуется N очередей. Все новые запросы поступают в конец первой очереди. Первый запрос из /-й очереди поступает на обслуживание лишь тогда, когда все очереди от 1-й до /- 1-й пустые. На обслуживание выделяется квант времени t k. Если за это время обслуживание запро- Рис.10. Многоуровневая очередь с обратными связями са завершается полностью, то он покидает систему. В противном случае недообслуженный запрос поступает в конец /+ 1-й очереди.
9 После обслуживания запроса из /-й очереди система выбирает для обслуживания запрос из непустой очереди с самым младшим номером. Таким запросом может быть следующий запрос из очереди i или из очереди i + 1 (при условии, что после обслуживания запроса из очереди i последняя оказалась пустой). Новый запрос поступает в 1-ю очередь (/ = 1). В такой ситуации после окончания времени t k, выделенного для обслуживания запроса из очереди /, будет начато обслуживание запроса первой очереди. Если система выходит на обслуживание заявок из N-й очереди, то они обслуживаются либо по дисциплине FIFO (каждая заявка обслуживается до конца), либо по циклическому алгоритму. Данная система наиболее быстро обслуживает все короткие по времени обслуживания запросы. Недостаток системы заключается в затратах времени на перемещение запросов из одной очереди в другую. Данная стратегия является универсальной и сочетает в себе свойства всех рассмотренных раньше стратегий FCFS, SJF, приоритетная, Round Robin, многоуровневая очередь Приоритетная многоочередная дисциплина обслуживания (рис. 12). Вновь поступающие в систему запросы устанавливаются не обязательно в 1-ю очередь, а в очередь в соответствии с имеющимися приоритетами, которые определяются параметрами обслуживания процессов. Приоритетные многоочередные Рис. 11. Многоочередная с приоритетами система обслуживания дисциплины обслуживания могут использовать обслуживание с абсолютным и относительным приоритетом. При обслуживании с абсолютным приоритетом приоритет определяется номером очереди, и первыми обслуживаются запросы, обладающие наивысшим приоритетом (из очереди с меньшим номером запрос из очереди / - 1 будет прерывать обработку запроса из очереди /) В данной дисциплине еще более увеличивается степень дискриминации по среднему времени ожидания в очереди между высоко- и низкоприоритетными запросами. Время ожидания высокоприоритетных заявок сокращается, но за счет большей задержки в обслуживании низкоприоритетных заявок. Достигается это за счет усложнения логики системы, дополнительной обработки запросов и выбора правила дообслуживания прерываемых процессов. Обслуживание с относительным приоритетом не вызывает прерывания обслуживаемой заявки до ее завершения, даже если она менее приоритетная. Литература Современные операционные системы, Э. Таненбаум, 2002, СПб, Питер, 1040 стр. Сетевые операционные системы Н. А. Олифер, В. Г. Олифер, 2001, СПб, Питер, 544 стр.
Первый пришел – первый обслуживается, FCFS (first come first served). Является наиболее простой стратегией планирования процессоров и заключается в том, что процессор передается тому процессу, который раньше других его запросил.
Стратегии FCFS присущ «эффект конвоя». В том случае когда в компьютере имеется один большой процесс и несколько малых, то все процессы собираются в начале очереди готовых процессов, а затем в очереди к оборудованию. Т.о. «эффект конвоя» приводит к снижению загруженности как ЦП так и ПУ
Стратегия «наиболее короткая работа выполняется первой», SJF-Shortest Job First. Является одним из методов борьбы с «эффектом конвоя», позволяет процессу из очереди выполниться первым. SJF часто применяется в долгосрочных планировщиках, обслуживающих пакетный режим.
Приоритетное планирование. Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему ЦП. Обычно приоритет это целое положительное число находящееся в некотором диапазоне. Приоритеты назначаются исходя из совокупности внутренних и внешних по отношению ос факторов. Внутренние факторы: требование к памяти, количество открытых файлов, отношение среднего времени в/в к среднему времени использования ресурсов ЦП и т.д. Внешние факторы: важность процесса и т.д. Недостаток этой стратегии заключается в блокировании на неопределенное время низкоприоритетных процессов.
Карусельная стратегия. RR Round Robin – применяется в системах разделения времени. Определяется отрезок времени названный квантом времени. Очередь готовых процессов рассматривается как кольцевая. Процессы циклически перемещаются по очереди, получая ЦП на время равное кванту. Новый процесс добавляется в хвост очереди. Если процесс не завершился в определенный ему квант времени, то его работа принудительно прерывается, и он перемещается в хвост очереди.
Планирование с использованием многоуровневой очереди. Эта стратегия разработана для ситуации, когда процессы могут быть классифицированы на несколько групп, например часто процессы разделяют на две группы: интерактивные (процессы переднего плана) и пакетные (фоновые). Интерактивные и пакетные процессы имеют различные требования к краткосрочному планировщику, например по отношению ко времени отклика. Стратегия многоуровневой очереди разделяют очередь готовых процессов на несколько очередей, в каждой из которых находятся процессы с одинаковыми свойствами, и каждый из которых может планироваться индивидуальной стратегией, например RR стратегия для интерактивных процессов и FCFS для пакетных процессов. Взаимодействие очередей осуществляется по следующим правилам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом. Работа процесса из очереди с более низким приоритетом может быть приостановлена, если в одной из очередей с более высоким приоритетом появился процесс.
Использование многоуровневой очереди с обратными связями. Она предполагает, что процессы при определенных условиях могут перемещаться между очередями. Недостаток заключается в затратах времени на перемещение процессов из одной очереди в другую.
Читайте также: