В связи с тем, что С2-приложение управляет множеством одновременно возникающих задач, необходим Планировщик. Планировщик управляет всеми процессами в G2 (Рисунок 8.1 ). Планировщик определяет порядок обработки задач, взаимодействует с источниками данных и пользователями, запускает процессы и осуществляет коммуникацию с другими процессами.
Планировщик циклически выполняет следующую последовательность шагов.
- Проверка наступления начала цикла: если начало цикла наступило, планировщик начинает цикл и переходит к следующему шагу.
- Планирование ожидающих задач: Планировщик формирует список задач, которые будут выполнятся на данном цикле - очередь текущих задач.
- Обслуживание источников данных. Каждому источнику данных отводится не более 0,1 с на выполнение этой операции. Для источников, не закончивших обмен за выделенное время, планируются задачи для попытки закончить передачу данных.
Рисунок 8.1 Работа планировщика G2
Выполнение задач: Планировщик берет очередь текущих задач и пытается выполнить как можно большее их число. Любая из задач, не закончившаяся в течение 0,2 с , откладывается для выполнения в конце данного цикла или в следующем цикле.
- Обслуживание сетевых пакетов: Планировщик посылает и получает сообщение через сеть. На это выделяется до 0,2 с.
- Обслуживание пользователей: Планировщик принимает и передает данные для всех пользователей, работающих в данном сеансе G2. Это включает и пользователей Telewindows.
- Подготовка к следующему циклу: Планировщик проверяет, осталась ли какая-либо активность в рамках данного цикла. Если да, (получение данных, завершение отложенных задач, и т.п.), он возвращается к шагу 1 и проверяет, не наступило ли время нового цикла. Если нет, то переходит к шагу 3 для завершения всех отложенных задач. Если да, переходит на следующий цикл. Если отложенных задач не осталось и время нового цикла не наступило, то наступает пауза на 40 мс и после этого переходит к шагу 1.
|