определяется часами или каким-либо другим устройством в компьюте-
ре. При определении требуемого временного интервала надо учиты-
вать максимально возможную в любое время загрузку. Иначе в период
пика загрузки могут быть потеряны данные, что неприемлемо.
Подобно времени ответа, временной интервал может изменяться
от частей миллисекунды (или меньше), до нескольких минут.Разветв-
ленная система сберегательных банков в напряженное время ленча
может иметь одну транзакцию в секунду. Оператор может печатать от
5 до 10 символов в секунду. Система сканирования радара может по-
сылать данные каждую миллисекунду. Справочная система базы данных
поддерживает только случайные запросы.
На таблице 5-1 приводятся типы реализаций, обычно используе-
мые для приложений в реальном времени, в зависимости от запрошен-
ного времени ответа. Заметим, что MS-DOS не включена в эту табли-
цу, так как не является общепринятой для приложений в реальном
времени.
Таблица 5-1
Времена ответа и общепринятые реализации систем
реального времени
ДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Диапазон времен ¦ Общепринятые реализации реального
ответа ¦ времени
ДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
10 нсек-100 нсек ¦Выделенная логика ECL, фиксированная программа
100 нсек - 1 мксек¦Выделенная стандартная логика, программируемая
1 - 100 мксек¦Быстрый процессор с выделенной программой
100 мксек- 1 мсек ¦Микропроцессор с ядром в реальном времени
1 мсек - 1 сек ¦Микропроцессор в реальном времени
1 мсек - выше ¦Все какие угодно
ДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Использование MS-DOS для приложений реального времени
Как уже обсуждалось, системы реального времени охватывают
широкий диапазон приложений, от простых систем сбора данных до
сложной и детально разработанной системы управления ракетой. Сис-
темы реального времени разделяются не только по основным типам
(однонаправленные, двухнаправленные стабильные/потенциально нес-
табильные), но также по временным характеристикам. Прежде чем вы-
яснить, когда можно использовать MS-DOS для приложений в реальном
времени, надо оценить его быстродействие.
Быстродействие MS-DOS
Быстродействие MS-DOS зависит от процессора и от используе-
мого метода передачи данных. В следующих разделах будет обсуж-
даться, что определяет быстродействие MS-DOS и как определить,
можно ли использовать MS-DOS для приложений в реальном времени.
Тактовая частота MS-DOS
Во время написания этой книги MS-DOS доступна для шести
процессоров семейства 8086: 8088, 8086, 80188, 80286 и 80386. Са-
мый медленный из них 8088, а самый быстрый - 80386 (и самый мощ-
- 5-7 -
ный). Процессорам семейства 8086 доступна различная тактовая час-
тота, как показано в таблице 5-2. Тактовая частота 4.77 МГц
означает, что генерируется 4.77 миллиона тактов в секунду. Такто-
вая частота определяет быстродействие процессора: чем она выше,
тем быстрее процессор. Заметим однако, что процессор 80286 быст-
рее, чем 8086, имеющий такую же тактовую частоту.
В связи с тем, что процессор 8088 самый медленный из семейс-
тва 8086, все временные характеристики в этой главе даются для
процессора 8088, имеющего тактовую частоту 4.77 МГц. Если Ваш
компьютер имеет большее быстродействие, Вы сможете получить ответ
быстрее. Так как семейство процессоров 8086 имеет возможность
предварительной выборки команд из очередей, действительное время
выполнения некоторой последовательности команд может отличаться
от времени выполнения, суммированного из отдельных команд.
Таблица 5-2
Тактовая частота для MS-DOS компьютеров
ДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДД
¦ ¦
Процессоры 8086 ¦ Наименование компьютера ¦Тактовая частота
ДДДДДДДДДДДДДДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДД†ДДДДДДДДДДДДДДДДД
¦ ¦
8088 ¦ IBM PC ¦ 4.77,8 МГц
8086 ¦ IBM PC Compatible ¦ 8,12 МГц
80188/186 ¦ IBM PC Compatible ¦ 8,10 МГц
80286 ¦ IBM PC AT (режим 8086) ¦ 8,10 МГц
80386 ¦ IBM PC AT (386) (режим 8086) 16,20,25 МГц
ДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДД
MS-DOS поддерживает часы в реальном масштабе времени. Они
обеспечивают дату и время и доступны любой программе. Время под-
держивается с точностью до 10 миллисекунд. Таким образом, если
для приложения необходима разрешающая способность меньше 10 мил-
лисекунд, оно не может использовать эти часы.
Следующая программа считывает дату из MS-DOS. Для считывания
даты программное обеспечение использует прерывание 21h. В дейс-
твительности, прерывание 21h используется при запросе любого обс-
луживания MS-DOS, при этом регистр AH должен содержать код выпол-
няемой функции. Позднее мы обсудим несколько примеров программ,
использующих программные прерывания для вызова MS-DOS или
POM-BIOS.
mov ah,2ah ; считывание даты
int 21h ; вызов DOS
mov year,cx ; год в CX (от 1980 до 2099)
mov month,dh ; месяц в DH (от 1 до 12)
mov day,dl ; день в DL (от 1 до 31)
В приведенной программе день недели возвращается в AL. Как
видно из программы, для вызова MS-DOS или POM-BIOS выполняются
следующие шаги:
- Занесение в регистры соответствующих кодов команд и пара-
метров.
- Осуществление прерывания, соответствующего вызываемой
функции.
- Возврат, считывание возвращаемых параметров и статуса ин-
формации из регистров.
Для считывания времени из MS-DOS используется прерывание int
- 5-8 -
21h с кодом команды AH=2ch, как показано в следующей программе:
mov ah,2ch ; cчитывание времени
int 21h ; вызов DOS
mov hours,ch ; часы в CH (от 0 до 23)
mov mins,cl ; минуты в CL (от 0 до 59)
mov secs,dh ; секунды в DH (от 0 до 59)
mov msec,dl ; 10 мсек в DL (от 0 до 99)
Программа считывает системное время и запоминает его в ука-
занных переменных. Время и дату можно получить, используя функцию
вызова MS-DOS.
Передача данных в операционной системе MS-DOS
Во время работы с системами реального времени компьютеру с
операционной системой MS-DOS приходится обмениваться данными
внешней средой. Данные, подлежащие передаче, делятся на три кате-
гории:
- данные, состоящие из одного бита, указывающего текущее сос-
тояние устройств, которые могут находиться в одном из двух
состояний,
- данные, представляющие собой цифровое выражение аналоговых
сигналов, выдаваемых аналогово-цифровыми преобразователями,
- цифровая информация, поступающая от оборудования другого ви-
да (которое в свою очередь принимало данные одним из трех
указанных способов).
ЪДДДДДДД¬
¦ Порты ¦
АДДДВДДДЩ
¦
ЪДДДДДДДДДДДДБДДДДДДДДДДДДД¬
¦ ¦
ЪДДДДДБДДДДДДДДДД¬ ЪДДДДДДДДБДДДДДДДДД¬
¦ Порты цент- ¦ ¦ Порты операцион- ¦
¦ рального про-¦ ¦ ной системы DOS ¦
¦ цессора CPU ¦ ¦ ¦
АДДДДДДДДДДДДДДДДЩ АДДДДДДДДВДДДДДДДДДЩ
Доступ к ним ве- ¦
дется по коман- ¦
дам IN и OUT ЪДДДДДДДДБДДДДДДДДД¬
¦ ¦
¦ ¦
ЪДДДДДДДБДДДДДД¬ ЪДДДДДДБДДДДДДД¬
¦Последователь-¦ ¦ Параллельные ¦
¦ ные порты ¦ ¦ порты ¦
АДДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДДЩ
Доступ к ним ве- Доступ к ним ве-
дется по обраще- дется по обраще-
ниям к функциям ниям к функциям
операционной сис- операционной сис-
темы DOS и системы темы DOS и системы
ПЗУ-BIOS ПЗУ-BIOS
Рис. 5-6. Типы портов и методы доступа
- 5-9 -
"Порты" используются операционной системой MS-DOS для пере-
дачи данных. Данные, считываемые через порт, представляют собой
данные внешней среды. Данные, поступающие в порт (иначе - "дан-
ные, записываемые в порт"), влияют (управляют) на внешнюю среду.
В операционной системе MS-DOS существует два типа портов: порты
центрального процессора CPU и порты операционной системы MS-DOS.
На рисунке 5-6 представлены два типа портов и методы, используе-
мые для доступа к этим портам. Физически эти порты могут выгля-
деть одинаково. И только по методу доступа их можно различить.
Порты центрального процессора CPU называются также "логическими
портами".
Порты центрального процессора CPU представляют передачу дан-
ных низкого уровня. Обращение к ним происходит непосредственно от
процессора. Каждый порт центрального процессора CPU идентифициру-
ется своим адресом. Может существовать до 65536 разных портов.
Операционная система MS-DOS использует некоторые порты централь-
ного процессора CPU для программируемого таймера и для таких спе-
цифических целей, как общение с клавиатурой и обмен данными с
дисками. Другие порты центрального процессора CPU могут использо-
ваться пользователем для других целей. Основной способ обращения
к этим портам заключается в применении команд IN и OUT языка Ас-
семблер. По команде IN происходит считывание одного байта или од-
ного слова из порта. По команде WRITE происходит запись одного
байта или одного слова в порт.
В операционной системе MS-DOS порт 61h центрального процес-
сора CPU используется для говорящего устройства. Второй младший
бит (бит 1) используется для управления звуком, поступающим от