скоростью 35000 байтов в секунду. Отметим по предыдущей таблице
5-5, что при наличии прерываний максимальная скорость передачи
данных равна 30 КГц. Это значит, что мы не можем использовать
прерывания. Тем не менее, системы опроса могут работать с макси-
мальной скоростью передачи данных, равной 60 КГц. Более того,
данные могут храниться при этом в основной памяти.
И, наконец, если требуется, чтобы разные процедуры выполня-
лись с разной частотой, можно в этом случае применять циклические
планировщики.
Все три рассмотренных метода являются синхронными (работаю-
щими только с одной задачей, то есть без мультизадачности). Ниже
мы рассмотрим мультизадачный режим в операционной системе MS-DOS.
Мультизадачный режим в операционной системе MS-DOS
В общем случае операционная система MS-DOS не поддерживает
работу в мультизадачном режиме, несмотря на то, что операционная
система MS-DOS для персональных компьютеров IBM PC/AT предусмот-
рены условия работы в простом мультизадачном режиме. Мультиза-
дачность представляет собой очень мощное средство для систем ре-
ального времени. Оно упрощает структуру системы и позволяет
разрабатывать большие, сложные системы.
Системы реального времени нацелены на обработку нескольких
независимых событий, происходящих в произвольные моменты времени.
Эти события могут возникать асинхронно и одновременно. Это зна-
чит, что одно событие может происходить во время обработки друго-
го.
Мультизадачность может использоваться в таких системах для
упрощения программного обеспечения. Вместо написания отдельной
программы для управления всеми событиями вы можете написать не-
сколько программ, каждая из которых будет управлять отдельным со-
бытием. Все эти программы могут одновременно выполняться компь-
ютером, поддерживающим мультизадачность. Эти отдельные программы
называются "задачами". Поскольку они одновременно выполняются в
компьютере, эта структура называется мультизадачной. Многие зада-
- 5-31 -
чи выполняются компьютером одновременно, аналогично тому, как
жонглер удерживает много шаров в воздухе в одно и тоже время. А в
действительности же, в отдельный момент времени, конечно, выпол-
няется только одна задача.
Условия существования мультизадачного режима в
персональном компьютере IBM PC/AT
Система BIOS персонального компьютера IBM PC/AT предусмат-
ривает наличие "крюков" для применения планировщика. Поддерживае-
мые функции являются очень простыми, но могут использоваться для
проектирования и реализации программы, поддерживающей простые
возможности мультизадачности (обсуждение этих возможностей лежит
за пределами задач настоящей главы). Разработка общецелевого пла-
нировщика в операционной системе MS-DOS является очень трудным
процессом, поэтому мы рекомендуем разрабатывать планировщик,
предназначенный только для вашей прикладной программы.
Прерывание 15h предусматривается для поддержания мультиза-
дачного планировщика. Исходно планировщик настраивает сервисную
стандартную программу на обработку прерывания 15h.
Планировщик может поддерживать такие простые функции, как
переключение задач и циклы простоев.
Одно из средств персонального компьютера IBM PC/AT должно
реализовать циклы простоя, выдает прерывания 15h с шестнадцати-
ричным значением кода функции "90 hex" в AH. В этом месте плани-
ровщик должен сохранить состояние текущей задачи. Эта схема дейс-
твий позволяет выполнять задачи "с перекрытием" или " с наложени-
ем", когда присутствует цикл простоя.
Ожидающая задача может позднее возобновить свою работу при
помощи планировщика, когда прерывание 15h с кодом функции 91h по-
явится в AH. В этом месте планировщик должен будет запомнить, что
задача будет готова возобновить свою работу позднее.
Этим рассуждением завершается наше изучение мультизадачного
режима в операционной системе MS-DOS. Нам пришлось ограничиться
коротким простым разговором, потому что мультизадачный режим в
операционной системе MS-DOS для персонального компьютера IBM
PC/AT очень невелик и трудно реализуем.
Заключение
Система реализации времени взаимодействует напрямую с внеш-
ней средой и всегда должна удовлетворять некоторым временным ог-
раничениям. При классификации систем реального времени мы разби-
ваем их на следующие три категории в зависимости от направления
потока данных:
. Однонаправленные системы
. Двунаправленные потенциально устойчивые системы
. Двунаправленные потенциально неустойчивые системы.
Мы рассматривали скорость, как требование операционной сис-
темы VS-DOS, которое должно использоваться в прикладной программе
реального времени. В дополнение к частоте синхронизации, скорость
работы операционной системы MS-DOS зависит от передачи данных.
Используя примеры, мы проиллюстрировали использование портов
центрального процессора CPU и последовательных и параллельных
портов для обмена данными с внешней средой. Мы также обсудили три
основных метода передачи данных в компьютер и из него:
- 5-32 -
. Упорядоченный опрос
. Метод прямого доступа DMA
. Метод использования прерываний.
Мы объяснили важность времени ответа во время принятия реше-
ния о возможности использования операционной системы MSDOS в
прикладных программах реального времени. Были описаны три синх-
ронных метода проектирования систем реального времени:
. Упорядоченного опроса
. Главного цикла с прерываниями
. Циклического планирования.
При помощи примеров и программ на языке Ассемблер мы проде-
монстрировали, что операционная система MS-DOS может использо-
ваться для сравнительно простых, но полезных прикладных программ
реального времени. И, наконец, мы рассмотрели поддержку режима
мультизадачности в операционной системе MS-DOS.
Глава 6. УСТАНАВЛИВАЕМЫЕ ДРАЙВЕРЫ УСТРОЙСТВ
Зачем нужны драйверы устройств?
Установка драйверов устройств
Работа с драйвером в среде MS-DOS
Создание драйверов устройств
Пример драйвера виртуального диска
Заключение
Основное требование, предъявляемое к любой вычислительной сис-
теме, заключается не только в способности вычислять, но и в спо-
собности взаимодействовать с внешним миром через периферийные ус-
тройства. Без таковой способности компьютер становится не более
чем бесполезной "железякой". Задача любой операционной системы
состоит в обеспечении средств взаимодействия для прикладных прог-
рамм и для нужд самой операционной системы.
Для того, чтобы прикладная программа могла взаимодействовать с
внешним устройством, операционная система должна удовлетворять
двум основным требованиям. Во-первых, должен существовать опреде-
ленный интерфейс между прикладной программой и операционной сис-
темой. Этот интерфейс должен быть достаточно гибким, чтобы при-
кладная программа могла точно определить свои действия при работе
с требуемым устройством. Во-вторых, операционная система обязана
уметь передавать и принимать данные от устройства и управлять его
работой. Такой интерфейс в MS-DOS обеспечивается так называемыми
драйверами устройств.
В то время как операционные системы больших ЭВМ и миникомпь-
ютеров традиционно обладают широкими возможностями по поддержке
устройств, микрокомпьютеры довольно бедны в этой области. Обычно
они имеют средства поддержки основных дисковых накопителей, сис-
темного терминала, печатающего устройства и, возможно, какого-ли-
бо дополнительного устройства. Все что поддерживается сверх этого
уровня можно рассматривать как приятную неожиданность. В старых
операционных системах, включая MS-DOS версии 1.0, обеспечивать
поддержку дополнительных устройств после покупки ОС было довольно
затруднительно. Операционная система не содержала функциональных
запросов прикладного уровня для нестандартных устройств и сами
драйверы были глубоко запрятаны в BIOS (базовая система ввода-вы-
вода). Добавление или изменение драйвера устройства требовало
корректировки исходных кодов BIOS (при их наличии, разумеется),
повторного ассемблирования и копирования полученных кодов на за-
грузочную дорожку системного диска. Очень часто для выполнения
указанных операций не было даже соответствующих утилит. Более то-
го, такие компьютеры как IBM PC не позволяли и этого, т.к. их
BIOS записана в ПЗУ (постоянном запоминающем устройстве). Измене-
ние содержимого ПЗУ требует наличия специального программатора
(устройства, которое записывает информацию в программируемое
ПЗУ), а он имеется далеко не у каждого. И даже после всех этих
усилий прикладная программа не имела никаких средств для общения
с драйвером с помощью ОС.
Все изменилось с выходом MS-DOS версии 2.0. Вероятно, самым
значительным нововведением в операционных системах микрокомпьюте-
ров с тех пор как появилась CP/M стало то, что MS-DOS версии 2.0
и выше обеспечивают не только возможность установки драйверов без
- 6-2 -
каких-либо мучений, но и стандартный расширяемый интерфейс, кото-
рый дает программам возможность взаимодействовать с драйверами. В
результате громадно возросло количество устройств, поддерживаемых
MS-DOS и появились драйверы псевдоустройств, обеспечивающие
MS-DOS системы такими средствами как RAM-диски, высокоуровневые
графические интерфейсы и т.п.
Драйвер устройства в MS-DOS - это подпрограмма, которая вызы-
вается MS-DOS, с одной стороны, и взаимодействует с конкретным
устройством, с другой. Как посредник между системой и аппарату-
рой, драйвер устройства передает данные между программой и уст-
ройством.
Зачем нужны драйверы устройств?
Драйверы устройств решают две основные задачи. Первая заключа-
ется в обеспечении стандартного интерфейса со всеми программами,
желающими использовать определенное устройство, независимого от
конкретных особенностей устройства. Программа, выполняющая обра-
ботку текста, или электронная таблица, производящая вычисления,
может не заботиться о типе терминала, подключенного к системе,