Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_po_os_21-41.doc
Скачиваний:
13
Добавлен:
19.09.2019
Размер:
991.23 Кб
Скачать
  1. Многоуровневые очереди с обратными связями.

Многоуровневые очереди с обратными связями

Когда процесс получает в своё распоряжение ЦП, особенно если он до сих пор не имел возможности каким-то образом проявить себя, планировщик не имеет ни малейшего представления о том, какое именно количество времени ЦП потребуется данному процессу. Процессы, лимитируемые вводом-выводом, могут использовать ЦП лишь кратковременно, перед тем как сформировать запрос ввода-вывода. Процессы, лимитируемые ЦП, могут занимать его часами, если нет переключения.

Многоуровневые очереди с обратными связями.

Во многих структурах многоуровневых очередей с обратными связями квант времени, предоставляемый данному процессу при переходе в каждую очередь более низкого уровня, увеличивается.

Таким образом, чем дольше находится процесс в сети очередей, тем больший квант времени выделяется ему с каждым разом, когда он получает в свое распоряжение ЦП. Однако ему не удается получать ЦП слишком часто, поскольку процессы, находящиеся в очередях более высоких уровней, имеют и более высокий приоритет. Процесс, находящийся в данной очереди, может начать выполнение только в случае, если нет ожидающих во всех очередях более высоких уровней. Выполняющийся процесс прерывается, если поступает новый процесс в очередь более высокого уровня.

Механизм сети очередей должен оказывать предпочтение процессам, лимитируемым вводом-выводом, чтобы обеспечить хорошую загрузку устройств ввода-вывода и малое время реакции на запросы интерактивных пользователей. И действительно, так и будет, поскольку процесс, связанный с вводом-выводом, будет поступать в очередь с очень высоким приоритетом и ему будет быстро предоставляться ЦП. Квант времени для первой очереди выбирается достаточно большим, с тем чтобы подавляющее большинство заданий, связанных с вводом-выводом, успевало выдать запрос ввода-вывода еще до истечения первого кванта. Когда подобный процесс выдает запрос ввода-вывода, он выходит из сети очередей, причем получив истинно приоритетное обслуживание, что и требовалось.

Рассмотрим теперь задание, лимитируемое ЦП и требующее много времени ЦП. Это задание поступает в верхнюю очередь сети, очередь с очень высоким приоритетом. Первый раз задание получает в свое распоряжение ЦП весьма быстро, однако после истечения выделенного ему кванта времени процесс переходит в конец очереди следующего нижележащего уровня. Теперь этот процесс будет иметь более низкий приоритет, так что вновь поступающие процессы, особенно связанные по преимуществу с вводом-выводом, будут первыми получать в свое распоряжение ЦП. Со временем данный вычислительный процесс все же получит ЦП, ему будет выделен квант времени большей величины, чем в очереди наивысшего приоритета, но он снова не успеет завершиться по истечении этого полного кванта. Затем он будет помещен в конец очереди следующего нижележащего уровня. Таким образом, данный процесс будет продолжать переходить в очереди с более низкими приоритетами, будет дольше ждать в промежутках между выделяемыми ему квантами времени и каждый раз полностью использовать свой квант, когда будет получать в свое распоряжение ЦП (если при этом не будет прерываться из-за поступления процесса с более высоким приоритетом). В конце концов, этот вычислительный процесс окажется в очереди самого низкого уровня с циклическим обслуживанием, где и будет циркулировать, пока не завершится.

Многоуровневые очереди с обратными связями — это идеальный механизм, позволяющий разделять процессы на категории в соответствии с их потребностями во времени ЦП. В системе с разделением времени каждый раз, когда процесс выходит из сети очередей, он может быть помечен признаком очереди самого низкого уровня, в которой он побывал. Когда этот процесс впоследствии вновь войдет в сеть очередей, он будет направлен прямо в ту очередь, в которой он последний раз завершал свою работу. Здесь планировщик действует на основе следующего эвристического правила: поведение процесса в недавнем прошлом может служить хорошим ориентиром для определения его поведения в ближайшем будущем. Поэтому процесс, лимитируемый ЦП, при своем возвращении в сеть очередей не будет помещаться в очереди более высоких уровней, где он только мешал бы обслуживать короткие процессы высокого приоритета или процессы, лимитируемые вводом-выводом.

Если процессы всегда помещать в сеть очередей на самый низкий уровень, который они занимали прошлый раз, то система не сможет реагировать на изменения характера процесса, например на то, что процесс, бывший по преимуществу вычислительным, становится преимущественно «обменным». Эту проблему можно решить, если в метке, которой сопровождается процесс, указывать длительность его выполнения при последнем пребывании в сети очередей. Когда такой процесс вновь поступит в сеть очередей, его можно будет поместить в нужную очередь. Если процесс войдет в новую фазу, в которой он вместо лимитируемого ЦП станет обменным, первоначально он будет несколько страдать от «неповоротливости» системы, пока система не определит, что характер процесса изменился. Однако описываемый механизм планирования довольно быстро реагирует на подобные изменения. Еще один путь обеспечения быстрой реакции системы на изменения в поведении процесса — это позволить процессу перемещаться на один уровень вверх в сети очередей каждый раз, когда он добровольно освободит ЦП еще до истечения выделяемого ему кванта времени.

Многоуровневые очереди с обратными связями — показательный пример адаптивного механизма — механизма, который может реагировать на изменение поведения контролируемой им системы. Адаптивные механизмы, как правило, требуют больших накладных расходов, чем неадаптивные, однако присущая им чувствительность к изменениям режима работы делает систему более реактивной и компенсирует накладные расходы.

Одним из распространенных вариантов механизма многоуровневых очередей с обратными связями является вариант, в котором процесс несколько раз циркулирует в каждой очереди, прежде чем перейти в очередь следующего нижележащего уровня. Как правило, количество подобных циклов в каждой очереди увеличивается по мере перехода процесса на нижележащие уровни.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]