автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Организация мультитерминального доступа на малых ЭВМ

кандидата технических наук
Кривов, Владимир Иванович
город
Москва
год
1990
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Организация мультитерминального доступа на малых ЭВМ»

Автореферат диссертации по теме "Организация мультитерминального доступа на малых ЭВМ"

' : I V»,

МИНИСТЕРСТВО ЭЛЕКТРОТЕХНИЧЕСКОЙ АКАДЕМИЯ НАУК СССР

ПРОМЫШЛЕННОСТИ И ПРИБОРОСТРОЕНИЯ

ОРДЕНА ЛЕНИНА ИНСТИТУТ ПРОБЛЕМ УПРАВЛЕНИЯ (автоматик» я телемеханики)

На правах рукописи

КРИВОВ Владимир Иванович

УДК 881.3.00

ОРГАНИЗАЦИЯ МУЛЬТИТЕРШШАЛЬНОГО ДОСТУПА НА МАЛЫХ ЭБН

Специальность: Об.13.11 - Математическое и программное обеспечение

вычислительных малин и систем

Диссертация на соискание ученой степени кандидата технических наук в форме научного доклада

Москва - 1990

ГА*

Работа выполнена в ордена Ленива Институте проблем управления (автоматики и телемеханики).

Научный руководитель - к.т.в., ст.н.с. ГуковскиЯ Д.Э.

Официальные оппоненты: д.т.к., проф. Хоашшивжля A.A.

к.*.-м.н., ст.н.с. Кмалхн Я.В.

Ведущее предприятие - НПО "Импульс", г.Северодонецк.

Защита состоится ' " tW.yjrld 1990 г. в ^ час. на заседании Специализированного совета N2 (Д002.вв,01) Института проблем управления автоматики и телемеханики) по адресу: 117806, г.Москва, Профсоюзная ул., 65. Телефон Совета: 334-93-29.

С диссертацией моино ознакомиться в библиотеке Института проблем управления (автоматики и телемеханики).

Автореферат разослан "_"_ 1990 г.

Ученый секретарь Специализированного совета N2 д.т.н., проф.

В.В.Игиатущенхо

Актуальность проблемы. Малые ЭВМ серн» СИ является одним* иэ наиболее распространенных ЭВМ, применяемых в автоматизированных системах управления. Причем, для современных АСУ характерно активное взаимодействие больаого количества пользователей с ЭВМ для получения оперативной информации и, возможно, воздействия на процессы управления. В связи с этим интерактивный режим работы пользователей с ЭВМ приводит к одновременному запросу с нескольких терминалов одной и той ве программы, что при ограниченных ресурсах влечет за собой различного рода проблемы, связанные с организацией вычислительного процесса в таких системах. Вообце, возможность одновременного доступа к одной и той же программе со многих терминалов - необходимое свойство лвбой современной вычислительной системы коллективного пользования. Кроме того, программное обеспечение АСУ состоит иэ большого комплекса программ, активно взаимодействувцхх друг с другом, и "организация их взаимодействия и обмена данными между ними является одними из наиболее сложных «адач при разработке программного обеспечения АСУ. Таким образом, предоставление разработчикам АСУ на малых ЭВМ инструментальных средств для организации мультитерминального доступа н межпрограммного взаимодействия является актуальной задачей, реаениа которой позволяет уменьшить затраты на разработку и повысить эффективность использования малых ЭВН в современных АСУ, в частности - повысить пропускнув способность ЭВМ за счет более рациональной организации вычислительного процесса.

Цель»_Еа0С!1Н является создание инструментальных программных средств для малых ЭВМ, основанных на методе блочно-реентерантного программирования, состоящего в ограничении возможности прерывания программы для обработки другого запроса в любом месте программы и предоставлении программисту возможности самому определять точки прерывания в программе, а также задавать области данных, которые необходимо запомнить. Разработанные инструментальные средства направлены на существенное ускорение разработки программных комплексов, работающих в режиме мультитерминального доступа, и упрощение сопровождения таких систем за счет их структурирования и унификации, а также на повышенна эффективности использования малых ЭВН.

принципов, метода и с. здста блочно-реентерантного программирования

работы заключается в обосновании и исследовании

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

Достоверность научных положение, выводов и практических рекомендаций подтверждена корректным обоснованием и анализом программной модели вычислительного процесса на малых ЭШ1 с ограниченными ресурсами, сравнением теоретических выводов с результатами экспериментов на тестах, а также результатами широкого практического использования предложенных в работе методов, алгоритмов и программных средств.

Практическая ценность■ Результаты работы позволили на основе предложенных методов и алгоритмов создать инструментальные комплексы для ЭВМ серии АСВТ и СМ. Эти комплексы позволяет на основе принципов блочно-реентерантного программирования создавать достаточно быстро н просто прикладные программные комплексы на языках высокого уровня, обладавшие способностью осуществлять обработку запросов со многих терминалов. Приэтом не создастся копии программ для каждого терминала, и программирование практически не отличается от программирования для однотерминального режима. За счет блочной реентерабельности программ суцествено уменьшается время переключения с обработки одного запроса на другой и, соответственно, среднее время обработки запроса, а пропускная способность вычислительной системы возрастает. Уменьшается трудоемкость программирования сложных мультитерминальных и мультипрограммных комплексов. Упрощается программирование взаимодействия, обмена данными к синхрсницации работы программ, участвующих в одном процессе.

Апробация работы. Основные результаты работы докладывались на сеиямара-дискуссии по концептуальный и прикладным вопроса« обхай теории систем г.Идвеван, 1975г., иа I симпозиуме ИФАК/;;с:*.П по программному обеспеченно ЭВМ в системах упргЕлашш, г.Таллин, 1970г., на семинаре- "Ммогомааиккые комплексы и систра кс;:лс:ст;1Л.;ого пользования ЗВН как техническая <йза аатсист^зац-.м лроеччагевакиа",

г.Челябинск, 197гг., на Всесоюзной конференции "Автоматизация проектирования систем планирования а упрааления", г.Звенигород, 1587г.

Реализация результатоп рэботи. Научные и практические результат» работы полозекы в основу разработанной Системы Мультитерминзльнсго Доступа (СМД) для ЭВМ серии АСВТ и СМ. СМД для ЭВМ типа Меооо, 147000 и СМ-1 была принята Ведомственной комиссией и поставлялась производителем ЭВМ пользователям как стандартное программное обеспечение. СМД для ЭВМ типа СМ-4, СМ-1420 и т.п. используется в качестве системных средств для разработок прикладных а универсальных программных комплексов в Институте проблем управления. По запросам пользователей ЭВМ программные пакеты и описания СМД направлены более чем в 50 организаций. Годовой эффект от использования СМД на одноа ЭВМ состазляат около бо тыс.руб.

СОДЕРЯАНИЕ РАБОТЫ

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

При создании ППО разработчикам приходится решать следувщне задачи:

а) обслуживание терминалов как инициативных устройств;

б) программирование диалога между терминалами и программами;

в) проектирование организации вычислительного процесса с учетом

специфики мультитерминальных систем;.

г) организация взаимодействия между программами;

д) разработка средств предотвращения тупиковых ситуаций и

другие.

.Существующие стандартные системные средства - операционные системы (ОС) малых ЭВМ, как правило, не решают всех ввЕеперечксленньгх задач, однако имеет ряд средств, с помощь» которых можно решить эти задачи. Причем, естественно, на разных ЭВМ эти

средства различается как по обгему так и функционально.

В работе исследуется возможность создания инструментальных программных средств, реаавдих перечисленные аадачи для построения ППО с мультитерминальным доступом и предлагается их реализация для двух самых распространенных в СССР типов малых ЭВМ. Под мультитерминальным доступом здесь понимается такая организацхя вычислительного процесса, когда одна программа моает производить обработку запросов со многих терминалов одновременно. При этом под программой подразумевается не ее Физический образ, то есть конкретная область памяти, где она располагается, а логический -совокупность команд, выполняемых при обработке конкретного запроса. При таком определении допускается наличие нескольких копей программы, которые логически является одной программой. Под запросом понимается требование на выполнение определенного вычислительного процесса, исходящее от конкретного инициатора, причем конечный и/ыли промежуточный результаты могут быть выданы этому инициатору. Отметим, что инициатором может быть программа. Системные программные средства, поддерживающие указанный режим, называется в литературе по-разному: телекоммуникационный монитор - в системе телеуправления КАМА для ЕС ЭВМ, открытая диалоговая система - в системе мультидоступа МС для ЭВМ БЭСМ-в. В данной работе принято название -система мультитерминального доступа (СМД).

Что дает применение таких систем разработчику ППОТ Ках известно, они "...освобождает прикладного программиста от решения с своих программах сложных задач управления линиями связи и терминалами, а также распределения ресурсов ЭВМ". Другими словами, они даст возможность прикладному программисту сосредоточиться на решении специфических для разрабатываемого ППО задач, избавляя его от проблем организации связи между программами и пользователем и терминалами и между различными программами, осуществляЕадмз конкретнув транзакцив. Под транзакцией здесь понимается процесс выполнения одного запроса от его инициализации до выдачи ответа ылициатору или оформления результата и произведения управлявшего воздействия, или записи результата на периферийное устройство.

ППО, разработанное в рамках СНД, легко структурируется к унифицируется, проще в отладке и эксплуатации.

В работе рассматривается методы решения задач, возникавших при разработке СМД и способы конкретное реализация отдельных функция СНД. Работа базируется, в основном, на собственном опыте разработка СНД для малых ЭВН серли н-бооо и СИ.

ОЗслуяквание терминалов как инициативных устройств.

В АСУ и системах коллективного пользования пользователи вводят запросы в произвольные моменты с разных терминалов, таким образом терминалы должны быть инициативными, то есть информация, вводимая в терминала должна передаваться соответствующей программе на обработку не по запросу от этой программы, а по самому факту ввода этой информации и в зависимости от ее предназначения. Системные средства о ОС для ЭВМ М-вооо (ДОС РВ) и СМ-4 (ОС РВ) позволяют ревить эту задачу, однако ее решение требует больших трудозатрат, Поэтому даннуо функцию мультнтерминальной вычислительной системы необходимо оформить в виде стандартной процедуры. В связи с естественным различием системных средств ЭВМ Н-вооо СН-4 методы решения задачи различны. В ОС РВ имеется возможность прикрепить к каждому терминалу программу, осуществляющую обработку поступавшей с него информации, если ваод с этого терминала не~ был затребован ни одной из исполняемых в данный момент программ. Такая программа обработки монет одна обслуживать несколько терминалов. Будем называть такув программу монитором ввода. В СМД для ЭВМ СМ-4 монитор ввода осуществляет проверку вводимой информации на ее корректность и ставит введенную информации в очередь на обработку соответствующей исполнительной программой. В ДОС РВ ЭВМ М-еооо такой возможности нет, поэтому к каждому терминалу прикрепляется копия одной и той ве программы. Данные программы только осуществляет ввод информации с терминалов, а потом передают ее на обработку планировщику СМД, оформленному в виде псевдоразделяемой подпрограммы, который производит синтаксический анализ и передает управление соответствующей исполнительной программе или, если эта программа занята в данный момент обработкой другого запроса, ставит поступивший запрос о очередь к этой программе. Вообще, в СКД исполнительные программы должны производить ввод с терминалов не путем обращения к средствам ввода/вывода, существующим в ОС, а только при помощи обращения к соответствующим средствам СМД.

Программирование диалога между терминалом и программой.

Диалог исполнительных программ с пользователями может производиться в произвольной Форме, однако, э этом случае решение задачи программирования диалога лозится целиком на разработчика ППО. Поэтому диалог зэяатвлыю в какой то степени формализовать, чтобы снять ряд гедач с разогбозчика ППО :: перэлоаатъ вх ка ярограммпоэ

обеспечение СМД. В результате исследования бил выбран . диалог пользователя с ЭВМ в виде директив. Директива - это клэчевоа слово, однозначно определяющее запрос и, может быть, ряд параметров вяа данных, конкретизирующих этот запрос. Директивы могут быть двух типов - короткие и длинные. Короткой называется директива, состоящая из ключевого слова и параметров, вводимых в одной строке терэвшгла. Если параметры не помещаются в одной строке, либо во врг:;п выполнения директивы необходим ввод дополнительной информации, то такая директива называется длинной. Причем, ключевое слово долгно присутствовать только в первой строке вводимой информации. Клгчевоо слово, определяющее запрос, называется именем директивы, а первая строка длинной директивы - началом директивы. Все последующие строки называются продолжением директивы.

Диалог в виде директив - одпи из наиболее распространенных видов диалога. Инициатором начала диалога при таком виде диалога всегда является пользователь. В случае короткой директивы дкалог состоит из одной Фразы пользователя и одной или нескольких фраз ЭВН. В случае длинной директивы пользователь моает обмениваться с ЭВМ несколькими фразами, то есть строки продолжения директивы не обязательно являются параметрами этой директивы, а могут содержать информацию, требуемую ЭВМ в результате обработки предыдущих строк директивы. Диалог- в виде директив занимает как бы промежуточное половение между практически не формализовании» диалогом на естественном языке и полностью формализованным диалогом со форма. С одной стороны он поддается достаточно большой степени Формализации, а с другой - в нем имеется достаточно возможностей для введекчл неформальных элементов. В СМД для М-еооо длинная директива состоит ез трех частей: начала, продолжения и окончания, причем окончание является стандартным для всех директив. В СМД для СМ-4 дл*.:..::..,' директива формально состоит из двух частей: качала я продолжения. Инициатива окончания диалога может исходить как от пользователя так и ог исполнительной программы. В енд для М-еооо пользователь осуществляет это путем ввода стандартного признака окончания, а с СМД для СН-4 - вводом сообщения специфичного для каждой Д5;рект:;зк.

В процессе диалога могут возникать различимо лгпрздзЕденаьа ситуации. Так, например, во время ввода информации пользователем необходимо выдать экстренное сообщение ка занятый этой процедурой терминал. В ОС РВ кмеется системная возможность выдачи экстренных сообщенийа в .ДОС РВ такой возможности нот, поэтому в СМД для М-еооо пй;жлось предусмотреть спецкэяькаа механизм, ссасг,а:-;кмй на тайм-аут,е, •

.Определение организации вычислительного прсцзсса с учетом спзцкфики мультитеркииальных систем.

Специфика организации вычислительного процесса пра мультатерминальном доступе состоит, в оснознон, в существования очереди запроссз с расных терминалов на одну программу. Суцествувцне на малых ЭВМ ОС не кмеэт такой возногностя, поэтому для организация управления такой очередью необходимо рззрзбатиззть специальные программные средства. В СМД, разработанных автором, этой проблемой занимается плзнкрсзщнк СМД, оформлений в виде подпрограы!.^. Процесс оСрпботки запросов с разных терк:шалоз одной прикладной прогргмпдоз является асинхронным как из-за асинхроиностя поступления запросоз, тг« и из-за различного временя ' обработки кагдого к& них. Переключение прикладной программа с обработки одного запроса га другой зелатольно производить в -такие моменты времени, когда обработка текущего запроса прерывается длл выполнения какой-либо медленной операции, осуществляемой вне прикладной программы. Одной пэ таких операций является ввод информации с терминала. В СМД зео операции ввода с терминала инициируются прикладной програияоЗ нэ обращением к стандартному оператору ввода, а к подпрограмма аз библиотеки СМД а которой ввод терминала инициируется путем передачи запроса на взод программе ввода (в СМД для М-еооо) или путем сообщения ОС о инициативности данного терминала (в СМД для СМ-4). Ввод информации с терминала производится в буфер памяти не связанный с прикладной программой инициирующей запрос, так как программа может требовать ввод одновременно с нескольких терминалов и в этом случае в каждой программе надо иметь столько буферов, сколько терминалов обслугнвается системой. Во время ояидания ввода программа мозет обрабатывать другой запрос, то есть переключаться на другую транзакцию. Для этого необходимо данные, изменяемые в прерываемой транзакции, запомнить с тем, чтобы прн продолжении обработки этой транзакции восстановить их. Осуществление такой организации вычислительного процесса приводит к реентерантному программированию.

Этот термин означает способ организации вычислительного процесса при котором одинаковая обработка данных выполняется одним а тем ае физическим программным модулем. В этом случае говорят о реентерабельной программе, то есть программе, которая мозет пререкаться при выполнении одного запроса а переходить к обработке другого, о потом возвращаться х обработке прерванного. Реентерэбо.п! нссть ¡-¡с хэт бить полной, когда прерывание мозет

-.в -

