Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 61 62 63 64 65 66 67  68 69 70 71 72 73 74 ... 198
                     inc    ah
                     int    16h            ; выдача запроса
                     jz     _bs1           ; если 0 -- нет доступного
                                           ; символа
                     cmp    ax,BGCombo     ; это символ заднего плана?
                     jnz    _bs1           ; если не 0 -- нет
                     xor    ah,ah          ; ah <== 0 (запрос чтения)
                     int    16h            ; удаление символа из буфера
                     pop    ax             ; восстановление ax
         ;
         ; Выполнение на заднем плане и запрос приостановки.
         ;
         _bs0:       call   BKGRestoreDTA  ; восстановление DTA
                     call   BKGRestorePSP  ; восстановление PSP
                     call   BKGRestoreErrHndlr ; восстановление старых
                                           ; драйверов критической ошиб-
                                           ; ки и прерывания
                     call   SCRBackground  ; восстановление экрана
                     call   BKGSaveAll     ; сохранение регистров зад-
                                           ; него плана
                     les    di,InDosFlag   ; es:di <== адрес входа в DOS
                     dec    BYTE PTR es:[di] ; уменьшение флажка входа в
                                           ; DOS
                     switch BKGStack,OldStack ; изменение стеков
                     call   BKGRestoreAll  ; восстановление регистров
                     mov    cs:PgmState,BKG_C_BG ; программы на заднем
                                           ; плане
                     ret                   ; возврат
         _bs1:       pop    ax             ; восстановление начального
                                           ; значения ax
         _bs2:       ret                   ; возврат

                                      - 4-48 -
         SuspendResume      ENDP
         _text              ENDS
         ----------------------------------------------------------------


                              Удаление TSR из памяти

             В связи с ограниченным размером физической памяти  персональ-
         ного  компьютера  может  возникнуть необходимость удаления TSR из
         памяти, когда она станет ненужной. Процесс удаления TSR из памяти
         не представляет большого труда, однако, имеются некоторые пробле-
         мы.  Очень часто TSR захватывает векторы прерываний и перед осво-
         бождением памяти необходимо восстановить эти векторы.
             При инициализации TSR должна  записать  начальное  содержимое
         векторов, которые она будет изменять в процессе своей работы. Ес-
         ли отсутствует другая TSR,  загружаемая после захвата этих векто-
         ров,  то  можно восстановить эти векторы прерываний в их первона-
         чальные  значения  и  освободить  память,  занимаемую  TSR.  Если
         интересующие  Вас  векторы  прерываний  все еще указывают на Вашу
         программу, то это является надежным подтверждением того, что дру-
         гая программа TSR не захватила их. Но, допустим, что Ваша TSR ис-
         пользует вектор прерывания совместно с другой TSR, которая загру-
         жается  после  нее.  Тогда,  каждая  TSR  должна иметь записанное
         первоначальное содержимое вектора и вставленный вход IVT,  указы-
         вающий на свою собственную программу.  Существующий вход IVT ука-
         зывает на TSR, загруженную последней, которая должна иметь сохра-
         ненный вектор для первой TSR.  Первая TSR, в свою очередь, должна
         иметь сохраненный вектор для исходной ISR.
             Если текущий  вход  IVT замещается сохраненным значением,  то
         тем самым из цепочки ISR эффективно удаляется  другая  TSR.  Если
         вторая TSR могла быть введена только с помощью этого единственно-
         го вектора,  то все, что Вы получите, будет потеря  памяти.  Если
         вторая  TSR  имеет другую точку входа и пытается включиться в це-
         почку к сохраненному вектору прерывания, который изменен Вами, то
         эта ссылка будет указывать на незанятый блок памяти.
             Наиболее чистым решением этой  проблемы  является  разработка
         TSR,  которая  управляет другими TSR.  Имеется превосходный пакет
         общего назначения  Mark/Release  (отметить/освободить),   который
         доступен из многих информационных источников.TSR Mark (отметить),
         выполняемая перед другими программами, загружается и делает копию
         IVT,  а  также  записывает  текущее состояние памяти.  Другие TSR
         пользователь загружает  по  мере  необходимости.  Выполнение  TSR
         Release  (освободить) восстанавливает память и таблицу IVT значе-
         ниями, записанными с помощью программы Mark. Возможна вложенность
         вызовов программы Mark.
             Программы Mark/Release работают в большинстве,  но не во всех
         случаях. Они перезапоминают IVT и память. Если TSR изменила неко-
         торую другую структуру данных DOS, то после удаления TSR из памя-
         ти эта структура данных так и останется измененной.

                                    Заключение

             В этой главе были описаны технические приемы  написания  рези-
         дентных программ TSR.  Здесь были приведены пояснения, что необхо-
         димо выполнить и почему следует выполнять эти  действия.  Рассмот-
         ренные  технические  приемы имеют множество других приложений.  Вы
         можете их использовать  и  для  добавления  фоновых  сохранений  в

                                      - 4-49 -
         системах  подготовки текстов или фоновых вычислений в средстве ве-
         дения электронных таблиц. Кроме того, Вы можете реализовать многие
         простые  функции  как  фоновые программы TSR.  Фрагменты программ,
         представленные в этой главе,  являются хорошим началом для написа-
         ния более серьезных TSR.




                Глава 5. ПРОГРАММЫ РЕАЛЬНОГО ВРЕМЕНИ В СРЕДЕ MS-DOS

               Обзор программ реального времени
               Использование MS-DOS для приложений реального времени
               Проектирование систем реального времени в MS-DOS
               Многозадачность в MS-DOS
               Резюме
               Библиография

              Системы реального времени используются  многими приложениями
         и лишь немногие пользователи не имеют с ними  дело  почти  каждый
         день.  Системы реального времени используются в приложениях,  по-
         добных обслуживанию телефонных коммутаторов,  силовых генераторов
         и распределителей, кассовых аппаратов и т.д.
              MS-DOS широко используется как для личных, так и для коммер-
         ческих компьютерных приложений,  но ее использование для приложе-
         ний в реальном времени менее популярно.  В этой главе обсуждаются
         системы реального времени и то,  как использовать MS-DOS для мно-
         гих простых, но полезных приложений в реальном времени.

                         Обзор программ реального времени

              Перед обсуждением систем реального времени, предлагается об-
         судить другие типы операционных систем.  Это поможет лучше понять
         системы реального времени.
              В начале компьютеризации стоимость компьютеров была высока и
         сравнима с зарплатой профессионалов-разработчиков.  Поэтому  было
         выгодно максимально использовать каждый компьютер.  В результате,
         при пакетной обработке в операционных системах,  когда  компьютер
         был источником постоянной задержки в работе,  он использовался не
         одним пользователем. Почти вся человеческая деятельность была вне
         непосредственной связи с ЭВМ, так что неизбежные человеческие за-
         держки не выливались в потерю машинного времени.
              Когда стоимость  компьютеров  стала падать,  стало невыгодно
         иметь высокооплачиваемый персонал,  ожидающий машинное  время.  В
         связи  с этим стало приобретаться больше компьютеров для диалого-
         вой работы. Так появилась диалоговая обработка. Однако, компьютер
         был  слишком  быстр  для людей,  он терял время в ожидании ответа
         пользователя.  Это привело к развитию систем разделения  времени.
         Системы  разделения  времени позволяют одновременно работать  не-
         скольким пользователям, причем каждый получает небольшой  отрезок
         времени.  Разделение  времени создает у пользователя впечатление,
         что операционная система закреплена только за ним.
              В дополнение к пакетной и диалоговой обработке,  к  системам
         разделения времени важным типом операционных систем являются сис-
         темы реального времени,  которые и будут обсуждаться в оставшейся
         части этой главы.

                             Что такое реальное время?

              Для понимания того,  что такое реальное время,  предлагается
         рассмотреть простой пример системы  cоздания  фильма,  в  котором
         компьютер используется для создания видеоэффекта.  Система созда-
         ния фильма может воспроизводить кадр  движущегося  фильма  каждые
         несколько  минут.  Это будет давать эффект сверхмедленного движе-
         ния.  Но, в идеале, движение будет производится на полной скорос-
         ти,  что позволит зрителю видеть его. Если компьютер будет произ-

                                      - 5-2 -
         водить 24 кадра в секунду, что соответствует скорости их движения
         в фильме,  то кадры будут появляться в нерастянутом масштабе вре-
         мени, или в "реальном времени".
              Операционная система в реальном времени - это система, кото-
         рая:

         - Обеспечивает  прямое обращение к внешнему окружению компьютера.
         - Достаточно оперативно отслеживает внешнее окружение.

             При таком понимании реального времени, область применения ре-
         ального времени в широком смысле включает все компьютерные систе-
         мы.  Например, система с пакетной обработкой может быть выполнена
         в реальном времени,  если критерий времени ответа достаточно  ве-
         лик.
              Если внутренняя  налоговая инспекция объявляет,  что возврат
         чеков будет производится в течении 60 дней,  и если компьютеры  с
         пакетной обработкой могут управлять этой работой,  они работают в
         системе реального времени. Однако, термин "системы реального вре-
         мени",  используемый  в  специальной литературе,  обычно включает
         только системы с временем реакции порядка секунд или меньше. Сис-
         темы реального времени в этом смысле и будут освещены в этой гла-
         ве.  Вывод: когда компьютер используется для обращения к имеющему
         определенные ограничения по времени (обычно меньше, чем несколько
         секунд) внешнему окружению,  которое должно работать  безотказно,
         то это обеспечивается системой реального времени.
              Системы с пакетной обработкой,  диалоговые системы и системы
         с разделением времени не являются  системами  реального  времени,
         так как  они не гарантируют абсолютного ограничения времени реак-
         ции.  Например,  системы с разделением времени обычно  достаточно
         быстры для диалогового использования,  но они могут работать дос-
         таточно медленно и одна пользовательская задача может блокировать
         другую.

                      Характеристики систем реального времени

              Системы реального  времени  имеют ряд уникальных характерис-
         тик. Внешнее окружение систем реального времени обычно состоит из
         устройств ввода/вывода,  которые функционируют, как органы чувств
         системы.  Вообще-то говоря,  о любой компьютерной  системе  можно
Предыдущая страница Следующая страница
1 ... 61 62 63 64 65 66 67  68 69 70 71 72 73 74 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама