Информатика и технология программирования

         

Введение элементов многозадачности в MS DOS


Операционная система MS DOS является однозадачной, то есть принципиально не содержит механизмов переключения задач (процессов), структур данных, локализующих состояние задачи и пр.. Поэтому все традиционные средства управления процессами в MS DOS создаются прикладными программами. Такие программы имеют много общих принципов реализации и могут быть написаны на Си или ассемблере :



- резидентная программа (иначе TSR-программа) запускается как обычная EXE-программа и выполняет в функции main() следующие действия:



- определяется размер программы в параграфах как сумма размеров сегментов данных и команд (справедливо для Small-модели памяти программы на Си);



- сохраняет вектора аппаратных и программных прерываний, по которым она будет в дальнейшем активизироваться (клавиатура, таймер, последовательный порт, прерывание 21h DOS и др.);



- устанавливает на эти вектора адреса собственных функций обработки прерывания;



- инициализирует собственные данные программы;



- выполняет функцию keep() - выйти в DOS с сохранением занятой памяти;



- программы обработки прерываний должны иметь вызов функции обработки прерывания по сохраненному вектору прерывания, то есть вызывать по цепочке предыдущий обработчик прерывания;



- программы обработки прерываний не должны содержать функций, прямо или косвенно обращающихся к DOS или BIOS, поэтому все средства диалога (экран, клавиатура) должны быть реализованы "вручную".



Содержание раздела