происходить в любом месте программа, а монет быть к неполной, когда прерывание может происходить только при выполнении определении}; условий. Одним из видов неполной реентерабельности является блочная реентерабельность. В этом случае прерывание может происходить только на границе некоторых блоков, а внутри этих блоков прерывание обработки запроса невозмохно. Такую реентерабельность легко реализовать только программным способом на ЭБМ любой структуры, что является одним из ее преимуществ перед чистой реентерабельность», для реализации которой обычно необходимы соответствующие аппаратные средства. Далее, так как установкой точек прерываний в прикладных программах фактически занимается разработчик ППО, то могно при создании ППО учитывать условия его работы в конкретной операционной и прикладной среде. Отсюда появляется возможность оптимизировать вычислительный процесс целесообразным для данной системы разбиением программ на блоки, уменьшив количество обменов с внешними накопителями за счет уменьшения переключений с программ на программу, вызывающих динамическое замещение или начальнуо загрузку программы. Кроме того, в случае полной реентерабельности для программ, написанных на языках высокого уровня, при участии программы в нескольких процессах копируюся только блоки, содеряащие данные, а команды не копируются, что не всегда удобно. Например, есть переменные, значения которых являются результатом общих вычислений данных всех или нескольких процессов, в которых участвует программа и для такой обработки данных необходимо организовывать обдую область, то есть прикладывать дополнительные усилия. Тгкки образом, даже при наличии системных средств организации реентерабельности в некоторых случаях солательно иметь собстсенныз средства для удобства реализации обработки конкретного запроса. С СНД, разработанчой аЬтором, при прерывании запоминаются только данные, специально указанные программистом. При реализаций механизма блочной реентерабельности необходимо решить задачи хранения контекстных данных, то есть данных специфичных для каадой транзакции, а также ^гдачу передачи управления программе, продолгаацей транзакцию, в тичку, в которой эта транзакция сила прервана.

К недостаткам блочной реентерабельности могно отнести то, чте системное программное обеспечение, организующее этот процесс, обачке присоединяется п кггзой программе, и это увеличивает ее объеу.

- о -

Организация взаимодействия мегду программами.

При разработка АСУ задачи, которые она должна резать, практически всегда можно разбить на отдельные Функции, которые обычно встречается в различных задачах. То есть решение каждой задачи состоит из выполнения цепочки различных функций, причем для разных задач порядок и количество выполняемых функций различно. В этом случае говорят о модульном построении АСУ. При таком подходе важно правильно организовать взаимодействие отдельных модулей. Необходимо знать порядок выполнения отдельных модулей для каждого запроса. В этот процесс входит управление всей цепочки обработки запроса, начиная со ввода информации с терминала, управления очередями и межпрограммным обменом и выдачей на терминал. Для организации данных, описывающих порядок выполнения запросов, автором предложен принцип децентрализованной композиции, который эаклачается в том, что любой запрос описывается в виде графа, в верякнах которого находятся исполняющие программы и описание зависимости выходов и входов для каждой вершины помещается отдельно, чаще всего вместе с программой. Таким образом, в каждый конкретный момент времени планировщик знает только о ближайших к данной вершине и связанных с ней вершинах графа. Это позволяет экономить оперативную память. Правда, в данном случае усложняется алгоритмы предотвращения тупиковых ситуаций. Можно пользоваться и стандартным методом полного описания взаимодействия вершин, когда оперативная память позволяет это сделать.

Одной из наиболее важных функций СМД является организация межпрограммного обмена. Механизм обмена между программами в СМД для СМ-4 был реализован аналогично механизму обмена между программой и терминалом. Такая реализация упрощает программирование прикладных задач и построение сложных программных комплексов, так ках прикладной программе безразлично откуда к ней поступает информация -от другой программы или от терминала, то есть при программировании нет необходимости учитывать источник информации. Однако в случае межпрограммного обмена используются другие системные ресурсы, чаще всего динамическая системная область или общая системная область. Так как при передаче данных принимающая программа может быть занята, то я в этом случае необходимо управлять очередь» запросов. В СМД для М-аооо механизм обмена ме*ду программами отличается от мвхзнжзма обмена между программой и терминалом и поэтому для управления процессон осс.чмодеЯствия между программами икеется свой плакировщик. Это но очячь удойчо, эк как требуя?, соответственно, двух описаний

и двух различных очередей, поэтому в СМД для СМ-4 этот недостаток устранен.

Кроме вышеописанных проблем при разработке ППО приходится решать задачи защиты от несанкционированного доступа, предотвращения тупиковых ситуаций и много других мелких, но тем не менее трудоемких при осуществлении частных решений проблем.

Нисе приводится описание разработанного автором инструментального комплекса системы мультитерминальнсго доступа,

существенно упрошакшего решение перечисленных проблем._¡¡,

следовательно. ускорявшего разработку прикладных систем и улучиаюиего их характеристики. Описание ранее разработанной авторе»; СМД для ЭВМ типа М-еооо было опубликовано в работе [3] (см. список опубликованных работ) и поставлялось заводом-изготовктелеи таккх ЗЕН пользователям вместе с программным обеспечением [5], поэтому автор не приводит его в данной работе.

Реализация СМД на малой ЭВМ в таком обгеие является уникальной. насколько это известно автору и, поэтому структура таблиц, Функциональный состав и алгоритмы ее работы являются оригинальными.

Далее описываются: структура СНД, модули библиотеки интерфейса ГШ с СНД, генератор и административные программы, служащие для настройки, запуска и прекращения работы СМД, заведения п удаления пользователей СМД и ПП, включенных в СМД, а также стандартна диалоговые программы выдачи подсказки и регистрации пользователей СМД и переключения терминалов на прямую работу с ОС (ОС РВ кла ивх-пм).

Структура СМД

В состав СМД входят:

а) программа настройки и запуска (мпыт) - генератор СМД;

б) монитор ввода (мп...);

в) диспетчер СМД (МГСЫЕО) ;

г) библиотека интерфейса с пра'/ладиами программа»; (мтил£);

д) адмикистргткзныо программы (нтастж, нтлссс);

е) стандартные диайогозыэ ирг^ргкиа ( мтнеи., ктиазт,

НТЮРР, МТЕМСЙ);

а) программа вывода на терминалы (мтюит);

з) Файлы описания СНД, пользователей СМД и сообщений об

ошибках (мтбзуз.оез, мтасмт-оеб, еррмеэ.оез).

Программа настройки и запуска (генератор СНД) создает в оперативной памяти таблицу статического описания СНД (МТАВ1.Е) по данным из Файла описания и резервирует в этой таблице место для динамических списков; регистрирует в ОС прикладные программы, обслуживаемые СМД и стандартные диалоговые программы; производит регистрации терминалов СМД в ОС, запуск монитора ввода а создает командная $айл для удаления СМД из ОС.

Таблица МТАВ1.Е помечается в динамической области, создаваемой для поддеразния среды СНД; при "разгрузке" СМД МТАВ1.Е удаляотся из памяти.

Монитор ввода обрабатывает все запроси с терминалов н ставит ах в очередь на соответствующие прикладные программы.

Диспетчер СМД следит за выполнением запросов, обработкой очередей на прикладные программы к передает управление в соответствующие точки прикладных программ.

Подпрограмма из библиотеки интерфейса осуществляют связь ¡¡ежду прикладными программами и СМД, запоминают необходимую информации при прерывании обработки запроса, передают выполнение запроса другим прикладным программам, Формируют запрос на вывод и передают его программе вывода на терминалы, а также осуществляют различные действия над общими файлами, описание которых будет дано ниже.

Административные программы служат для создания файла описания СМД и файла описания пользователей СМД. Этими программами пользуется администратор системы.

Стандартные диалоговые программа регистрируют пользователей СМД в начале их работы на данном терминале а освобождает терминал по окончании работы пользователя с СМД, выдаст спрзвочнув информация о СМД (список-доступных по-ГоВозателл директив, комментария к ким и т.п.), а т?.дэз переялэчавт терминал на прякуэ работу с ОС, то гсть лоегдёдуцциа ^год с терминала обрабатывается стандартной программой С2.13И с «аераюрси (мер), а :ю монитором ввода СМД.

Программа вывода на терминалы обрабатывает запроси от прикладных программ на вывод информации на терминал и выдает поступавшую информации на соответствующие терминалы.

В файле списания СМД содержатся данные о директивах С!!Д и пользователях, программах, обрабатывающих эти директивы, тсрш:::ала::, обслуживаемых, СМД и о максимальном количестве общих Файлов.

В файле описания пользователей содерзатся имена польэоватанай, их пароли, коды доступа, имя директивы, запускаемой по умолчаний в момент регистрации пользователей и время последнего изменения данных по каждому пользователи.

В Файле сообщений об ошибках содержится "фирменный" заголовок, выдаваемый служебными программами и сообщения об ошибках при работе служебных программ.

Кроме вышеописанных составных частей в СКД включаются прикладные программы, написанные пользователями для обработки их директив. Таким образом, СМД является открытой диалоговой системой.

Алгоритмы работы СМД

Администратор СМД первым делом долген создать ее описание пра помощи программы mtsdir и описание пользователей при . помс^ программы мтассо. После этого мокно производить инициацию в запуск СИД при помощи программы mtint.

Терминалы, работающие в СМД (т.е. занесенные в описание СИД), регистрируются в ОС программой mtint. К ним прикрепляется монитор ввода - MTI..., который перехватывает все информацию, сводимув с терминалов и производит ее анализ и простейший синтаксичоский разбор. Если эта информация является допустимой, то в очередь ка исполнение ставится соответствующая прикладная программа, которая обрабатывает эту информацию. Вся поступающая с терминалов информация считается относящейся к запросам на выполнение каких-либо действий прикладными или стандартными диалоговыми программами СМД. Запрос к ПП, обслуживаемой СМД должен Оыть оформлен в виде директивы.

При поступлении начала директивы монитор ввода определяет какой

прикладкой программоЗ (ПП) долпен обрабатываться данный запрос, состояние ПП, производит запуск ПП, если это необходимо, п ставит блок введенной информации на обработку к этой ПП. Если ПП уга. обрабатывает какой-либо запрос, то происходит только постсногша информации в очередь на обработку. При выходе з точку прерывания (посредством обращения к кодулз библиотеки интерфейса (МНЯ)) поело выполнения необходимых дзйстркй по завершению работа блока, управление передается диспетчеру СМД, присоединенного к ПП ке.ч библиотечная подпрограмма. •

Диспетчер СМД определяет - ость ли на дакнуэ ПП очередь. Если очереди нет, то он прекращает работу давяоя ПП. В случае .изливая очереди, диспетчер по таблице текущего состояния СМД определяет точку передачи управления в ГО1 для обработки полученной информации, восстанавливает сохраненные данные, если они есть, к п-зрэдаэт управление в определенную ранее точку. ПП мозет передать'при помосда одного из МБИ обработку.запроса другой ПП. Это осуществляется путем обращения к данному модулю с заданиен директивы. Директивы имеют такой ке вид, как поступавшие с терминалов, и тога могут быть как короткими ', так и длинными. Вообще, лабоа общение ПП с СКД производится через обращение к ИБИ, что позеоляэт контролировать процесс прохождения запроса, сам процесс обработки запроса от ввода директивы и до выдачи результирующей информации, как уга било определено выше, называется транзакцией.

ПП внутри одной транзакции помет запрашивать дополнительнуэ информацию. Обращение к соответствующему МБИ является точхоГ; прерывания. Во время этого прерывания управление может быть передано о другув точку ПП (на границу блока) для обработки другой транзакции, если на эту ПП есть очередь. Еивод на терккяаяы осуществляется посредством передачи информация программе СЛД, занимающейся выводом. ,

Таким образом, монитор ввода организует очереди из запросов, поступающих с терминалов, а диспетчер СХД обрабатывает эта очереди", а также очереди от других ПП и передает управление в соответствующие точки ПП, к которой он присоединен.

Вся информация, передаваемая терминалами и ПП, офор.ччячтея СНД в виде динамических областей. На один элемент очереди создается од:;.} динамическая обг5сть. С целью уменьоения возможности заполнения

оперативной памяти динамические области создайся длиной кратной 64 словам, что позволяет заполнять образующиеся пустые места вновь создаваемыми динамическими областями.

Административные программы htsdir и мтассо

Программа mtsdir используется для создания файла описания системы мультитернинального доступа, а также для просмотра и внесения изменений в этот файл.

Программа мтассо используется для создания файла описания пользователей систему нультктермингяыюго доступа, а такло для просмотра и внесения изменений в этот файл.

Генератор Системы Мультитэрманального Доступа

Для создания среда СНД используется программа mtint. Поело ез запуска сначала производится проаерка целостности фа&поз описания (по контрольным сумкам).. При несовпадении контрольных сумм mtint заканчивает свою работу.

После этого mtint начинает в соответствий с описанном СМД, хранящимся в файле <mtssys.des> - создавать таблицу описания htable, занося туда последовательно данные о включаемых в СМД терминалах к данные о существующих директивах (директивы в htable располагается по алфавиту), о программах, исполнявших эти директивы, г такге данные об общих файлах. Далее производится установка служебной программы вывода мтюит и всех прикладках программ, которие исполняют заявленные в СМД директивы.

Последним действием программы является выдача команд mcr "BYE", а затем "hello mts/mts" (пользователь с таким кменем и паролем должен быть зарегистрирован в ОС) на всех вадействуемых терминалах, и установка для них в качестве программы связи с оператором - монитора системы

мультитернинального доступа (MTI...). на терминалы выводится сообщение "Вы работаете с СМД", означающее включение последних в среду системы мультитериинального доступа, посла чего пользователю предоставляется возможность вводить директивы, заявленные в СМД.

Для "разгрузки" СМД нужно запустить командный файл <mtirem.cmd>, коториа Формируется в ходе выполнения программы mtint.

Выполнение всех комапд названного файла предусматривает прекращение работы (ado ...) и удаление из памяти (rem ...) всех установленных для СМД программ, а такие МП; на терминала, включенные в СМД, ■ выдается сообщение "до нозых встреч с СНД" и в качества программы связи с оператором подсоединяется mcr. В результате пользователь оказывается в операционной среде rsx-hm (ОС РВ).

Сервисные директивы СМД

Яри генерации, осуществляемой mtsdir, в файл описания системы заносятся только следующие сервисные директивы: "СПРАВКа", "ПОКА", "ПРЙВЕТ" и "system".

Директива "СПРАВКа" (исполняющая программа - MTRQ8T) предназначена для выдачи пользователю информации о дрстусичх е.чу директивах. Код защити рассматриваемой директивы устанавливается • равным нули (оооооо), поэтому она мосет вызываться незарегистрировавакмся в СМД пользователем. Исполнявшая программа mtrqst производит просмотр Фа$ла списания смд <mtssys.des> э поисках описаний существующих директив. Прм нахождении очередного описания программа производит сравнения кода защиты текущей дпректизи (кзд) с кодом доступа пользователя (КДП); если последний меньше кода защиты, то пользователь не информируется о существовании и параяатрах нзйденной директивы. В противном случае на терминал пользователя выводится информация о некоторых параметрах директивы а комментарии.

Пользователь имеет возможность досрочно превратить просмотр Файла, ответив "нет" на вопрос "продолжать ". По умолчание производится полный просмотр файла, однако предусмотрено, что пользователь может специфицировать конкретное имя . директивы; если такая существует и еэ КЗД меньше или равен ЙДП, то пользователи выдается информация об этой директиве. Также, если какая-либо другая директива начинается с той' же группы символов, которая бил« специфицирована пользователем, то - пр:5 удовлетворении необхс,т*мчх условий ( КЗД <= КДП ) - ему выдается информация и об этой дар (т.о. специфицирсваз "п", вы будете проинформированы о дярегг "ПРИВЕТ" и "ПОК»").

Директива "ПРИВЕТ" (исполняющая программа - )> ■ по) предназначена регистрации пользевлтелаг а сзстсма

мультятермкналы»эго доступа. После запуска ;-лвскти8а мтнею

запрашивает пользователя на ввод своего имени и пароля. Имя пользователя моает включать до го символов, а пароль - до е. Затем mthelo просматривает файл описания пользователей сид <mtacct.des> в поисках пользователя с таким именем. Если таковой не найден, то выдается сообщение об ошибке. В противном случае, mthelo сравнавает введенный пароль с ' тем, который установлен для найденного ев пользователя. При несрвпадении паролей выдается упомянутое сообщение об ошибке ("неправильно указано имя или пароль"). При ошибке код доступа, установленный для терминала пользователя в ИТable, не . изменяется, и mthelo заканчивает свое работу. Когда se все указанные параметры пользователя совпадает , с аналогичный:!, хранящимися в файле <mtacct.des>, то терминалу, с которого вызывалась рассматриваемая директива, присваивается код доступа, равный тому кдп, который указан для данного пользователя в файле описания (это Означает, что этот код заносится в паспорт терминала в таблкце mtable). Затем mthelo проводит дополнительные анализ соответсвувщей строки- Файла описания, чтобы узнать имя директивы, запускаемой по умолчание для данного пользователя. Если таковая отсутствует, то mthelo сразу заканчивает свою работу; в противном ■ случае, mthelo запускает найденную директиву от имени пользователя н только йотом завершает работу..

