рассмотрим систему управления процессом. Требуется, чтобы конт-
роль и управление происходили бы каждые 100 мсек. Другими харак-
теристиками, требующими контроля, являются давление, влажность и
химический состав. Эти характеристики требуют менее частого конт-
роля, чем температура процесса.
Предположим, что процедура temp_control требует 10 мсек для
контроля и управления температурой. Процедура temp_control должна
выполняться каждые 100 мсек, потому что температуру следует конт-
ролировать каждые 100 мсек.
Аналогичным образом процедуры B, C, и D контролируют и уп-
равляют тремя другими характеристиками, как это показано в табли-
це 5-6. Далее, предположим, что процедуры C и D выполняются раз в
каждые 300 мсек, а процедура B выполняется два раза каждые
300 мсек.
Таблица 5-6
Процедуры, требуемые для данного примера
ЪДДДДДДДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДД¬
¦ ¦ Контроли- ¦ Время ¦ Требуемые повторы ¦
¦ Имя процедуры ¦ руемая ¦ выпол- ГДДДДДДДДДДДДДДДДДДДДґ
¦ ¦ характе- ¦ нения ¦время комментарий ¦
¦ ¦ ристика ¦ ¦ ¦
ГДДДДДДДДДДДДДДД†ДДДДДДДДДДД†ДДДДДДДДДД†ДДДДДДДДДДДДДДДДДДДДґ
¦ temp_control ¦Температура¦ 20 мсек ¦100 мсек Изменения ¦
¦ ¦ ¦ ¦ не разрешены¦
¦ B ¦ Давление ¦ 40 мсек ¦150 мсек Изменения ¦
¦ ¦ ¦ ¦ разрешены ¦
¦ C ¦ Влажность ¦ 60 мсек ¦300 мсек Изменения ¦
¦ ¦ ¦ ¦ разрешены ¦
¦ D ¦ Химический¦ 38 мсек ¦300 мсек Изменения ¦
¦ ¦ состав ¦ ¦ разрешены ¦
АДДДДДДДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ
Такая система реального времени может быть построена при ис-
пользовании конструкции циклического планировщика, представленной
блок-схемой 5-1. Здесь имеется три цикла: 0, 1 и 2. Последова-
тельность выполнения циклов такова: 0, 1, 2 и 0, 1, 2 повторно.
Отметим, что процедура temp_control выполняется один раз в
каждом цикле. Каждый цикл требует 100 мсек для своего выполнения,
куда включается время, требуемое для выполнения главного цикла,
время, требуемое для выполнения процедуры temp_control и время
"передышки", появляющейся в конце каждого цикла. "Передышки"
предназначены для синхронизации выполнения циклов с требованиями,
предъявляемыми к временам, затрачиваемым на наиболее часто выпол-
няемые процедуры (в нашем примере это относится к процедуре temp_
control).
- 5-28 -
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ ЪДДДДДДДДДД¬ ¦
¦ ¦ ¦ ¦
¦ ¦ СТАРТ ¦ ¦
¦ ¦ ¦ ¦
¦ АДДДДВДДДДДЩ ¦
¦ ¦ ¦
¦ ЪДДДДДДДДД¬ ¦
¦ ¦ ¦ ¦
¦ ¦счетчик=0 ¦ ¦
¦ ¦ ¦ ¦
¦ АДДДДВДДДДДЩ ¦
¦ ЪДДДДДДДДДДДДДДДДДДДДД>ґ ¦
¦ ¦ ЪДДДДДДДДДДДДДДДДДД¬ ¦
¦ ¦ ¦счетчик= счетчик+1 ¦ ¦
¦ ¦ ¦ ¦ ¦
¦ ¦ АДДДДДДДДВДДДДДДДДДДЩ ¦
¦ ¦ ¦ ¦
¦ ¦ ЪДДДДДДДДД¬ ¦
¦ ¦ 0 ¦переход по¦ 2 ¦
¦ ¦ ЪДДДДДДДДД¦счетчику ¦ДДДДДДД¬ ¦
¦ ¦ ¦ цикл 0 ¦на MOD3 ¦цикл 2 ¦ ¦
¦ ¦ ¦ АДДДДВДДДДДЩ ¦ ¦
¦ ¦ ¦ 1 ¦цикл 1 ¦ ¦
¦ ¦ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ¦
¦ ¦ ¦temp_cont-¦ ¦temp_cont-¦ ¦temp_cont-¦ ¦
¦ ¦ ¦rol ¦ ¦rol ¦ ¦rol ¦ ¦
¦ ¦ ¦ 20 мсек¦ ¦ 20 мсек¦ ¦ 20мсек ¦ ¦
¦ ¦ АДДДДВДДДДДЩ АДДДДВДДДДДЩ АДДДДВДДДДДЩ ¦
¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ¦
¦ ¦ ¦ B ¦ ¦ C ¦ ¦ В ¦ ¦
¦ ¦ ¦ 40мсек¦ ¦ 60мсек¦ ¦ 40мсек¦ ¦
¦ ¦ АДДДДВДДДДДЩ АДДДДВДДДДДЩ АДДДДВДДДДДЩ ¦
¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ЪДДДДДДДДД¬ ¦ ¦ ¦
¦ ¦ ¦ D ¦ ¦ ¦ ¦
¦ ¦ ¦ 38мсек¦ ¦ ¦ ¦
¦ ¦ АДДДДВДДДДДЩ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ ¦
¦ ¦ ¦пауза на ¦ ¦пауза на ¦ ¦пауза на ¦ ¦
¦ ¦ ¦ 2 мсек ¦ ¦ 20 мсек ¦ ¦ 40 мсек ¦ ¦
¦ ¦ АДДДДВДДДДДЩ АДДДДВДДДДДЩ АДДДДВДДДДДЩ ¦
¦ ¦ ¦
¦ АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ ¦
¦ <----- ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Блок-схема 5-1. Структура циклического планировщика
В блок-схеме 5-1 показана концепция построения циклического
планировщика без прерываний. Во многих прикладных программах мо-
жет оказаться необходимым использование прерываний, которые бы
сигнализировали о наличии внешнего события, требующего к себе
немедленного внимания. Циклический планировщик может быть также
построен с применением требований, что показано на рисунке 5-12.
На рисунке 5-12 (A) показано, как мы гарантируем то, что
главный цикл требует 100 мсек для выполнения каждого цикла, если
не возникает прерывания. Предположим, прерывание возникает во
- 5-29 -
время выполнения процедуры temp_control. Процедура temp_control
завершается и после этого обрабатывается прерывание. После обра-
ботки прерывания выполняется процедура B. Поскольку невозможно
предсказать момент возникновения прерывания, общее время выполне-
ния каждого цикла также не может быть предсказано. Таким образом,
время выполнения цикла циклическим планировщиком с прерываниями
является неопределяемым.
Преимуществами конструкции циклического планировщика являют-
ся:
. Простая форма мультизадачности.
. Определенность рабочего времени за исключением случаев
с прерываниями.
Недостатками этой конструкции являются:
. Неэффективность - все циклы должны выполняться до
полного своего завершения.
. Время выполнения цикла увеличивается с увеличением чис-
ла циклов.
. Трудность проведения модификаций и сохранения тех же
временных параметров.
¦ ¦ ¦ проис- ¦
¦ ¦ ¦ ходит ¦
ЪДДДДДДДДД¬ ¦ ЪДДДДДДДДД¬преры-¦
¦temp_cont-¦ ¦ ¦temp_cont-¦вание ¦
¦rol ¦ ¦ ¦rol ¦ДДДД ¦
¦ 20 мсек¦ ¦ ¦ 20 мсек¦ ¦
АДДДДВДДДДДЩ ¦ АДДДДВДДДДДЩ ¦
¦ ¦ ¦ ¦
ЪДДДДДДДДД¬ ЪДДДДДДДДД¬ общее вре-
¦ B ¦ общее время ¦прерывание¦ мя цикла
¦ 40мсек¦ цикла = 100 мсек ¦обслужено ¦ превышает
АДДДДВДДДДДЩ ¦ 20 мсек¦ 100 мсек
¦ ¦ АДДДДВДДДДДЩ из-за на-
ЪДДДДДДДДД¬ ¦ ЪДДДДДДДДД¬ личия пре-
¦ D ¦ ¦ ¦ B ¦ рывания
¦ 38мсек¦ ¦ ¦ 40 мсек¦ ¦
АДДДДВДДДДДЩ ¦ АДДДДВДДДДДЩ ¦
¦ ¦ ¦ ¦
ЪДДДДДДДДД¬ ¦ ЪДДДДДДДДД¬ ¦
¦пауза на ¦ ¦ ¦ D ¦ ¦
¦ 2мсек ¦ ¦ ¦ 38 мсек ¦ ¦
АДДДДВДДДДДЩ ¦ АДДДДВДДДДДЩ ¦
¦ ¦ ¦ ¦
А. Цикл 0, если преры- Б. Цикл 0 при наличии пре-
ваний не произошло рываний (неопределяемый)
(определяемый)
Рис. 5-12. Циклический планировщик при наличии прерываний:
неопределяемое время цикла
- 5-30 -
Выбор метода построения системы
Выбор структуры системы зависит от внешней среды, аппаратных
средств, а также от временных требований, предъявляемых к систе-
ме. Выбор также зависит от того, будут ли использоваться только
уже имеющиеся в наличии технические средства или планируется ис-
пользование новых аппаратных средств. Если будут приобретаться
новые устройства, то мы можем рассматривать и применение уст-
ройств, работающих под управлением прерываний, и устройств, рабо-
тающих без прерываний. Если, однако, мы пользуемся только уже
имеющимися аппаратными средствами, мы не можем выбирать: исполь-
зовать или нет прерывания. Например, некоторое устройство может
не предусматривать работу по прерыванию. Тогда мы сами должны
применить метод упорядоченного опроса для этого устройства.
В некоторых прикладных программах выбор может диктоваться
требованиями, предъявляемыми к временным характеристикам, как это
делается в простом примере, предложенном ниже. Принятие решения
о выборе метода построения системы на практике, конечно, является
более сложным занятием.
Предположим, что мы будем работать в операционной системе
MS-DOS под управлением процессора 8088, имеющего частоту
4,77 МГц. Предположим также, что нам нужно собирать данные со