На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 5 / Циклические планировщики Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Циклические планировщики

Для того, чтобы понять работу циклических планировщиков рассмотрим систему управления процессом. Требуется, чтобы контроль и управление происходили бы каждые 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).


         ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
         і                     ЪДДДДДДДДДДї                         і
         і                     і          і                         і
         і                     і   СТАРТ  і                         і
         і                     і          і                         і
         і                     АДДДДВДДДДДЩ                         і
         і                          і                               і
         і                     ЪДДДДДДДДДї                         і
         і                     і          і                         і
         і                     ісчетчик=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 мсек для выполнения каждого цикла, если не возникает прерывания. Предположим, прерывание возникает во время выполнения процедуры 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.  Циклический планировщик при наличии  прерываний:
                            неопределяемое время цикла

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz