Общая схема работы DOS

Для того чтобы правильно работать с системным программным и аппаратным обеспечением, нужно четко представлять себе механизм взаимодействия прикладной программы с компьютером. На рис. 1.1 показаны функциональные связи программы с программно-аппаратным обеспечением IBM PC.

Рис.1. Функциональные связи программы для MS-DOS с программно-аппаратным обеспечением ПЭВМ

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

Чем выше уровень интерфейса прикладной программы и аппаратуры, тем меньше программа будет зависеть от особенностей аппаратуры.

Рассмотрим подсистемы MS DOS, начиная с файловой системы.

Для обращения к файловой системе прикладная программа должна использовать специально предназначенные для этого функции прерывания. Эти функции выполняют все файловые операции - создание, удаление файлов и каталогов, буферизованную и не буферизованную запись или чтение, получение справочной информации о состоянии файловой системы и другие.

Файловая система работает с дисками через драйверы. Драйверы, в свою очередь, пользуются сервисом BIOS.

На уровне BIOS выполняются элементарные операции с диском, такие как чтение/запись секторов, форматирование и т.п. Этот низкий уровень доступен и прикладной программе, но обычно она пользуется функциями прерывания DOS, выполняющими все необходимые действия по обслуживанию каталогов и таблицы размещения файлов (File Allocation Table - FAT). Программы защиты от несанкционированного доступа или копирования вынуждены обращаться к средствам более низкого уровня, вызывая прерывания BIOS, или даже работать с контроллером дисковода через порты ввода/вывода.

Используя подсистему DOS, отвечающую за связь с драйверами, прикладные программы могут выполнять элементарные операции с диском, такие как форматирование.

Система управления памятью.

Эта подсистема DOS используется для распределения памяти запускаемым программам. DOS управляет памятью с помощью блоков MCB (Memory Control Block). Память разбивается на блоки; каждому блоку предшествует MCB, в котором записаны характеристики блока памяти. Для каждой вновь запускаемой программы DOS создает определенное количество блоков MCB. При освобождении памяти или при выполнении запросов на получение дополнительной памяти DOS также использует блоки MCB, проверяя при этом правильность их содержимого.

Все блоки MCB располагаются друг за другом. Адрес первого блока хранится в векторной таблице связи, CVT. Прикладная программа может заказать для себя дополнительные блоки памяти. Для этого она обращается к системе управления памятью, используя функции прерывания 21h DOS.

Система управления программами.

При запуске программы DOS выполняет несколько операций. Сначала она обращается к системе управления памятью, чтобы подготовить блоки памяти для запускаемой программы. С помощью файловой системы файл, содержащий программу, загружается в память, после чего программа (это относится только к файлам типа.exe) настраивается на конкретный физический адрес. Только после этого программе передается управление.

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

Другая задача, решаемая системой управления программами - запуск программ из программ и загрузка программных перекрытий – "оверлеев". Если не все модули большого программного комплекса нужны одновременно, вы можете разбить комплекс на несколько частей. Это могут быть либо несколько отдельных программ, либо несколько оверлейных модулей.

Последняя функция системы управления программами - работа с резидентными программами. Если вам надо, чтобы после завершения своей работы программа осталась резидентной в памяти, вы, как и в случае завершения обычной программы, обращаетесь к системе управления программами через соответствующую функцию прерывания DOS 21h.

Система связи с драйверами устройств.

Эта система скрыта от прикладных программ - программы не могут обращаться непосредственно к драйверам устройств ввода/вывода. Программа вызывает DOS, а DOS обращается при необходимости к драйверам.

Для управления состоянием устройства ввода/вывода или состоянием драйвера используется специальная функция 44h прерывания DOS 21h. Эта функция предназначена для обмена управляющей информацией между прикладной программой и драйвером.

Система обработки ошибок.

Для кодирования ошибок, как правило, используется флаг переноса (CARRY, CF). Если после обращения к прерыванию DOS флаг переноса установлен в 1, произошла ошибка. Для анализа ошибки можно вызвать соответствующую функцию DOS, которая вернет уточняющую информацию об ошибке и предоставит рекомендации (разумеется, лишь в виде кодов, находящихся в регистрах процессора).

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

Служба времени.

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

Программа может опросить часы, обратившись к DOS с запросом через одну из функций прерывания 21h, или установить новое состояние часов.

ОС содержит драйвер устройства CLOCK$. Прикладная программа может обратиться к этому устройству для чтения показания часов или для установки часов. Программа может использовать прерывания таймера и для выполнения каких-либо действий.

Ввод/вывод на консоль оператора.

Консоль оператора состоит из двух устройств - клавиатуры и дисплея. Эти два устройства обслуживаются одним драйвером - драйвером консоли CON. Т.е. можно считать, что в компьютере имеется устройство - консоль - с именем CON.

ОС обслуживает консоль с помощью функций прерывания 21h, обеспечивающих ввод и вывод символов на устройство CON. Для работы с физической клавиатурой и дисплейным адаптером этот драйвер использует прерывания BIOS.

Другие подсистемы DOS.

DOS имеет набор драйверов для работы с печатающими устройствами и последовательными портами, которые обеспечивают прием/передачу символов и управление режимами работы устройств. Кроме того, для печати текста в фоновом режиме в состав дистрибуции DOS входит программа PRINT.COM. Эта практически единственная "мультизадачная" утилита ОС является примером стандартной резидентной программы. Она позволяет выполнять параллельно с печатью текста другую работу (например, редактирование другого текста).

Отметим драйверы электронного диска и кэш-памяти. Драйвер электронного диска называется RAMDRIVE.SYS. Этот драйвер организует в расширенной или в дополнительной памяти компьютера быстрый псевдо-диск. Можно организовать электронный диск и в основной памяти, но основной памяти всегда мало!

MS-DOS версий 4.01 и 5.0 имеет в своем составе систему управления дополнительной и расширенной памятью, которая реализуется драйвером HIMEM.SYS. Этот драйвер позволяет программам, составленным специальным образом, использовать расширенную или дополнительную память для хранения данных (но не для выполнения программ).

Если подключен драйвер HIMEM.SYS, то с помощью драйвера SMARTDRV.SYS можно создать кэш-память для жесткого диска. Особенно эффективно применение кэш-памяти для работы с базами данных, когда вам периодически требуется одна и та же информация. В следующий раз, когда информация потребуется, она будет доступна без обращения к диску.

Такое устройство как мышь не поддерживается ОС. Для использования мыши следует подключить драйвер, который обычно поставляется вместе с этим устройством.

Другие устройства ввод/вывода (сканеры, плоттеры, стримеры и т.п.) также не поддерживаются DOS. Для этих устройств фирмы поставляют драйверы, которые надо подключить к ОС.

12. Многозадачные ОС. Архитектура многозадачных ОС


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: