Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БОС_Магданов.docx
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
460.85 Кб
Скачать

4.Средства и алгоритмы управления задачами ос.

В ОС различают два уровня управления:

  1. Внешний уровень.

  2. Уровень планирования.

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

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

  1. Идентификационные данные пользователя.

  2. Общую информацию, такую как максимально требуемый объем оперативной памяти, приоритет, вид вывода, требуемые внешние устройства и т.д.

  3. Содержательный компонент – одно или несколько заданий на обработку.

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

Средства управления задачами первого уровня включают в себя, как правило, следующие компоненты:

  1. Системный ввод.

  2. Инициатор.

  3. Терминатор (уничтожитель).

  4. Системный вывод.

Основным элементом первой компоненты является языковой процессор, который преобразует информацию, вводимую посредством установленного интерфейса во внутреннее представление ОС. Различают два типа языковых процессоров: компиляторы и интерпретаторы.

Первые обрабатывают и анализируют все задание целиком и формируют некоторое внутреннее (исполняемое) представление задания, как единый объект.

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

Интерпретатор требует меньше оперативной памяти, поскольку он не сохраняет всю информацию целиком, но глубина планирования мала по сравнению с компиляторами.

В функции системного ввода входит:

  1. Считывание управляющих операторов, их анализ и формирование управляющих таблиц.

  2. Создание входных очередей в соответствии с принятыми режимами и дисциплинами обслуживания.

  3. Запись входных данных и программ каждого задания в память прямого доступа.

  4. Создание основы выходных очередей для программного вывода и системных сообщений.

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

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

  1. Распределение необходимых для работы ресурсов.

  2. Порождение необходимых для работы процессов.

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

После выполнения этих действий инициатор передает управление системе управления процессами (происходит переход на второй уровень – уровень планирования).

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

  1. Освобождение всех ресурсов, ранее закрепленных за задачей или работой (если это последняя задача).

  2. Выполнение действий по уничтожению задачи или работы и выполнение коррекции входных очередей.

  3. Выдача разрешения системному выводу на вывод результатов и системных сообщений.

  4. Подготовка условий для вывода инициатора из состояния ожидания для последующей инициализации заданий пакета.

Здесь важно отметить следующую болевую точку безопасности операционных систем: происходит утечка информации – при удалении адресов (ссылок) из таблицы адресов физические данные остаются, следовательно, мы можем получить к ним доступ, т.е. для защиты данных необходима физическая очистка.

Второй уровень. Средства управления задачами второго уровня.

Инициатор передает управление системе управления процессами, которая часто называется супервизором процесса, монитором и т.д.

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

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

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

По структуре различают: простые, оверлайные (англ. – overline) и динамические загрузочные модули. Простой загружается в память целиком, выполняется как единое целое, по завершению освобождает память. Второй создается редактором связи, как имеющий сегменты кода, которые необязательно должны одновременно находиться в памяти во время выполнения. Модули динамической структуры могут загружаться в память полностью или частично. Различают модули с динамической последовательной и динамической параллельной структурой.

По способу использования модули различают на: однократно используемые, повторно (многократно) используемые и реентерабильные (англ. – re-enter, повторно входимые модули).

Представителем процесса в ОС является дескриптор процесса. Он содержит основную информацию о процессе, такую как идентификатор, приоритет, текущее состояние и т.д.

Система управления процессами должна выполнять следующие операции:

  1. Создание или порождение образованного процесса.

  2. Уничтожение процесса.

  3. Приостановка процессов.

  4. Возобновление процессов.

  5. Изменение приоритетов процессов.

Реализация систем внутреннего планирования в различных ОС различна, но все они содержат следующие основные компоненты:

  1. Диспетчер процессов.

  2. Супервизор процессов.

  3. Супервизор памяти.

  4. Супервизор таймера.

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

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

Супервизор памяти выполняет распределение ОП в соответствии с принятой дисциплиной распределения памяти.

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

Рассмотрим алгоритмы управления первого и второго уровня. Все алгоритмы планирования как внешнего, так и внутреннего уровня имеют эвристический характер (точно не доказываются, основываются на опыте работы ввиду сложности самой системы).

В системе с разделением времени внешнее планирование осуществляется по одному из двух алгоритмов:

  1. Алгоритм безприоритетного планирования.

  2. Алгоритм приоритетного планирования.

Содержание алгоритмов ясно из их названия.

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

  1. Алгоритм минимизации простоя оборудования.

  2. Алгоритм упорядочивания по требованиям на ресурсы.

  3. Алгоритм упорядочивания по требованиям на загрузку ЦП.

2-3 – простые алгоритмы. Очевидно, что сначала входная очередь упорядочивается с заданными значениями, а затем по выбранной дисциплине.

