Смекни!
smekni.com

Программы DOS (стр. 3 из 4)

Когда программа типа .ЕХЕ завершает свою работу, то она должна вернуть управление DOS с помощью прерывания Int 21Н с функцией 4СН.

Программа типа .ЕХЕ, поступающая на вход компоновщика, может состоять из большого числа отдельных объектных модулей. Допускается, чтобы каждый модуль использовал уникальное имя сегмента программы, а процедуры имени атрибут либо NEAR, либо FAR в зависимости от условий определения имени и размеров выполнимой программы. Программист должен заботиться о том, чтобы компонуемые вместе модули содержали только один сегмент с атрибутом SТАСК и только одну точку входа, определяемую директивой ассемблера ЕND. Результатом работы компоновщика является файл с расширением .ЕХЕ, который можно немедленно запустить на выполнение [6, c. 31].

2.5 Резидентные программы

Большинство программ, выполнив свою работу, освобождают память и заменяются другими. Но некоторые, так называемые резидентные программы, остаются в памяти до тех пор, пока вы не выключите компьютер или не произведете перезапуск системы. Эти программы называют также резидентными в памяти или TSR-программами (terminate and stay - завершить и остаться) [13, c. 78].

Когда ДОС запускает программу, он находит для нее пространство в памяти, копирует программу с диска в память и затем на время передает управление от компьютера этой программе. Обычно по окончании работы программа возвращает управление компьютером операционной системе, и DOS использует память, которая была занята предыдущей программой, для следующей. С резидентными программами дело обстоит иначе. Когда резидентная программа завершает начальную часть своей работы, она передает управление компьютером операционной системе, но одновременно сообщает, чтобы последняя не отдавала другим программам ту область памяти, в которую она была загружена. Программа просит DOS оставить ее в памяти. В свою очередь система выставляет барьер там, где кончается резидентная программа, и загружает следующую нашу программу над резидентной программой. Что означает "над" резидентной программой? Когда мы говорим о памяти, мы связываем любую ее часть с адресом. Адреса начинаются с малых и располагаются по возрастанию. DOS и резидентные программы располагаются по адресам, начиная с малых номеров, поэтому, когда говорится, что программа загружается над другой программой, то имеется в виду, что она помещается в памяти по адресам с большими номерами. В результате, резидентная программа соединяется с небольшой частью DOS, которая остается в нижней части компьютерной памяти. Все последующие программы, которыми вы пользуетесь, будут работать в области памяти с более высокими адресами, не затрагивая резидентную программу и DOS, находящиеся ниже. Таким образом, резидентная программа постоянно находится в памяти до тех пор, пока не будет выключен компьютер.

В чем состоит суть резидентных программ? В отличие от других программ резидентная программа остается активной даже после, того, когда она, завершила свою работу. Программа остается в памяти и может продолжить свою работу, даже если после нее вы запускаете, другие программы.

Резидентные программы имеют много применений. Сама DOS включает в себя четыре различные резидентных программы. Известно также много других интересных резидентных программ, которые не являются составной частью DOS [7, c. 84].

Одна из резидентных программа DOS вызывается командой PRINT, и действует как своего рода накопитель печати (спулер). Работа накопителя печати состоит в том, чтобы выводить на принтер информацию, не занимая процессор на то время, когда производится печатание, резидентная программа PRINT справляется с этой задачей, беря на себя работу по своевременной подаче информации для принтера, оставляя в то же время процессор доступным для обслуживания других программ. Она загружает процессор процессом вывода на печать ровно настолько, чтобы принтер был постоянно занят своей работой оставляя основную часть ресурса процессора для работы других программ [12, c. 39].

По характеру своей работы программа PRINT относится к так называемым фоновым программам.

Еще один пример резидентной программы DOS - программа GRAPHICS, которая обеспечивает вывод на принтер графических изображений на экране монитора. Она загружается в память по команде GRAPHICS, но ничего не делает до тех пор, пока не будет нажата клавиша PrtSc (печать экрана). После нажатия этой клавиши выводит на печать графическое изображение, которое в этот момент присутствует на экране монитора.

2.6 Расширители DOS

Расширители DOS, дос-экстендеры (англ. DOS extenders) — технологии, позволяющие программам, работающим под управлением операционных систем семейства DOS, выполняться в защищённом режиме процессора. Существуют 16- и 32-битные расширители DOS [13, c. 78].

16-битные расширители предназначены для работы на процессорах Intel 80286 и выше, 32-битные — Intel 80386 и выше.

Работа в защищённом режиме нужна в первую очередь для преодоления ограничения адресации в реальном режиме (программа, выполняющаяся в реальном режиме процессора под управлением DOS, может адресовать только 1 Мб), не прибегая к приёмам вроде переключения банков памяти.

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

