Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Двухуровневая схема управления процессами.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
208.38 Кб
Скачать

Уровень долгосрочного планирования

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

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

Порождение задания заключается в создании ВМ и сводится к выполнению планировщиком верхнего уровня следующих действия:

  1. Резервируются все ресурсы, указанные в задании и необходимые для исполнения программы работы. Это относится и к данным. Обеспечивается организация доступа к данным, которые находятся во ВП и управляются соответсвующими средствами ОС.

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

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

Состояние «готовность» для задания означает, что для исполнения программы представлены все ресурсы ВМ, кроме виртуально процессора. Деятельность виртуального процессора по исполнению каждого элементарного действия программы задания моделирует на центральном процессоре планировщик нижнего уровня (краткосрочного планирования), организуя развитие соответствующих процессов. Следовательно, для исполнения элементарного действия программы работ планировщик верхнего уровня должен выработать в установленном виде заявку на порождение определенного процесса на нижнем уровне. Порождение такой заявки и составляет содержание системных дейтсвий по переводу работы из состояния «готовность» в состояние «активность».

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

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

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

Компилятивный принцип объединяет несколько автономных и больших программных подсистем. Это совокупность системных программных средств обеспечивает ввод текстов заданий , записанных на языке управления заданиями, выполняет компилирующие функции. В ОС UNIX языковый процессор построен по интерпретационному принципу. Роль процессора выполняет в системе специальная Shell-программа, которая рассматривается в системе как служебная интерактивная программа (программа утилит). Название утилиты весьма образно поддеркивает ее место в системе: Shell в переводе с английского - оболочка. В самом деле, эта утилита по отношению к пользователю выступает как оболочка ядра системы. Через эту утилиту пользователь взаимодействует с ядром. Shell-программа является разделяемой программой среди пользователей и построена как реентабельная. При обращении с единичным пользователем она ведет с ним диалог. Shell-программа обеспечивает интерпретацию команд, поступающих от пользователей по мере ведения с ним диалога, а также обеспечивает выполнение на фоне диалога требуемых пользовательских программ.