|
|
программе пользова- ---------------
теля
Рис.3-16. Использование векторов прерываний подпрограммой
буферизации печати
При любом использовании векторов прерываний для реализации
некоторого подобия параллелизма, имеется риск "выхода" из выпол-
нения программы, осуществляющей непосредственный доступ к аппа-
ратным средствам. |
win rar |
|
|
Например, если для обеспечения некоторых воз-
можностей устанавливается вектор прерывания клавиатуры и если
другая программа обходит вектор клавиатуры и вместо этого осу-
ществляет чтение с аппаратных средств, то резидентная подпрог-
рамма не получает управления. Этот эффект может легко произойти,
если устанавливается несколько резидентных программ, потому что
каждая программа должна обойти MS-DOS для выполнения ввода/выво-
да. |
антивирус panda |
|
|
Например, если и подпрограмма буферизации печати и резидент-
ная подпрограмма устанавливаются для печати содержимого видео-
дисплея, и обе активизированы в одно и тоже время, то произойдет
конфликт. Эти проблемы могут также возникнуть и при установке
имеющихся в наличии коммерческих резидентных подпрограмм. |
перевод с русского на английский |
|
|
avast 4 professional edition, ad aware, бухгалтерия, резервное копирование, asplinux deluxe, .
winrar
|
Например, подпрограмма буферизации печати - print spooler
routine (которая печатает файлы во время выполнения других прог-
рамм) не только должна прерывать прерывание для активации пере-
дачи символов в принтер, но также должна прерывать любое обраще-
ние к MS-DOS, которое использует принтер, так, чтобы не
возникали конфликты. Рис.3-16 показывает прерывание буферизации
печати int 28h для активации самой себя и прерывание int 21h для
охраны самой себя от конфликтов при доступе к принтеру.
- 3-65 -
---------------
прерывание | ... | Таблица векторов се-
---------------------| Int 21 IP/CS |<---------------------
| прерывание | ... | мейства микропроцес-|
| -------------------| Int 28 IP/CS |<----- соров 8086 |
| | | ... | | |
| | --------------- |Внешний вызов |
| | --------------- | Int 28h |
| | ------>| MS-DOS |------ MS-DOS |
| | | | ... | |
| | --------|-------| Коды Int 21 |<----------------- |
| | | | | ... | | |
| | | -------| Коды Int 28 |<------- Возврат | |
| | | --------------- | в | |
| | | --------------- | MS-DOS | |
| --|--------------->| Подпрограмма | | из пре- | |
| | | буферизации | | рывания | |
| | | ... | | Int 21h | |
| | | Коды печати |------- | |
| | | ... | | |
| | |---------------|Передача Int 21h | |
----|--------------->|Проверка Int 21|------------------ |
| --------------- |
| --------------- |
| | Программа | |
| | пользователя | |
| | ... | |
--------------->| Int 21h |----------------------------
Возврат Int 21 в | ...
|
|
|