Динамическая последовательная структура программ, общая характеристика и разновидность.

Программы с динамической последовательной и параллельной структурами

Обе эти структуры при выполнении программы используют несколько модулей. Для управления модулями и установления связи между ними используется четыре макрокоманды: LINK, XCTL, LOAD, DELETE.

Каждый модуль загрузки, работающий в системе, может быть одного из 3-х типов:

1) Однократно используемый модуль 2)Повторно используемый модуль 3)Реентерабельный модуль загрузки

Однократно используемый модуль загрузки вызывается всякий раз, когда к нему обращаются. Он изменяется в ходе своего выполнения, так что каждый раз необходимо его новая копия.

Повторно используемый модуль загрузки является самовосстанавливающимся, так что его команды восстанавливаются перед повторным выполнением. Повторно используемый модуль могут использовать несколько подзадач одного шага задания, если одновременно две задачи потребуют этот модуль, то вызывается его копия.

Вызова второй копии можно избежать, если в системе есть организация очередей повторно используемых модулей.

Реентерабельный модуль загрузки – это модуль, который не изменяется в ходе своего использования. В виде реентерабельных модулей разрабатываются системные задачи и имеют при этом нулевой ключ защиты памяти. Реентерабельный модуль может использоваться любой активной задачей в системе. Данные и управляющая информация хранятся обычно в регистрах ЭВМ и в личных управляющих секциях, которые являются частью программы пользователя и не входят в реентерабельный модуль загрузки. В системах мультипрограммирования использование реентерабель­ных модулей минимизирует требования к объему ОЗУ. Эти модули обладают одной особенностью, т.к. активная задача в момент выполнения такого модуля только считывает информацию из памяти, то ее ключ защиты в ССП !может не совпадать с ключом защиты памяти, в котором помещен модуль загрузки. Это позволяет любой активной задаче использовать такие реентерабельные модули системы, которые управляют методами доступа.

Планировщик задач, структура.

В общем смысле термина, операционная система является посредником между приложениями и ресурсами. К ресурсам обычно относят память и физические устройства. Но центральный процессор (ЦП) можно также считать ресурсом, который планировщик на некоторое время (измеряемое в отрезках ) выделяет задаче. Планировщик обеспечивает параллельное выполнение нескольких программ, распределяя ресурсы ЦП между различными задачами различных пользователей.

Важной целью планировщика является эффективное распределение отрезков процессорного времени при условии обеспечения пользователю времени ожидания на приемлемом уровне. Помимо этого, перед планировщиком могут стоять противоречащие друг другу цели, такие, как минимизация времени ожидания при выполнении критически важных задач реального времени и максимальное использование ресурсов ЦП. Посмотрим, как планировщик задач Linux 2.6 справляется с достижением этих целей в сравнении со своими предшественниками.

Каждый ЦП имеет очередь задач, состоящую из 140 списков, обслуживаемых в порядке FIFO и содержащих задачи, имеющие соответствующий приоритет. Задачи, запланированные к выполнению, добавляются в конец списка. Каждой задаче выделяется отрезок времени, определяющий продолжительность ее выполнения. Первые 100 списков очереди задач зарезервированы для задач реального времени, а последние 40 - для пользовательских задач Позже вы поймете важность этого разграничения.

Помимо очереди задач ЦП, называемой активной очередью задач , существует еще неактивная очередь. После того, как задача, находящаяся в активной очереди, исчерпывает отведенный ей отрезок времени, она переносится в неактивную очередь . При переносе происходит пересчет ее отрезка времени (также пересчитывается ее приоритет, но об этом позже). Если в активной очереди отсутствуют задачи с данным приоритетом, соответствующие указатели активной и неактивной очередей меняются местами; при этом неактивный список становится активным.

