Далее рассмотрим более сложные многоочередные ДРР [10].
2. Неприоритетная многоочередная ДРР (рис.2.8) основана на КЦА:
· организуется N очередей;
· все новые запросы поступают в конец очереди 1;
· первый запрос очереди i (1≤i≤N) поступает на обслуживание, если очереди 1, 2,…, (i-1) – пусты;
· на обслуживание выделяется квант времени tk;
· не до конца обслуженный запрос возвращается в конец очереди (i+1), что похоже на неявное снижение приоритета длинного запроса.
Рис.2.8. Схема неприоритетной многоочередной ДРР
Ее особенности: наиболее быстро обслуживаются короткие запросы; возникают непроизводительные затраты времени на перемещение запросов из одной очереди в другую; длинные запросы обслуживаются еще медленнее, чем в КЦА.
4. Приоритетная многоочередная ДРР (рис.2.9) также основана КЦА и является модификацией предыдущей дисциплины. Она отличается от предыдущей дисциплины тем, что каждый новый запрос имеет приоритет p=1÷N и попадает в очередь с номером j=N-p+1.
Рис.2.9. Схема приоритетной многоочередной ДРР
По отношению к новым запросам с приоритетами возможны две следующие стратегии поведения системы.
5. Обслуживание с абсолютным приоритетом. Если во время обслуживания запроса из очереди i поступает запрос в очередь j < i, то обслуживание i-го уровня прерывается, система начинает обслуживать более приоритетный запрос в течение tk. После окончания его обслуживания продолжается обслуживание прерванного запроса i-го уровня. Особенности: дискриминация низкоприоритетных запросов, время ожидания высокоприоритетных уменьшается, усложняется логика работы системы и ее реализация, появляется проблема прерывания обслуживания, и понадобятся дополнительные средства и ресурсы для ее реализации. Дисциплина подходит для систем управления объектами, в которых важна быстрая реакция на событие. Но при таком подходе возникают и сложные организационные проблемы:
· найти удачное правило продолжения обслуживания прерванного запроса:
Ø когда ему вновь выделять ресурс (если сразу – новые затраты);
Ø учитывать, что ресурс уже использовался до прерывания, или нет;
· выбрать, в какую очередь помещать прерванный запрос (i+1, i, i-1);
· что делать, если во время прерывания обслуживания появится еще запрос уровня q < I (проблема маскирования)?
6. Обслуживание с относительным приоритетом. Новый запрос не вызывает прерывания обслуживания запроса, даже если обслуживается менее приоритетный запрос. Только после окончания обслуживания текущего (менее приоритетного) запроса начнется обслуживание нового (более приоритетного). Особенности: минимизируются затраты на переключения процессора, но допускается его монополизация. Дисциплина не подходит для систем РДВ и РВ.
55 Какие факторы в реальных условиях осложняют решение проблемы распределения ресурсов?
Проблема распределения ресурсов в реальных условиях может оказаться гораздо сложнее, так как потребуется учет:
· взаимосвязи процессов;
· стратегий распределения других ресурсов;
· тупиковых ситуаций, когда возникает циклический конфликт занятости ресурсов [1, 2]. Пример подобной ситуации приведен на рис.2.10, где Процессу 1 требуются Ресурсы 1 и 2, но выделяется только Ресурс 1, так как Ресурс 2 ранее уже был выделен Процессу 2, которому требовался еще Ресурс 1. Но Ресурс 1 также занят и не может быть выделен Процессу 2;
· прав процесса использовать разделяемый ресурс;
· специфики самого ресурса.
|
| ||||||||
|
|
Рис.2.10. Пример тупиковой ситуации
Кроме рассмотренных ДРР, существуют и другие, ориентированные на специфику самого распределяемого ресурса. Например, при распределении ОП используется: