Научная статья на тему 'Об одном способе организации работы системы программ'

Об одном способе организации работы системы программ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
40
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Об одном способе организации работы системы программ»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 243 1972

ОБ ОДНОМ СПОСОБЕ ОРГАНИЗАЦИИ РАБОТЫ СИСТЕМЫ ПРОГРАММ

Ю. Н, ЕФИМОВ, Ю. Г. ЮРЕНКОВ (Представлена научным семинаром УВЛ ТПИ)

Программы, организующие решение задач на ЭЦВМ, обычно рассчитаны на то, что алгоритм решения задачи представлен в виде линейной последовательности программ. При решении многих задач (планирование, управление и т. п.) систему программ удобнее представлять в виде графа нелинейной структуры. В данной статье рассматривается один из возможных путей построения программы, организующей работу систем программ указанного выше типа.

Будем считать, что совокупность программ задачи — это ориентированный граф без контуров (программный граф), где каждая вершина графа есть программный граф или отдельная программа, направление дуги графа указывает на преемственность работы вершин; если вершина — программный граф (подграф), то в свою очередь его вершины есть подграфы или отдельные программы. Отсюда можно ввести следующую иерархию среди набора программных и числовых массивов совокупности задач, решаемых на ЭЦВМ: массивы, общие для всех задач, — массивы ранга О; массивы, общие для одной задачи, — массивы ранга 1; массивы, общие для части задачи, реализуемой подграфом (вершиной общего программного графа) — массивы ранга 2 и т. д.

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

Введем обозначения для объектов, рассматриваемых в статье, и символы отношений между ними: & — номер ранга (О^к^д); тк — номер программного графа / — номер числового массива (1^/^р), где р — граничное значение номера числового массива, ¿7 — граничное значение номера ранга,

пк — граничное значение номера программы графа ранга Символы отношений между объектами установлены следующим образом: для объектов А и В.

«А(В)» — означает, что В^А\

«Л, 5» — означает, что А и В объекты одного ранга;

— означает, что дуга графа направлена от вершины А к вершине В

Так, запись (В:С, О, Е:С)» означает, что из вершины В графа А выходят две дуги, направленные к вершинам С и Д и из вершины Е этого же графа выходит дуга, направленная к вершине С. Ниже верхний индекс «А^Ъ> означает, что из всех объектов типа А выбран один с номером у.

При этих обозначениях любой программный и числовой массив однозначно определяется заданием последовательности:

т0(т1(т2(...(ш(1(/))„.)))- 0)

Если / = 0, то (1) есть идентификатор программы; если 1Ф0, то (1) есть идентификатор числового массива, необходимого для работы программы т0(/П1 (... (гпц)...)). Если все тк в (1), начиная с некоторого ¿>0, равны 0, то при 1Ф0 (1) задает числовой массив, общий для подграфа ранга

(¿-п.

Информационный массив задачи состоит из 2-х частей: программного графа и списка числовых массивов задачи. Программный граф можно определить как объединение идентификаторов всех программ задачи с указанием их связей. Аналогично список числовых массивов есть объединение индентификаторов всех числовых массивов данного графа.

При принятых обозначениях подграф ранга к можно записать в виде следующей последовательности символов:

т<0к(ш(Ь)к+1: ОТк(Ь)к+1 , ,йПз)к+1тШк...). (2)

Программный граф задачи задается совокупностью выражений (2) с общим числом членов

п = щ + п2 + . . . . + . (3)

Список числовых массивов, необходимых для работы подграфа тК® с указанием их применяемости в вершинах подграфа, можно записать в виде

