Передовица » Макулатура » ИиО » Функциональные возможности ОС локальной сети для ПЭВМ Агат

Функциональные возможности ОС локальной сети для ПЭВМ Агат (N5/1991)

Г.Кривошеев, С.Козаренко. Группа сайта просит вас связаться с нами! (ЗАЧЕМ ЭТО?)

НИИВК, Москва

Разработанная в 1990 г. в Научно-исследовательском институте вычислительных комплексов Москвы операционная система локальной сети (ОС ЛС) для ПЭВМ «Агат» в определенном смысле завершает разработку системного программного обеспечения для многопользовательских учебно-тренажерных комплексов и открывает новые возможности использования ПЭВМ «Агат» в качестве терминальных станций и простых локальных сетей делопроизводства. В 1990 г. ОС ЛС получила поощрительную премию в отраслевом конкурсе программных средств Министерства радиопромышленности и серебряную медаль ВДНХ СССР.

Функционально ОС ЛС позволяет:

  • объединить работу по моноканалу до 128 ПЭВМ «Агат-7» и «Агат-9» со скоростью передачи информации до 62,5 Кбод на расстояние не менее 3 км;
  • обеспечить одновременное независимое функционирование в сети систем программирования: «Бейсик», «Ассемблер», «Школьница» и пакетов прикладных программ: «Система Численного Моделирования», «Система Подготовки Текстов».

Необходимыми техническими средствами для функционирования ОС ЛС являются контроллеры локальной сети, имеющие уникальные номера и установленные в каждую ПЭВМ, и хотя бы один дисковод типа ЕС 5023 с ПЭВМ «Агат», работающие под управлением ОС ЛС, которые условно делятся на главные и терминальные. Главная - это ПЭВМ, на которой загружен сетевой программный комплекс (СПК).

В этом случае ПЭВМ может выполнять начальную загрузку одной из систем программирования или пакетов прикладных программ на другие (терминальные) ПЭВМ и обеспечить доступ к своим дисковым запоминающим устройствам (ДЗУ) загруженным ею ПЭВМ. Главная ПЭВМ в каждый момент времени находится в автономном режиме или в режиме «работа по сети». При работе в автономном режиме главная ПЭВМ поддерживает функционирование СП «Ассемблера» и «Отладочный комплекс» СП «Школьница». В режиме «работа по сети» (см. рис. 1) управление находится у ОС ЛС.

ОС ЛС главной ПЭВМ постоянно «слушает сеть» и при появлении запросов выполняет операции по передаче или приему файлов с терминальными ПЭВМ.

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

ОС ЛС осуществляет связь между ПЭВМ сети на двух уровнях. Первый - уровень файловой системы. Второй - уровень пользовательских интерфейсов.

На файловом уровне ДЗУ главной ПЭВМ рассматривается просто как дополнительный дисковод терминальной ПЭВМ. Файловый уровень позволяет на терминальной ПЭВМ выполнить любую операцию дисковой операционной системы (ДОС) соответствующей системы программирования с ДЗУ главной ПЭВМ (например, CATALOG, LOAD, SAVE, OPEN и т. д., для СП Бейсик; ОТКРЫТЬ, ПРОЧИТАТЬ, КАТАЛОГ и т. д. для СП «Школьница» и прочих прикладных пакетов).

На этом уровне для работы с ОС ЛС в системы программирования и пакеты прикладных программ не добавлено ни одной дополнительной операции. Переход от работы с собственными ДЗУ на работу с удаленным ДЗУ главной ПЭВМ осуществляется стандартным переходом на новое ДЗУ, предусмотренным в системах.

Например, в СП Бейсик, для того чтобы просмотреть каталог диска, установленного в ДЗУ главной ПЭВМ, достаточно выполнить команду CATALOG, SN, где N - номер разъема, в который установлен контроллер сети. Фактически главная ПЭВМ, с которой установлена связь, рассматривается терминальной как дополнительное ДЗУ.

Файловый уровень ОС ЛС «Агат» обеспечивает выполнение следующих основных функций:

  • начальную групповую и индивидуальную загрузку объединенных сетью ПЭВМ одной или различными системами программирования или пакетами прикладных программ;
  • обеспечение доступа терминальных ПЭВМ к файлам ДЗУ главной ПЭВМ;
  • выполнение операций просмотра каталогов, чтения, записи и выполнения файлов и т. д.

ОС ЛС «не видна» из ДОС систем программирования или пакетов прикладных программ. Достигается это за счет того, что все ДОС для работы с ДЗУ используют программу Чтения/Записи Сектора (RWTS). ОС ЛС после загрузки в память соответствующей системы программирования или пакета прикладных программ подменяет вход в эту программу на собственный фильтр. Функциями этого фильтра является распознавание того, к какому ДЗУ пришло обращение. Если ДОС обращается к собственным ДЗУ ПЭВМ, управление передается RWTS, если же в параметрах обращения к RWTS указан разъем, в котором установлен контроллер сети, то формируется и передается по сети запрос к ОС ЛС главной ПЭВМ. На ней и выполняется требуемая операция чтения или записи из ДЗУ. В случае выполнения записи сектора сам сектор принимается по сети с терминальной ПЭВМ и записывается на ДЗУ главной; в случае чтения сектор читается из ДЗУ и передается на терминальную. При этом для ДОС создается полная «иллюзия» того, что он работает с собственной программой RWTS. На терминальных ПЭВМ все программы файлового уровня находятся в постоянной памяти (ПЗУ) контроллера сети и фактически не используют памяти ПЭВМ. Единственными ячейками оперативной памяти, которые используются для работы ОС ЛС на терминальной ЭВМ, являются ячейка, в которой хранится номер главной ПЭВМ, и ячейка, в которой хранится номер разъема контроллера сети.

ПЗУ контроллера сети содержит:

  • программу автоматической начальной загрузки;
  • программы обработки и установки прерываний по локальной сети;
  • программу приема и передачи сектора данных по локальной сети;
  • служебные программы управления и контроля за состоянием локальной сети.

Как известно, ПЭВМ «Агат» имеет несколько разъемов, в которые могут устанавливаться контроллеры различных устройств. Такие устройства, как ДЗУ и контроллер сети, относятся к типу устройств, с которых может выполняться начальная загрузка системы. Сразу после включения питания ПЭВМ, системный монитор анализирует конфигурацию ПЭВМ и, найдя контроллер устройства, с которого может быть выполнена загрузка, передает ему управление и пытается выполнить начальную загрузку. Если в конфигурации присутствуют несколько устройств такого типа, то делается попытка выполнить загрузку с устройства, установленного в разъеме с наименьшим номером. Если в ПЭВМ одновременно присутствует и контроллер сети, и контроллер ДЗУ, то представляется целесообразным устанавливать сетевой контроллер в разъем с номером большим, чем контроллер ДЗУ. В этом случае у ПЭВМ сохраняется возможность как обычной загрузки с ГМД, так и загрузки по сети. Для загрузки по сети в этом случае после включения питания необходимо выполнить сброс, а затем команду CNOOG, где N - номер разъема контроллера сети. После выполнения указанных действий управление получит программа автоматической начальной загрузки и на экране появится сообщение

Сеть Агат N...

Жду загрузку!

Сама загрузка начнет выполняться после соответствующей директивы «Выполнить загрузку» с главной ПЭВМ. Если в ПЭВМ установлен только контроллер сети, или этот контроллер установлен в разъем с номером меньшим, чем контроллер ДЗУ, то после включения питания ПЭВМ выйдет в состояние ожидания загрузки по сети автоматически.

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

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

На загруженных ПЭВМ обмен ведется с многократным повторением запросов в режиме конкуренции за каждый сектор. В этом случае терминальная ПЭВМ «слушает» линию, и если она оказывается занятой, то ПЭВМ выходит в состояние ожидания на время, кратное собственному номеру. Затем прослушивание возобновляется, если линия вновь занята, следует новая пауза с новым интервалом ожидания. Этот процесс повторяется до 50 раз. Если тем не менее линия оказывается занятой, то следует уже запрос пользователю, который может либо продолжить попытки, либо завершить их ошибкой обмена. Такой алгоритм позволяет избежать клинчей в сети в случае повреждения линии или выхода главной ПЭВМ из режима «работы по сети». Как только терминальная ПЭВМ обнаруживает, что линия свободна, она передает запрос главной, а та в свою очередь принимает запрос, выдает в сеть подтверждение приема запроса и начинает выполнять запрошенную операцию.

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

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

