Операционные системы и программное обеспечение на платформе zSeries


Управление задачами


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

Для каждой задачи z/OS строит специальный управляющий блок - блок управления задачей TCB (Task Control Block), который содержит основные атрибуты задачи и размещается в адресном пространстве соответствующего приложения (в области планировщика работ SWA/ESWA пользовательского региона). В общем случае с каждым адресным пространством ассоциируется несколько TCB, включая некоторые системные задачи, обслуживающие выполнение пользовательских приложений. Все блоки TCB связаны между собой в иерархическую цепочку с помощью специальных указателей.

Наряду с задачами в z/OS существует еще один тип работ - так называемые "запросы на выполнение сервисных программ". Эти запросы инициируются системным кодом, исполняемым в некотором адресном пространстве, для выполнения действий, затрагивающих другое адресное пространство. Запросы выполняются в невытесняющем режиме и имеют ряд ограничений, связанных с невозможностью применения системных вызовов (SVC-прерываний) и использования памяти вне области SQA. Для каждого такого запроса система строит управляющий блок, получивший название SRB (System Request Block).

Таким образом, в любой момент времени в системе присутствует некоторое количество работ в виде задач и запросов, которые готовы к выполнению и нуждаются в предоставлении процессорного времени. Проблема распределения процессорного времени решается с помощью специальной системной программы, тесно связанной с процедурой обработки прерываний, которая называется диспетчер (dispatcher) или планировщик работ [7].

Диспетчер формирует очереди работ WUQ (Work Unit Queue) из числа вновь созданных, а также готовых к выполнению, но ранее прерванных задач и запросов (рис. 5.12).


- Начало -  - Назад -  - Вперед -



Книжный магазин