*(0-к('ь' (4)

Список числовых массивов всей задачи полиостью задается совокупностью выражений (4) с общим числом членов (3).

Выше задание было определено как перечисление некоторого числа выходных вершин программного графа задачи, т. е. задание представляет из себя список идентификаторов выходных программ системы. Этот Список удобнее представить в виде, аналогичном (4),

(тН (тЧ (,«<■■•),,.....), ...)- (5)

Целью программы-диспетчера является: после получения от задачи задания на работу определить по программному графу последовательность программ, необходимых для выполнения задания, и выполнить их.

Программа-диспетчер такого типа разработана для ЭЦВМ «Урал-14Д» в качестве управляющей программы автоматизированной системы планирования и управления производством «АСУП-Томск». «АСУП-Томск» применяется для планирования и управления производством нескольких предприятий. Совокупность программ «АСУП-Томск» представляет собой довольно сложную систему, которую удобнее всего представить нелинейным графом. Данная система программ применяется для различных целей планирования и управления, причем в каждом конкретном случае для работы нужны не все программы, входящие в систему. Программа-диспетчер рассчитана на число рангов массивов 6=3. В приложении к системе программ «АСУП-Томск» введенные выше понятия программного графа и подграфа означают: программный граф задачи —вся система программ для полного расчета задач, решае-

мых «АСУП-Томск» для одного предприятия; подграф — часть системы, решающая частную задачу в рамках всей системы.

Программа-диспетчер предназначена для последовательного выполнения заданий предприятий по планированию и управлению производством. Так как схема работы программы-диспетчера аналогична другим программам такого же типа, то ниже приводится только общее описание программы-диспетчера с указанием черт, отличающих ее от аналогичных программ. Программа-диспетчер последовательно выполняет задания предприятий, причем для ускорения работы в программе предусмотрено 5 параллельных потоков счета: решение задач, ввод информации с перфокарт, ввод информации с перфоленты, печать информации на алфавитно-цифровом печатающем устройстве (АЦПУ), выдача информации на перфоленту.

Программные и числовые массивы, как исходные, так и формируемые в процессе счета, хранятся в накопителе на магнитной ленте (НМЛ ) и вызываются в оперативную память (НФ) только для работы. Данные об их местонахождении на НМЛ (адрес НМЛ) хранятся в управляющем массиве программы-диспетчера. Этот массив состоит из подмасси-вов, соответствующих рангам массивов системы. В первом подмассиве хранятся адреса НМЛ массивов ранга 1 и подмассивов управляющего массива с данными о массивах ранга 2 и т. д. Адреса НМЛ в подмассиве управляющего массива расположены в порядке возрастания номеров соответствующих массивов. Адрес НМЛ в управляющем массиве занимает 48 двоичных разрядов и содержит номер блока НМЛ, номер механизма НМЛ, номер зоны НМЛ и количество зон, занимаемых данным массивом. Относительные адреса в подмассиве управляющего массива определяются по следующей формуле:

А0(т)=АН+2т9 (6)

где т — номер массива,

Л0(т) —относительный адрес адреса НМЛ от начала подмассива, АН — относительный адрес начала данных о массивах типа т.

Ввод информации в ЭЦВМ происходит по указанию оператора, задаваемому с пульта. Исходные массивы, вводимые в ЭЦВМ, по мере их ввода переписываются на НМЛ, данные с них заносятся в управляющий массив. По этим данным определяются адреса НМЛ массивов, формируемых в процессе решения (распределение НМЛ). Массивы, вызываемые из ЭЦВМ, формируются программами системы и записываются на НМЛ, после чего программа дает указание программе-диспетчеру выдать их на печать или перфоленту, а сама продолжает работу. Распределение оперативной памяти происходит следующим образом: программе отводится часть НФ определенной длины (постоянной для всех программ), и программист при составлении программы распределяет эту часть НФ по своему усмотрению; список массивов НФ перед началом работы программы передается программе-диспетчеру, которая по списку массивов программы формирует таблицу массивов ЭЦВМ. Причем в процессе работы программа может перераспределить свою часть НФ, о чем сообщает программе-диспетчеру, которая в свою очередь вносит изменения в таблицу массивов.

Программа-диспетчер начинает работу с начального ввода информации. После того, как в ЭЦВМ введены информационный массив задачи и задание, по программному графу задачи (ранг 1) определяется последовательность подграфов ранга 2, соответствующих заданию, и строится цикл на количество этих подграфов. Внутри этого цикла для каждого подграфа определяется линейная последовательность программ (ранг 3),, соответствующих заданию, и эти программы выполняются для каж-

дого подграфа. В процессе вычисления программа-диспетчер проверяет наличие массивов, необходимых для работы. Если массивы отсутствуют» то программа-диспетчер выдает оператору список отсутствующих массивов и переходит к подграфу, независимому от выполняемого, или к другой задаче. После окончания цикла на число подграфов программа-диспетчер осуществляет переход к другой задаче.

Годовой опыт эксплуатации описанной программы-диспетчера для ЭЦВМ «Урал-14Д» показал ее достаточно высокую эффективность.

i Надоели баннеры? Вы всегда можете отключить рекламу.