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