Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory / shpory_OS_2012.docx
Скачиваний:
28
Добавлен:
11.06.2015
Размер:
350.42 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в папке shpory