Работа планировщика задач не отличается сложностью: он просто выбирает задачу для выполнения из списка с наивысшим приоритетом. Чтобы повысить эффективность этого процесса, для определения наличия задач в списке используется битовый массив. Следовательно, для поиска бита, соответствующего списку с наивысшим приоритетом, можно использовать инструкцию find-first-bit-set, которую поддерживает большинство архитектур процессоров. Время, затрачиваемое на поиск задачи, зависит не от числа активных задач, а от числа приоритетов. Следовательно, планировщик версии 2.6 является процессом сложности O(1), поскольку время, затрачиваемое на планирование задачи постоянно и детерминистично вне зависимости от числа активных задач.




Планировщик задач и иерархия уровней ОС.

Первая программа, входящая в состав планировщика заданий программа-интерпретатор, которая осуществляет чтение входного задания, затем строит таблицы, которые использует во время инициирования и выполнения задания. В системе с приоритетным планированием интерпретатор делает занесение входной информации в очередь по входным приоритетам.

Вторая программа инициатор-терминатор, выбирает из очереди входных работ очередное задание, анализирует требования к УВВ, выделяет их, выдает указания в требуемых томах.

В мультипрограммных системах выходные файлы могут запоминаться на устройствах прямого доступа или выдаваться сразу на устройства вывода во время выполнения. Вывод данных на устройства выполняется программой системы вывода (3-я часть планировщика заданий).

В случае если планирование осуществляется по приоритету задания, работы выполняются в той последовательности, в которой они расположены во входном потоке. Управляющая информация, связанная с каждым заданием помещается в очередь входных работ из которой затем соответствующие программы выбирают задания для обработки.

Программы главного планировщика предназначены для осуществления связи системы с человеком. Обычно программы главного планировщика интерпретируют следующую информацию:

1. Команды изменяющие статус задания.

2. Команды вызывающие изменение действий планировщика заданий (информация о новом устройстве или временной неработоспособности какого-либо устройства).

3. Запросы на информацию о статусе системы или некоторых заданий.

4. Сообщение текущей даты и времени, ответы на запрос системы или программы пользователя.

32 .Структура планировщика задач в многоуровневой ОС

Управляющая информация, связанная с каждым заданием, помещается в очередь входных работ. Эта очередь обычно находится на устройствах с прямым доступом. Наличие очереди позволяет системе учитывать приоритеты заданий и задержки, которые могут быть вызваны работой УВВ. Инициатор-интерпретатор может просмотреть следующие пункты задания и заранее выдать команды на ввод или вывод другого задания. В некоторых вариантах ОС имеется возможность обрабатывать задания, управляющая информация для которых передается с выносного терминала работающего в оперативном режиме. В этом случае для обработки управляющих предложений создается задача, которая называется обычно интерпретатором ввода. Управляющая информация помещается в очередь входных работ и в дальнейшем обрабатывается как обычно. Для каждого пункта выбранного задания инициатор проверяет выделены ли и самой задаче эти данные после образования подзадачи не потребуются, то желательно передача такого подпула в монопольное использование. Подпул задачи, содержащей данные, которые относятся только к этой задаче, не следует передавать подзадаче.

Управление подпулами в режиме мультипрограммирования осуществляется на уровне блоков памяти, закрепленных за подпулом и на уровне участков памяти внутри блоков. Блоки это непрерывные участки памяти длины кратной 2КБ. Память назначаемая программе пользователя представляется элементом очереди памяти (РQЕ)-адрес. которого содержится в блоках управления задачами (ТСВ) элемент FQE имеет в себе указатель границ Все подпулы используемые задачей представляются элементами очереди подпулов (SРQЕ). Адрес элементов SРQЕ, который строится последним также содержится в блоке ТСВ данной задачи. Элементы SРQЕ содержат номера предоставленных им пулов. Память назначаемая подпулу отводится блоками, которые представляются элементами описания блоков (DQЕ). Адрес первого элемента DQЕ в очереди содержится в соответствующем элементе SРQЕ. Элементы DQЕ содержат указатели границ представленного им блока памяти. Свободные блоки памяти представляются элементами очереди свободных блоков (FBQE). Адрес первого элемента FBQE содержится в элементе FQE данного раздела. Элементы FBQE имеют указатели границ соответствующих им блоков свободной памяти.


Наши рекомендации