10
предваряющая программный сегмент и именуемая Префиксом
Программного Сегмента (PSP). PSP формируется системой при загрузке
программы, ОС сохраняет среди своих данных адрес PSP выполняемой
программы, который играет роль системного идентификатора активного
процесса.
Программы в MS DOS бывают двух видов: COM- и EXE-программы.
COM-программа не может иметь размер более 64 Кбайт. Во всех
программах адресация ведется относительно содержимого базовых
регистров. В COM-программе содержимое всех базовых регистров
одинаково и формируется Загрузчиком ОС. В EXE-программе содержимое
базовых регистров может меняться, поэтому при загрузке такой
программы происходит настройка адресов – модификация адресных полей
тех команд программы, которые выполняют загрузку базовых регистров.
Поскольку программы пользователя имеют возможность
перехватывать любые – программные и аппаратные – прерывания,
пользователь имеет возможность создавать резидентные программы –
программы, которые после завершения остаются в памяти. Резидентная
программа обычно содержит в себе обработчик перехваченного
прерывания (например, от таймера, от клавиатуры), который выполняет
активизацию резидентной программы по этому прерыванию. И создание
резидентных программ, и перехват прерываний поддерживаются
системными вызовами MS DOS. После выполнения резидентной
программой своих действий возобновляется выполнение прерванной
программы. Таким образом, резидентные программы в MS DOS
обеспечивают некоторое подобие многозадачности.
Сохранение/восстановление контекста (регистров) прерванной программы
отчасти выполняется механизмом команд INT (программное прерывание)
и RET (возврат из прерывания), отчасти возлагается на резидентную
программу. Для полного переключения контекста резидентная программа