|
Все эти опции приводят в
результате к непереносимому программному коду, но иногда это и
есть цена платы за предоставляемые возможности.
Если BIOS, на самом деле, загружается с диска во время на-
чальной загрузки системы, то почти наверняка для обеспечения ин-
терфейса с аппаратными средствами пользователи будут писать свои
собственные подпрограммы. В отличие от связи между обычными прог-
раммами и MS-DOS, которые используют векторы прерываний, MS-DOS
общается с BIOS посредством инструкций CALL и JMP. MS-DOS не име-
ет стандартной таблицы переходов для BIOS (типа системы CP/M),
которая могла бы использоваться прикладным программистом, так как
можно легко заметить, что иметь BIOS, базируемую на ROM, гораздо
ценнее, чем писать резидентные подпрограммы для доступа к аппа-
ратным средствам.
Прерывания в сравнении с системами с опросом
Вторая область различий формируется в зависимости от того,
являются ли аппаратные средства управляемыми с помощью прерыва-
ний или управляются с помощью опроса. "Управляемые с помощью
прерываний" означает, что для уведомления BIOS о событиях, кото-
рые могут произойти, система использует прерывания аппаратных
средств. "Управляются с помощью опроса" означает, что эта систе-
ма должна неоднократно спрашивать, или опрашивать аппаратные
средства для проверки экземпляров событий. Системы, управляемые
прерываниями, обеспечивают большую гибкость и большие удобства
для установки некоторых типов резидентных программ.
Одним из соблазнов разработчиков систем, управляемых преры-
ваниями, является желание использовать только одни прерывания
аппаратных средств для управления резидентными подпрограммами.
Иногда это приводит к облегчению способа вывода информации,
а иногда приводит к невероятному "кошмару". До тех пор, пока ис-
пользуется локальный стек, и не "захламлен" стек системы, MS-DOS
сама обычно нечувствительна к присутствию прерываний. Однако, в
отношении BIOS такое упрощение недопустимо. BIOS невозможно на-
- 3-62 -
писать без учета прерываний или, по крайней мере, тех прерыва-
ний, на которые рассчитывали авторы BIOS. Если происходит
прерывание в чувствительной по времени части BIOS, как, напри-
мер, при чтении или записи на дисковый накопитель, то подпрог-
рамма обслуживания может нарушить функционирование BIOS, что мо-
жет привести к сбою или зависанию всей системы.
Внесение "заплат" в векторы прерываний
Резидентные подпрограммы активизируются в одном из двух слу-
чаев: они инициирутся с помощью прерываний аппаратных средств
(управление событиями), или они должна поместить "заплату" в су-
ществующую систему (управление перехватом).
|