Для реализации дополнительных требований пользователь может воспользоваться следующим уровнем - уровнем пользовательских интерфейсов. Для того чтобы воспользоваться этим уровнем, пользователь загружает в оперативную память ПЭВМ специальные сетевые драйверы. Эти драйверы могут быть загружены как автоматически - со стартовыми программами систем программирования (например, с файлом HELLO для СП Бейсик или ЗАПУСК в СП «Школьница») или в процессе работы системы программирования. Так, например, типовой драйвер для СП Бейсик загружается файлом HELLO в ходе сетевой загрузки и помещается в не используемую СП Бейсик память начиная с адреса 800 и инициализируется.

Драйвер включает 4 подпрограммы:

  • установить обработку прерывания;
  • принять команду;
  • принять сообщение;
  • передать сообщение.

Программа «установить обработку прерываний» устанавливает контроллер сети в ждущий режим, и при появлении адресованного ему сообщения управление передается программе «принять сообщение» или «принять команду». Если сообщение оказывается ошибочным, оно игнорируется. В противном случае, если принятая по сети информация оказалась сообщением, оно выдается на экран и выполнение прерванной программы продолжается, если же информация оказалась командой (например, NEW, STOP, LIST, CATALOG, LOAD и т. д.), то она отрабатывается СП Бейсик.

Для того чтобы передать сообщение по сети, необходимо записать текст этого сообщения по адресу 200 и затем передать управление программе «передать сообщения».

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

Драйвер написан на языке ассемблера СП Бейсик, и поэтому пользователь ею легко может модернизировать для собственных нужд.

На главной ПЭВМ режим передачи команд и сообщений поддерживается соответствующими пунктами меню: «передать файл», «выполнить файл», «передать сообщение», «выполнить команду». Выполнение пунктов «передать сообщение» и «выполнить команду» позволяет набрать с клавиатуры главной ПЭВМ и передать одной или нескольким терминальным ПЭВМ любое сообщение или команду. Например, пункт «выполнить команду» позволяет набрать с главной машины и выполнить на терминальной произвольную программу. Пункты меню «передать и выполнить файл» просто передают на терминальные ПЭВМ, в зависимости от типа файлов команды LOAD, BLOAD, RUN, BRUN и EXEC с именем требуемого файла. Собственно выполнение этих команд осуществляется ОС ЛС файлового уровня. Перечисленные выше пункты меню не выполняются на терминальной ПЭВМ, на которой не инициализирован сетевой драйвер.

Суммируя сказанное, можно отметить следующее: использование ОС ЛС для ПЭВМ «Агат» позволяет в настоящий момент создавать  сложные и гибкие вычислительные комплексы, сочетающие разнообразие и простоту применения широкого круга стандартных программных средств ПЭВМ «Агат», широкие возможности для разработки собственного пользовательского программного обеспечения.

Телефоны для справок: 330-11-38, 272-48-83, 489-00-91.

Выражаясь современным языком, сеть представляет собой выделенный сервер с однозадачной ОС, который может экспортировать, в зависимости от режима, как образы дисков так и файловую систему. Основным считается режим экспорта файловой системы сервера (на уровне секторов диска). Из описания, правда, не ясно как разрешается конфликт совместного доступа (например, если две машины захотят записать один и тот же сектор на диск сервера). Второй режим - это режим передачи фрагментов образов. Он используется при начальной загрузке клиентских машин. Скорость - ~60 Кбит, кабель до 3 км. Хотя явно это не сказано, но поддерживается многоадресный режим. Это подобие широковещательного режима, но сетевой пакет получают не все машины, а только те, чьи адреса указаны в заголовке пакета. Адрес в сети - 8 бит (причём слово "адрес" - ещё в кавычках), топология - звезда. Поддерживается boot-rom, однако он работает только в широковещательном режиме, поэтому при загрузке ОС ничего, кроме информации для загрузки, в сети быть не должно. Драйвера ОС более умные и по логике работы напоминают Ethernet. Вообще, реализовать на Агате сеть - штука довольно сложная. Проблема в том, что многие крупные программные комплексы работали с собственными, встроенными операционными системами и добавление любого нового устройства требовало модификации всех этих операционных систем и системочек.

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *