Обработка прерываний. Часть 3.

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

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

  1. образование задачи как мультипрограммной единицы;
  2. поддержание совокупности задач, одновременно выполняемых в вычислительной системе;
  3. переключение управления между задачами;
  4. завершение задачи.

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

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

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

Наиболее распространенный принцип — приоритетный. Все блоки ТСВ располагаются в очереди задач в порядке убывания установленного приоритета. Системные задачи, как правило, имеют самый высокий приоритет. Блок ТСВ располагается в очереди в соответствии с приоритетом задачи.

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

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