Cтраница 1
Циклические очереди с обратной связью состоят из п подоче-редей. Существует правило, по которому можно определить конкретную подочередь, соответствующую данной программе. Кроме того, между программами, относящимися к различным подочере-дям, возникают особые отношения. Принципиальная структура циклической очереди с обратной связью изображена на рис. 10.4. Стрелки означают, что по завершении некоторого фиксированного интервала обслуживания программа может либо остаться в своей подочереди, либо переместиться в другую. Правила перемещения программ в подочередях иногда окончательно устанавливаются при создании системы, а иногда допускают параметризацию в процессе ее установки. [2]
ОС автоматически составляет циклическую очередь пользователей. В составе центрального процессора должен быть так называемый таймер - электронные часы, через определенные промежутки времени прерывающие выполнение очередной программы. После каждого такого прерывания управление получает ОС, которая передает управление программам следующего по очереди пользователя. Длительность цикла обслуживания должна быть достаточно малой. Тогда каждый пользователь чувствует себя так, будто ЭВМ обслуживает его одного. Прерывистый процесс работы ЭВМ воспринимается им как непрерывный. [3]
![]() |
Удаление элемента из циклической очереди.| Пустая и полная циклические очереди. [4] |
Иногда сложно бывает отличить полную циклическую очередь от пустой. В обоих случаях начало и конец очереди совпадают. На рис. 3.5 показаны две циклические очереди, одна пустая, а другая полная. [5]
Объясните, как с помощью циклической очереди с обратной связью можно добиться того, чтобы для выполнения диспетчером всегда выбиралась задача, наиболее интенсивно использующая процессы обмена. [6]
Посмотрим теперь, как с помощью циклической очереди с обратной связью можно добиться того, чтобы для выполнения диспетчером всегда выбиралась задача, наиболее интенсивно использующая процессы обмена. Размещение программ по подочередям легко организовать так, что в первую подочередь будут попадать программы, которым перед первым обращением к подсистеме ввода-вывода необходимо выполнить счетные работы ограниченного объема. Если программа выдает запрос на в вод-вывод до истечения установленного интервала времени, то она остается в своей подочереди, в противном случае она перемещается - в следующую с большим интервалом процессорного обслуживания. Итак, в любой момент времени распределение программ смеси по подочередям соответствует их разбиению по степеням интенсивности обращения к вводу-выводу, причем наиболее активные потребители услуг системных компонентов, предназначенных для поддержки обменных операции, находятся в первой подочереди, а наиболее активные потребители процессорного времени - в последней. [7]
![]() |
Добавление элемента к циклической очереди. [8] |
На рис. 3.4 показан процесс удаления элемента из циклической очереди. Первый элемент, в данном случае элемент А, удаляется из начала очереди, ауказатель на начало очереди обновляется, чтобы ссылаться на следующий элемент массива. [9]
Программа С i re leQ демонстрирует этот подход для реализации циклической очереди. [10]
Если, например, оказывается, что все активные задания счетные и их следует поместить в конец циклической очереди, то промежуточный планировщик в состоянии перевести некоторые из них на время в нерабочее состояние, заменив их заданиями, интенсивно обращающимися к вводу-выводу, из числа заданий, находящихся в OUT-очереди. В частности, SRM при выполнении своих функций пользуется указаниями компонентов управления рабочей нагрузкой, использованием процессора и каналов. На основе этих указаний задания ставятся в диспетчерскую очередь или удаляются из нее. Управление рабочей нагрузкой ( Work-load Manager) контролирует скорость обслуживания программ, относящихся к различным приоритетным группам. Управление использованием процессора ( CPU Manager) постоянно анализирует, используется ли должным образом центральный процессор. В общем, все рекомендации компонентов управления рабочей нагрузкой и использованием процессора комплексно применяются для формирования заключения о том, какие программы следует приостановить, переместив их в OUT-очередь. [11]
Однако простейший алгоритм квантования все-таки не избавляет от необходимости частых перезагрузок, и поэтому удобнее воспользоваться другим алгоритмом, создающим и поддерживающим структуру циклической очереди с обратной связью. Предположим, например, что одной из программ, вызываемой с терминала, требуется для завершения и выдачи ответа 5000 икс процессорного времени. Если интервалы обслуживания составляют 50 мкс каждый, то, следовательно, программе потребуется 100 таких порций и соответственно ее нужно будет 100 раз перезагружать в память. Конечно, число необходимых перезагрузок непосредственно зависит от размеров предоставляемых данной программе интервалов обслуживания. [12]
![]() |
Время ожидания в минутахдля одно - и многопоточных очередей. [13] |
Различные реализации стеков и очередей обладают неодинаковыми свойствами. Стеки и циклические очереди на основе массивов просты и эффективны, в особенности если заранее известен их потенциальный размер. Связанные списки обеспечивают большую гибкость, если необходимо часто изменять размер списка. [14]
Драйвер терминала направляет неграфическне данные в циклическую очередь, откуда они либо выдаются на телетайп, либо выводятся на экран эмулятором алфавитно-цифрового дисплея. Каждый блок графических данных состоит из двух списков, разделенных дополнительной литерой SOM. Первый список является таблицей сообщений, содержащей команды языка L4, которые необходимо проинтерпретировать. Второй список представляет собой список данных, содержащий блоки данных переменной длины, связанные с каждой из команд L4 в таблице сообщений ( разд. [15]