|
|
|
|
Глобальные переменные DOS
Для сохранения информации о состоянии функционирования и для поддержки контекста запросов BIOS операционная система DOS использует многие
глобальные переменные. DOS обеспечивает рабочую область буферизованного ввода и для поддержки буферизованного редактирования входной строки сохраняет
дорожку текущего столбца. Одни переменные управляют протоколированием экрана, алгоритмом распределения памяти и текущим переключением символов.
Глобальные переменные включают флажки критической ошибки и критической секции, текущую PSP и текущую дисковую область передачи (DTA - disk transfer
area). Другие глобальные переменные описывают операции обработки в/в; они записывают адреса входов SFN, JFT и много другой важной и полезной
информации о запросе.
DTA является "коварной" структурой данных, потому что DOS использует ее в непредсказуемых случаях. Для грамматического разбора имен файлов и поиска
каталогов DOS поддерживает свою собственную DTA, а результаты этих операций она копирует в DTA пользователя. DOS замещает адрес DTA адресом
буфера для чтения и записи обрабатываемого файла. Такие операции как find first/find next (найти первый/найти следующий) осуществляют запись
непосредственно в текущий DTA.
Запросы, выполняемые с помощью TSR, как "побочный" эффект могут изменить глобальные переменные DOS. Операционная система DOS не ожидает, что другая
программа будет просматривать ее глобальные переменные, и, вероятно, придет в замешательство, если эти глобальные переменные будут изменены.
|
|