Системное программное обеспечение. Рощин А.В. - 117 стр.

UptoLike

Составители: 

117
Глава 4 Резидентные программы в MS-DOS
4.1 Специфика резидентных программ
Резидентная программаэто программа, постоянно находящаяся в
оперативной памяти ЭВМ. Иначе такие программы называют TSR-
программами (Terminate and Stay Resident). В качестве резидентных
программ часто выполняют различные обработчики клавиатуры (в том
числе русификаторы) калькуляторы, всевозможные справочники и т.д.
Резидентная программа может быть как типа .COM, так и .EXE,
однако
, учитывая постоянный дефицит основной памяти, такие программы
чаще выполняют типа .COM.
Для того чтобы использовать уже находящуюся в памяти программу,
ей необходимо передать управление. Специфика передачи управления
резидентной программе заключается в том, что вызывающая и вызываемая
(резидентная) программы загружаются и запускаются независимо друг от
друга, поэтому необходимы специальные меры для сообщения
вызывающей программе адреса резидентной программы.
Передать управление резидентной программе можно тремя
способами:
Вызвать ее командой CALL как обычную процедуру (под программу).
Однако для этого необходимо после загрузки резидентной программы
узнать ее расположение в памяти с помощью какой-либо служебной
программы, например mi (memory information);
Использовать какое-либо аппаратное прерывание (например,
прерывание от
таймера) для периодической пере дачи управления
резидентной программе;
Использовать программное прерывание. Для этого резидентная
программа должна соответствующим образом установить вектор
программного прерывания, который будет использован для ее вызова.
Для пользователя в MS-DOS зарезервированы векторы 60h – 66h, а
также F1h
FFh. В этом случае резидентная программа должна завершаться
командой возврата из прерывания IRET.
Адрес резидентной программы можно передать прикладной
программе также в области данных BIOS, предназначенной для связи
программ (40h:F0h – 40h:FFh). В этой же области прикладная программа
может передавать адреса массивов данных, которые должны быть
переданы резидентной программе, а также получать адреса массивов
данных, возвращаемых резидентной программой.
Резидентная программа после загрузки ее в память фактически
становится частью
операционной системы, поэтому к ней относится и
такое свойство MS-DOS, как нереентерабельность (т.е. она не обладает
                                 117



     Глава 4 Резидентные программы в MS-DOS
     4.1 Специфика резидентных программ
      Резидентная программа – это программа, постоянно находящаяся в
оперативной памяти ЭВМ. Иначе такие программы называют TSR-
программами (Terminate and Stay Resident). В качестве резидентных
программ часто выполняют различные обработчики клавиатуры (в том
числе русификаторы) калькуляторы, всевозможные справочники и т.д.
      Резидентная программа может быть как типа .COM, так и .EXE,
однако, учитывая постоянный дефицит основной памяти, такие программы
чаще выполняют типа .COM.
      Для того чтобы использовать уже находящуюся в памяти программу,
ей необходимо передать управление. Специфика передачи управления
резидентной программе заключается в том, что вызывающая и вызываемая
(резидентная) программы загружаются и запускаются независимо друг от
друга, поэтому необходимы специальные меры для сообщения
вызывающей программе адреса резидентной программы.
      Передать управление резидентной программе можно тремя
способами:
• Вызвать ее командой CALL как обычную процедуру (под программу).
   Однако для этого необходимо после загрузки резидентной программы
   узнать ее расположение в памяти с помощью какой-либо служебной
   программы, например mi (memory information);
• Использовать какое-либо аппаратное прерывание (например,
   прерывание от таймера) для периодической пере дачи управления
   резидентной программе;
• Использовать программное прерывание. Для этого резидентная
   программа должна соответствующим образом установить вектор
   программного прерывания, который будет использован для ее вызова.
   Для пользователя в MS-DOS зарезервированы векторы 60h – 66h, а
   также F1h
• FFh. В этом случае резидентная программа должна завершаться
   командой возврата из прерывания IRET.
      Адрес резидентной программы можно передать прикладной
программе также в области данных BIOS, предназначенной для связи
программ (40h:F0h – 40h:FFh). В этой же области прикладная программа
может передавать адреса массивов данных, которые должны быть
переданы резидентной программе, а также получать адреса массивов
данных, возвращаемых резидентной программой.
      Резидентная программа после загрузки ее в память фактически
становится частью операционной системы, поэтому к ней относится и
такое свойство MS-DOS, как нереентерабельность (т.е. она не обладает