Директива "ПОКА" (исполнявщая программа - mtloff) предназначена для сброса кода доступа, установленного для терминала, с которого производится вызов этой директивы. В розультате вызова производится обнуление поля кода доступа в паспорте терминала в таблице mtable. После этого mtloff выдает сообщение "до свидания" и завершает свов работу

С терминала, откуда вызывалась "ПОКА" (до следувщего вызова "ПРИВЕТ") можно производить вызовы только тех директив, КЗД которых равен нулю.

директива "system" (исполняющая программа - mtsmcr) предназначена для выхода пользователя в операционнув среду rsx~uh (или ОС PB). Терминал, с которого производится вызов рассматриваемой дире,:гавы, удаляемся из среды СИД к к нему в качестве программа связи с оператором подсоединяется hcr.

При гекераци;:, осуществляемой mtsdir, для директивы "system" устанавливается высший код закаты (177777), т.е. сначала вызоз директивы моает осуществлять только сдешвисхр&гар система (в

частности, "MT_systЕМ_МANAGEMENT").

Модули библиотеки интерфейса пользователя с СНД.

во всех подпрограммах СНД первым (необязательным) параметром п обращении является массив erh, описивагкнЛ как integers err{2). Указание этого параметра аелательно, поскольку при возникновения сшбки в этом массиве находится ее идентификация: при erh(i)=i ояибка является системной, тогда в err(2)-4dsw; при err(1)=2 -ошибка в параметрах обращения, а в err(2) находится номер неправильно указанного параметра. Эта идентификация являатсй обаэй для всех директив СНД. кроме того, в <mthail>, <mtpas3> и <mthait> err(1) несет информации и о других ошибках.

В настоящей версии возиоако обращение в модулям библиотека интерфейса из программ на языках: 90РТРАЯ, ПАСКАЛЬ и МАКРОАССЕМБЛЕР.

При обращении на языке ПАСКАЛЬ необходимо оформлять обра^аиио х модулям как к процедурам. Посла заголовка процедура необходимо указывать ее тип - nonpascal Все формалыше параметры долгим бить заявлены как var и их типы должны бить объявлены в операторе type, если они имевт слоеный тип (массивы и т.п.) или долины быть простого типа (integer, real). В начале программы необходимо обратиться s процедуре detach. Это требуется из-за того, что выгод на терминал з СНД осуществляется программой вывода - мтюит, а компилятор с языка ПАСКАЛЬ создает программы, у которых в.чачала производятся прикрепление терминала к вызываемой программе.

Подпрограммы mtoeg, htexit и mtstcp

Одним из первых исполняемых операторов в программе долге« являться оператор обращения к подпрограмме <mtbEG>. 9 том слу*-пз, когда пользователем или другой программой запускается программ?, активная в данный момент (т.е. ?:е участвузцзя в обработке, квкого-либо запроса), то точка, обращения и данному оператору воспринимаете! ."с.чнтором СНД как точка ехсг.з в даннуя зрог-?г«ну тече:'из jeero того гсромегутка времени, пока с программой жбот'.'чт хотя бы один пользователь. Зто означает, что ее-"" ':Е'СГр:;.;.:2 участвует в обработке хотя бы одного запрогп г: noev >>:<«/> другой twpoc. KOTopwf должен обрабатываться это;", программой, то

управление, в момзнт, когда подоЗДгт очзрадь на обработку зтсго запроса, будет передано на этот оператор, а не качало программ. Когда ге программа вновь переходит в неактивное состояние, то ость на кео нет очереди запросов к она заканчивала работу обращением к ■подпрограмме <НТЕХ1Т>, то точкой входа стаковитса непосредственно само нзчало программы- (такое изменение кестсяслоаиия точки входа нуано для решения вопросов организации работы с файла: ;в и некоторых других). '

Кавдая программа снд должна, наряду с вызовом <мтбео, содераать вызов п/п <мтех1т> или п/п <мт$тор>, по которой« ¡.Фсшэзодагсп окончание обработки директива.

Пр;: <мтетср> точкой входа в программу остается оператор вызова <мтаса>. при обращении на к <мтех1т> точгой входа становится иояосредствскпо первка исполняемый о:;зратор в программе. Кроыа того, основной отднчкем нтех1т и мтзтор яслязтся следувчее: при обращена; к мтехп' после окончания работы всех пользсаатслсй с этой программой, последняя заканчивает своа работу; при обращении се к нтэто' программа на заканчивает работу, а переходит в состояние " оыгдакия.

' Подпрограммы МТНА1Х, МТРА83 и МТИА1Т.

Данные подпрограммы предназначены для инициации из программы выполнения каких-то других операций (директив) с ожиданием окончания выполнения операции или без него.

Для инициации длинной директивы используется вызов подпрограммы МТНАИ..

' Для инициации короткой директивы используется вызов подпрограмм <мтра£8> и <МТИА1Т>. При вызове первой вызывающая программа продолжает свою работу, не дожидаясь выполнения затребованной операции, а во втором - программа прерывается и ожидает окончания отработки запрошенной директивы. -

Вызов подпрограммы <мтразз> совершенно - аналогичен вызову <МТНА1.1> :

Для инициация короткой, директивы с ожиданием ее выполнен-«

используется вызов подпрограммы <МТЯА1Т>.

о вызове <МТИА1Т> присутствует указание массива сохраняемух . параметров, что обозначает достивение границы блока реентерабельности.

Подпрограмма информационного обмена с собеседником

Для двустороннего информационного обмена с текучим собеседником (т.е. терминалом или программой) применяется внзоз директивы

