Дисциплины распределения ресурсов (ДРР) - весьма важный показатель, влияющий на эффективность работы ЭВМ. Применение той или иной дисциплины распределения зависит от особенностей использования данного ресурса, критериев оценки эффективности работы системы, а также от сложности реализации данной ДРР
Одноочередные дисциплины
FIFO (First In - First Out) - первый пришел - первый обслужен
Схема доступа - очередь.
Широко используется в качестве как самостоятельной дисциплины распределения, так и составной части более сложных дисциплин.
Время нахождения в очереди длинных (то есть требующих большого времени обслуживания) и коротких запросов зависит только от момента их поступления.
LIFO (Last In - First Out) - последний пришел - первый обслужен
Схема доступа - стек.
Круговой циклический алгоритм
Запрос обслуживается в течение кванта времени tk. Если за это время обслуживание не завершено, то запрос передается в конец входной очереди на дообслуживание.
Здесь короткие запросы находятся в очереди меньшее время, чем длинные.
27. Многоочередная дисциплина распределения ресурсов в мультипрограммных ЭВМ и ее модификации.
Многоочередные дисциплины
Базовый вариант многоочередной дисциплины обслуживания
Основа дисциплины - круговой циклический алгоритм.
Все новые запросы поступают в очередь 1.
Время, выделяемое на обслуживание любого запроса, равно длительности кванта tk. Если запрос обслужен за это время, то он покидает систему, а если нет, то по истечении выделенного кванта времени он поступает в конец очереди i +1.
На обслуживание выбирается запрос из очереди i, только если очереди 1,…, i -1 пусты.
Таким образом, длинные запросы поступают сначала в очередь 1, затем постепенно доходят до очереди N и здесь обслуживаются до конца либо по дисциплине FIFO, либо по круговому циклическому алгоритму.
Выделяемый программе квант времени на обслуживание возрастает с увеличением номера очереди обычно по правилу
tki = 2i-1 x tk
где tk - квант времени, выделяемый для программ из очереди 1.
Такая дисциплина обслуживания наиболее благоприятна коротким программам, хотя явного указания приоритетов программ здесь нет. Степень благоприятствования тем выше, чем меньше tk. Однако уменьшение длительности кванта ведет к увеличению накладных расходов, необходимых для перераспределения ресурса между программами.
Данная ДРР может работать как с относительными, так и с абсолютными приоритетами программ.
Обслуживание программ с относительными приоритетами.
Заявка, входящая в систему, не вызывает прерывания обслуживаемой заявки, даже если последняя и менее приоритетна. Только после окончания обслуживания текущей заявки начинается обслуживание более приоритетной.
Обслуживание программ с абсолютными приоритетами.
Если во время обслуживания программы из очереди i в очередь с большим приоритетом поступает новая программа, то после окончания текущего кванта tk обрабатываемая программа прерывается и возвращается в начало своей очереди, с тем чтобы впоследствии дообслужиться на время, недобранное до 2i-1 x tk.
Система с динамическим изменением приоритетов программ.
Чтобы избежать недопустимо долгого ожидания для больших программ, приоритет делается зависимым от времени ожидания в очереди. Если ожидание превысит некоторое установленное время, программа переводится в очередь с меньшим номером.
Система со статическим указанием приоритетов программ.
Считается, что продолжительность выполнения программы приблизительно пропорциональна ее длине. По крайней мере, от длины программы прямо зависит время, затрачиваемое на передачу программы между ОЗУ и внешним ЗУ при ее активизации.
Определение номера очереди, в которую поступает программа при первоначальной загрузке, осуществляется по алгоритму планирования Корбато: программа сразу поступает в очередь i = [log2 lp/ltk + 1], где lp - длина программы в байтах; ltk - число байт, которые могут быть переданы между ОЗУ и внешней памятью за время tk (рис. 13.5).
Рис. 13.5. Схема распределения ресурса при многоочередной дисциплине обслуживания со статическим указанием приоритетов программ
Эта дисциплина позволяет сократить количество системных переключений за счет того, что программам, требующим большего времени решения, будут предоставляться достаточно большие кванты времени уже при первом занятии ими ресурса (нерационально программе, которая требует для своего решения 1 час времени, первоначально выделять квант в 1 мс).