Расширители DOS включают инструментальные средства для разработки приложений, часто поставлявшиеся с компиляторами, а также выполнимый код либо в виде отдельного файла (выполнимого или подгружаемого) или группы файлов, либо встраиваемый в файл продукта. Многие компиляторы имели специальные параметры и библиотеки для генерации кода под конкретный расширитель DOS [10, c. 91].

Расширители DOS предоставляют прикладной программе различные сервисы по управлению памятью и т. п. через программные прерывания.

Всем расширителям DOS приходится вызывать DOS API для доступа к диску, сети и т. д. На Intel 80386 это стало осуществлять легче, поскольку DOS можно оставить выполняться внутри задачи виртуального 8086 режима, к которой может обращаться 16- или 32-битный код. Однако на Intel 80286 вызывать DOS сложнее, потому что у 286 была только инструкция для переключения из реального в защищённый режим, а обратно не было.

Изначально расширители DOS сами выполняли переключение в защищённый режим и управляли расширенной памятью. Позднее, когда в практику вошло использование специальных менеджеров защищённой памяти, таких как CEMM или QEMM на 80386, стало необходимым создать возможность для будущих программ входить и в защищённый режим, был разработан VCPI, который предоставлялся этими менеджерами. Однако это плохо стыковалось с многозадачными ОС и не поддерживалось Microsoft, чья альтернатива, интерфейс DPMI, стала более распространённой.

Наибольшего успеха добился расширитель DOS/4G (поставлявшийся с компилятором Watcom как DOS/4GW), не в последнюю очередь благодаря игре Doom, написанной под него.

Среди остальных расширителей можно отметить: Phar Lap 386/DOS-Extender; Quarterdeck DESQview и DESQview /X, обеспечивающий многозадачную и многооконную работу обычных программ DOS; 16- и 32-битные расширители DOS фирмы Borland, поставлявшиеся с компиляторами C++ и Паскаля; GO32 (используется в GCC и Free Pascal); WDOSX (эмулирует подмножество Win32 и позволяет некоторым консольным программам выполняться под DOS); HX DOS Extender - эмулирует Win32 и позволяет некоторым консольным и OpenGL программам выполняться; CWSDPMI Используется в программах DOS, созданных с помощью DJGPP, является заменой GO32; DOS/32 Advanced DOS Extender — наиболее современный расширитель DOS, свободно используемый и с открытым исходным текстом. Часто обновляется [9, c. 41].


Глава 3. Примеры программ, работающих под управлением DOS

3.1 Автоматизированная диагностическая система «АМСАТ - 7.81»

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

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

Программа работает под управлением DOS версии не ниже 5.00. Интерфейс программы выполнен в стиле WINDOWS 3.1, при этом загружать графическую оболочку WINDOWS не нужно. При проведении неверифицированного обследования, система не требует высокой квалификации оператора и не имеет аналогов по времени проведения обследования. Значение результатов экспресс-диагностики многократно превышают материальные, временные и эксплуатационные затраты на исследование.

3.2 Программа SLS-Касса

Программа SLS-Касса обеспечивает совместную работу программы SLS-Склад и фискальных регистраторов: Мебиус, MSTAR-Ф; группы фискальных регистраторов, поддерживаемых "общим драйвером DOS" фирмы Атол: "ТОРНАДО" ("МЕРКУРИЙ-114ю1 Ф" версия 04), "ФЕЛИКС-РК" версия 01, "ФЕЛИКС-Р Ф" версия 02, "ФЕЛИКС-02К" версия 01, "Триумф-Ф" версия 01, "Меркурий-140Ф" версий 02 и 03; POS-терминалов: IPC с программным обеспечением "Пилот", ABS с программным обеспечением фирмы "Синт". Программа может работать в двух режимах: с использованием каждой кассой отдельного компьютера; с использованием одного компьютера для обслуживания нескольких кассовых аппаратов.

В первом режиме получается недорогой (в 2-3 раза дешевле IPC), но полнофункциональный POS терминал. Кассир использует клавиатуру компьютера, а кассовый аппарат, подключенный через порт RS-232, работает как фискальный принтер. Клавиатура кассового аппарата используется только для выполнения специальных функций - выдачи контрольных кассовых лент и отчетов. Программа обеспечивает работу со сканером штрих-кодов, подключаемым в разрыв клавиатуры. Второй режим обеспечивается использованием программных средств, предоставляемых производителями кассовых аппаратов (кроме АМС-100Ф). При этом программа SLS-Касса обеспечивает экспорт файла товаров и импорт результатов работы касс в соответствии с потребностями каждого из программных средств.