Вызов подпрограммы <мтвуе> применяется для окончаивя разговора с текущим собеседником. По этой директиве ему посылается пссладноэ сообщение; программа, обратившаяся к <мтвуе> продолгает ,сзоэ работу. Кроме этого, обращение к мтвуе (без параметров) обягательно посла обращения к мтнаи. и является как бн згкрьтааощей скобкой. пли разговора, начатого мтнаи..

Подпрограммы терминального ввода/вывода <итхо> я <нт«ят>

вызов подрогракмы <мтю> позволяет осуществлять термлнальнь'й ввод данных. Перед вводом мокет быть произведена выдача кгкего-лкбо информационного сообщения на экран терминала, однако, наличие гатен ввода обязательно!

Обращение к <мтю> является границей блока реентерабвлькостн.

Вызов подпрограммы <мтият> применяется для вцда,:.;1 информационного сообщения на экран терминала.

Подпрограмма мтвяк.

При вызове подпрограммы мтвяк осуществляется проверка оч-зргл-па внэвавяу» программу..Если, очередь'пустая, то обработка текучего запроса продолжается. Ксли ае счередь «н'е-.' пустая.»- то обработка текущего запрос? прерываотск. к он ставится' в" конец1 .«оЧеред'5, . г начинается" обработка пгрзого з очереди .запроса. \

Обращение к итвпк яэляется границей блока реввт'грабвлъ::~с-«:

Основные результаты к выводы

6 работе разработаны и использованы принципы, методы и средства блочно-реентерантного программирования для малых ЭВМ, алгоритмы .организации вычислительного процесса, а таксе новые системные средства, ориентированные на существенное повышение эффективности использования малых ЭВМ с ограниченными ресурсами при их работе в режиме мультитерминального доступа, в частности:

1. Разработаны принципы организации мультитерминального доступа на малых ЭВМ с ограниченными ресурсами, обеспечивающие повышение пропускной способности ЭВМ и ускорение разработки прикладных диалоговых систем реального времени.

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

3. Для наиболее распространенных малых ЭВМ разработаны комплексы алгоритмов и программ, реализующих предлоаенные принципы для организации мультитеркианльного доступа. Практическим путем определено, что в результате применения СМД эффективность систем, базирующихся на этом комплексе, повышается в несколько раз за счет уменьшения динамических обменов с внешними запоминающими устройствами.

4. Проведена проверка эффективности разработанных инструментальных комплексов путем внедрения их на многих предприятиях. Годовой экономический эффект от внедрения одного комплекса, составляющий 60 тысяч рублей, показывает перспективность разработанного программного обеспечения, а, следовательно, и разработанных научных основ организации мультитерминального доступа на малых ЭВМ.

5. СМД для ЭВМ типа М-еооо поставлялась как стандартное программное средство производителем ЭВМ; крона того, данная СМД была предана в болео чем 60 организаций по их запросам.

Публикации■ По теме работы опубликованы слсдувяие работы:

1. Хиводеров В.Н., Батнер A.A., Гуховский Д.Э., Кривое В.И., Логунов М.Г., Сапрыгин Д.И., Юргхлевич Л.А. ЭВМ в структуре автоматизированной биохимической лаборатории.// Новое в методах исследования, диагностике, лечении и профилактике вашнейпих заболеваний. Сб. трудов I МОЛМН, М., 1975, с.138-143.

2. Batner A.A., Qukowaky D.E., Krivov V.l., Yurg11«v1tcti I.A. Mini-computer software for control eyeteme.// Preprlnte 1-et IFAC/IFIP Symposium on Software for Computer Control, T979, pp.73-78.

3. Батнер A.A., Гуковский Д.Э., Кривое В.И., Юргклевич Л.А. Организация прикладного математического обеспечения АСУ на базе МЙНИ-ЭВН, Н., ВИМН, 1979, 1,5 П.Л. ,

4

4. Кривое В.И. Инструментальные средства для построения мультитерманэлышх систем на малых ЭВМ.// Всесоюзная конференция "Автоматизация проектирования систем планирования я управления". Тезисы докладов, Звенигород, 1987 - Москва, 19871 с.237-238.

5. Система мультитерминального доступа для ДОСРВ. Кргткое описание и руководство по пользовании З.Ю0.014 Т. Северодонецк, НПО "Импульс", 1979.

б. Система мультитермикальной отладки для ДОСРВ. Краткое описание и руководство по пользовании 3.100.015 Т, Северодонецк, НПО "Импульс", 1979.

Личный вклад. Все результаты, составлявшие основное содержание диссертационной работы, полутени автором самостоятельно. В работах, опубликованных в соавторстве, личный вклад диссертанта .состоит в следующем: в работе [1] - автором предлояекы алгоритмы л осуществлена программная реализация мультитерминального доступа для автоматизированной системы биохимических исследований; в работе [2] - принципы и методы организации . мультитерминального доступа для малых ЭВН; в оаботе [з] - структура и алгоритмы системы мультитерминального доступа для ЭЕМ типа Н-6000; в работе [5] -структура и Функции программного обеспечения СНД для ЭВМ типа Н-бооо; в работе [в] - структура и алгоритмы для Сястекы Мультитерминальн; й Отладки, построенной с помоцьв СИД я часть

программного обеспечения, касшэдсгоси работы со стсодиртн&ш программами (компиляторы, система управления байлсия, загрузчик) и прикладными программами. Програцмкоо обеспеченно СМД для ЭВМ типа Н-еооо разработано автором совместно с соавторами работы [з 3; лично автором написаны программы обработки ввода с терминалов и ряд подпрограмм библиотеки•интерфейса, а программное обаспеченне СМД для ЭВМ типа СМ-4 было разфаботно практически полкостыа авторов.