Первый более сложен, поэтому рассмотрим основную схему алгоритмы минимизации, время простоя ЦП и внешних устройств.

N – Количество задач в смеси. Каждой i-й задаче сопоставим следующие компоненты: Tцi – запрос времени ЦП для i-ого заданий; Tвi – запрос на загрузку внешнего устройства. При этом у нас есть пороговые значения – обслуживание заданий j-м ресурсом Tji; оптимальное количество задач в смеси относительно ЦП и внешних устройств – Nоц и Nов; фактическое количество таких задач – Nфц и Nфв; пороговые значения времени – Tцп и Твп.

Алгоритм можно разбить на две взаимосвязанные части:

  1. Процедура формирования очередей.

  2. Процедура включения задач в рабочую смесь.

Первая процедура обеспечивает распределение задач в очереди по следующему принципу:

  1. Очередь z0: Тцi < Tцп; Твi < Tвп.

  2. Очередь z1: Тцi >= Tцп; Твi < Tвп.

  3. Очередь z2: Тцi < Tцп; Твi >= Tвп.

  4. Очередь z3: Тцi >= Tцп; Твi >= Tвп.

Вторая процедура обеспечивает выборку заданий из очередей по следующим правилам:

  1. Nфц < Nоц; Nфв < Nов.

  2. Nфц < Nоц; Nфв >= Nов.

  3. Nфц >= Nоц; Nфв < Nов.

  4. Nфц >= Nоц; Nфв >= Nов.

Если выполняется условие 1, то задания выбираются из очередей z1,z2 и z3. Если выполняется условие 2, то задания выбираются из очереди z1, при ее истощении – из z0. При выполнении третьего условия задания выбираются из очереди z2, при ее истощении – из z0. Условие 4 – выбираются из z0, при истощении из z1,z2,z3 по правилу выбора из очередей.

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

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

Единица работы ОС является процесс.

Процессы могут быть главными и подчиненными, последними и параллельными, активными и ожидающими.

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

Для управления параметрами необходима другая информация – значительно меньшая по объему – такая, как идентификатор состояния процесса, степень привилегии, данные о нахождении программного кода и некоторая другая. Такую информацию называют дескриптором процесса.

Очевидно, что процессы при управлении обрабатывают очередь, которые реально представляются дескрипторами процессора, объединяющими в списки. А это означает, что каждый дескриптор – соседний в очереди. В итоге программный код начинает выполняться только когда для него ОС будет создан процесс. Это означает:

  1. Создать дескриптор и контекст процесса, то есть его информационную структуру.

  2. Включить дескриптор нового процесса в очередь готовых процессов

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

В последнее время появилась новая концепция много нитевой обработки в ОС, связывающая с понятием нить («thread» - нить). На самом деле концепция достаточно проста. С помощью нее понятие процесса выполняется из внутри (для ОС) на уровень пользователя.То есть в таких системах существуют средства в языках программирования, которые позволяют пользователям писать код программы, используя идеологию процесса.

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

Тенденция показывает стремление реализовать ОС как можно более открытой для пользователя с целью повышения их эффективности и создания удобства. И эта тенденция противоположна шаговой задаче защиты информации.

В состав алгоритма внутреннего планирования входят:

  1. Алгоритм управления, количество процессов в работающей смеси;

  2. Алгоритм планирования очередности выбора задач на выполнение;

  3. Алгоритм выбора кванта времени ЦП для отдельного процесса.

Первый алгоритм зависит в основном от следующих трех параметров:

  1. Длительности квантов времени,

  2. Времени сохранения и восстановления процесса

  3. Времени затраченным ОС на организацию мультипрограммирования.

Варьируя эти параметры, можно получить разное количество параметров в рабочей смеси, соответственно различную производительность ВС. Наиболее редко изменяется в сторону увеличения сторона кванта. Наибольший выигрыш с точки зрения эффективности дает сохранение параметров (2) и (3).

В современной ВС применяется все перечисленные способы увеличения эффективности их работ.

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

  1. Циклической обработки;

  2. Очередей с обратной связью;

  3. Выбора по характеру исполнения предыдущего кванта;

  4. Выбора с приоритетом по характеру блокировки процесса;

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

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

Алгоритм выбора по характеру исполнения предыдущего кванта различает 2 типа состояния готовности процесса:

  1. Низкоприоритетная готовность;

  2. Высокоприоритетная готовность;

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

По приоритету алгоритм осуществляет регулирование детальности кванта для каждого приоритета в зависимости от его текущего приората.

Зависимость должна быть:

  1. Монотонной;

  2. По монотонно определяющей;

  3. Ограниченной.

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