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