Предыдущий раздел | УПРАВЛЕНИЕ ПАМЯТЬЮ И ЗАПУСК ПРОГРАММ | Следующая глава |
Переделаем разработанный в разделе 16 редактор так, чтобы он состоял не из одной, а из нескольких программ. В результате должна получиться программная система, структура которой приведена на рис.64. На этом рисунке программы изображены в виде параллелограммов. Подобное изображение программ используется для того, чтобы подчеркнуть возможную независимость (параллельность) выполнения программ. При этом выполнение каждой программы представляет собой отдельный программный процесс, изображаемый в виде параллелограмма. Несмотря на то, что подобная параллельность реализуется лишь в мультипрограммных ОС, к которым DOS не относится, мы будем использовать изображение выполнения программ в виде процессов.
Рис. 64. Структура многопрограммного редактора
Небольшие прямоугольники внутри процессов на рис.64 обозначают точки входа в процесс. Точка входа – место в алгоритме процесса (программы), находясь в котором процесс “простаивает”, ожидая инициирующего (запускающего) воздействия со стороны других процессов. Более подробно используемый графический язык описан в Приложении 3.
Как видно из рис.64, главной программой многопрограммного редактора является Dispatcher. Но в отличие от однопрограммного варианта, она инициирует не свои внутренние процедуры, а отдельные программы, каждая из которых инициируется при нажатии пользователем своей функциональной клавиши. Прежде чем инициировать соответствующую программу, диспетчер должен загрузить в ОП загрузочный модуль программы. И загрузка и инициирование программы выполняются диспетчером с помощью рассмотренного ранее системного вызова EXEC.
Стрелки на рис.64 обозначают управляющие (инициирующие) воздействия. Такое воздействие поступает на точку входа инициируемой программы. Одновременно иницирующая программа сама оказывается в одной из точек своих входов. Например, диспетчер после запуска любой своей дочерней программы сразу же оказывается в той своей точке входа, которой соответствует оператор исходной программы, расположенный сразу же после вызова EXEC.
Предыдущий раздел | В начало | Следующая глава |