Автоматизация

Вид материалаДокументы

Содержание


Системное программное обеспечение см эвм
Средства работы с системным таймером.
Программа связи с оператором
Системные обслуживающие программы
Драйверы внешних устройств
Система управления файлами
Процессор косвенных командных файлов
Косвенный командный файл
Enable substitution
Контрольные вопросы к главе 4
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   ...   25
ГЛАВА 6

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СМ ЭВМ


§ 6.1. ОБЩИЕ ХАРАКТЕРИСТИКИ ОПЕРАЦИОННЫХ СИСТЕМ СМ ЭВМ


Как уже отмечалось, возможность установки на ЭВМ той или иной ОС определяется, в частности, аппаратной конфигурацией ВК. Относительно простые ВК, не имеющие внешней памяти на магнитных дисках, работают под управлением перфоленточных ОС. В этом случае все системные программы, входящие в состав ОС, хранятся на отдельных перфолентах и загружаются в оперативную память посредством перфосчитывателя по мере необходимости. Ог­раниченный объем оперативной памяти заставляет выводить на перфоленту и промежуточные результаты работы (например, вне­сение любых, даже самых незначительных изменений в исходный текст программы в процессе ее отладки требует каждый раз под­готовки новой перфоленты). Это сильно затрудняет и замедляет процесс отладки программ. Перфоленточные ОС имеют в качестве входного языка АССЕМБЛЕР и иногда БЕЙСИК. Отсутствие язы­ка ФОРТРАН ограничивает возможности разработки вычислитель­ных программ. Таким образом, перфоленточные ОС можно исполь­зовать лишь для отладки и выполнения сравнительно простых программ сбора и накопления данных или управления эксперимен­тальными установками. Качественно новые возможности возникают при включении в состав ВК внешней памяти на магнитных дисках и установке одной; из дисковых ОС. При этом резко повышается производи­тельность труда программистов и эффективность работы самого ВК. Все элементы ОС, так же как и программы пользователей, хранятся на магнитных дисках под определенными именами и легко могут быть загружены в оперативную память в требуемом сочета­нии. Процесс редактирования и отладки программ существенно ус­коряется, а наличие ФОРТРАНа — языка высокого уровня — по­зволяет составлять достаточно сложные программы математической обработки экспериментальных данных. Возможность создавать на дисках библиотеки отлаженных и готовых к выполнению приклад­ных программ, а также файлов экспериментальных или расчетных данных позволяет использовать ВК в составе сложных измеритель­ных систем, при этом измерительно-вычислительный процесс может быть в значительной степени автоматизирован. Существенное до­стоинство дисковых ОС состоит в возможности организации мно­гопользовательского режима подготовки и отладки программ, ко­торый способствует повышению эффективности работы самого ВК и сокращает суммарные затраты и сроки разработки автоматизиро­ванных систем.

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

однозадачные ОС. В такой ОС запущенная пользователем зада­ча выполняется процессором непрерывно до ее завершения. Только после завершения данной задачи можно запустить следующую;

фоново-оперативные ОС — время процессора разделяется двумя задачами: более приоритетной оперативной и менее приоритетной. фоновой. Обе задачи находятся в оперативной памяти и в любой момент готовы к выполнению. Обычно оперативная задача обслу­живает процесс реального времени, например обрабатывает пре­рывания от электронных модулей физической установки, а в фоновом разделе выполняется какая-либо «несрочная» задача: гра­фическое отображение результатов измерений, математическая об­работка поступающей информации либо даже задача, прямо не связанная с измерениями. Сигнал прерывания, который может прийти в любой момент времени, прерывает фоновую задачу и активи­зирует оперативную. После окончания обработки прерывания про­цессор возвращается к выполнению фоновой задачи;

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

Использование ОС, существенно повышая эффективность ВК и удобство .работы с ним, приводит к некоторым «издержкам», особенно при организации задач реального времени.

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

При управлении ВК операционной системой, особенно многоза­дачной, обслуживание процесса реального времени замедляется: требуемая программа может находиться не в памяти, а на диске и загрузка ее в память потребует некоторого времени; исполь­зование для управления ВУ системных универсальных программ (драйверов) и других средств ОС, существенно упрощая програм­мирование, уменьшает скорость обмена информацией; обработка нескольких задач параллельно снижает скорость выполнения каж­дой из них и т. д.

Среди ОС СМ ЭВМ имеются системы, специально предназначен­ные для решения задач реального времени. Им присущи специ­фические черты, в известной мере компенсирующие отмеченные выше недостатки:

высокая скорость реакции ОС, т. е. малое время ответа на внешнее воздействие;

система приоритетов задач, позволяющая оперативно предос­тавлять задачам реального времени все необходимые для их вы­полнения ресурсы;

средства синхронизации задач, позволяющие определять поря­док выполнения задач в зависимости от выполнения тех или иных условий (например, окончания передачи данных);

средства обмена данными между задачами;

средства распределения оперативной памяти. Пользователь имеет возможность частично вывести из-под контроля ОС некоторые из своих задач и, держа их постоянно в оперативной памяти, ускорить процесс их выполнения.


Средства работы с системным таймером.

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

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

РАФОС относительно проста в освоении и эксплуатации. Она требует для своей работы минимальной аппаратной конфигурации ВК: процессора ЭВМ Электроника-60 или СМ-4 оперативной памяти объемом всего 8-16К слов, консольного терминала и нако­пителя на кассетном или гибком магнитном диске. Ядро операци­онной системы занимает в оперативной памяти до 4К слов, предоставляя оставшуюся память в распоряжение программ пользователя. Использование РАФОС целесообразно в тех случаях, когда основным назначением ВК является управление одним процессом реального времени в сочетании с эпизодическим решением вычисли­тельных задач.

Операционную систему реального времени ОС РВ целесообразно использовать на сравнительно мощных ВК СМ ЭВМ. В основу ОС РВ положена многопрограммная организация вычислительного процесса с развитой системой приоритетов, отвечающая требова­ниям реального времени. Такая организация вычислительного про­цесса позволяет совмещать выполнение задач реального времени с разработкой и отладкой программ на различных алгоритмических языках, выполнением задач обработки данных и т. .п. Система организует одновременную работу пользователей с многих терми­налов.

Помимо программного обеспечения, ориентированного на решение задач реального времени, в составе ОС имеется развитое программное обеспечение разнообразного прикладного назначения.


§ 6.2. СТРУКТУРА ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ.


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


Программа связи с оператором

Пользователь взаимодействует с ОС, вводя со своего терминала команды оператора. Все сообщения оператора поступают в про­грамму связи с оператором, которая, таким образом, является связующим звеном между оператором и ОС. Готовность программы связи с оператором отображается выводом на экран терминала специального сообщения (> или МСН>для ОС РВ и символа точки (.) для РАФОС). Программа связи с оператором анализи­рует введенные команды, проверяет их правильность и либо выпол­няет затребованные действия самостоятельно, либо запускает соответствующие системные программы. Функции программы связи с оператором весьма разнообразны. С ее помощью запускаются программы пользователя, вызываются системные обслуживающие программы, выводятся сообщения о состоянии ВК, перераспреде­ляются память и внешние устройства, загружаются требуемые системные компоненты и т. д.

Для иллюстрации диапазона возможностей программы связи с оператором рассмотрим некоторые примеры команд оператора в ОС РВ. В примерах для наглядности приведены полные наиме­нования команд. Практически достаточно использовать первые три буквы, например HEL вместо HELLO.

HELLO 300,15/РЕТ — команда регистрации в системе пользо­вателя с идентификационным кодом 300,15 и паролем PET.





Рис 6.1 Структура опереационной системы реального времени


MAC ABC, TI: = ABC — команда трансляции программы с именем ABC, написанной на АССЕМБЛЕРе, с выводом листинга трансляции на терминал пользователя (условное обозначение TL).

1KB ABC = ABC — команда компоновки программы ABC без вывода листинга компоновки.

RUN ABC 5M/RSI = 90S — команда запуска задачи ABC через 5 мин с последующим повторным запуском каждые 90 с.

REDIRECT ТТЗ: = LP: — команда переназначения ВУ. Все сообщения, предназначенные для АЦПУ (условное обозначение LP:), будут выводиться на терминал № 3.

TIME — команда выводит на терминал пользователя текущее время и дату.

TIME 11:25:00 15-MAY-86 —по этой команде, которая исполь­зуется каждый раз после загрузки ОС, устанавливается начальное значение системного таймера (в данном примере — 11 ч 25 мин 00 с 15 мая 1986 г.). После этого во всех листингах, выдаваемых систе­мой, будет указываться правильное текущее время.

BROADCAST ALL: ВАШЕ ВРЕМЯ ИСТЕКЛО — указанное в команде сообщение выводится на все терминалы, включенные в систему.

Некоторые из приведенных команд (например, MAC, RUN, TIME) имеются и в составе списка команд системы РАФОС, хотя правила их использования и возможности могут несколько разли­чаться (например, с помощью команды TIME задается и инди­цируется только время суток, в то время как для задания или индикации текущей даты предусмотрена специальная команда DATE). Другие команды, аналогичные по смыслу, имеют иное начертание. Например, для вызова компоновщика (редактора свя­зей) в РАФОС используется команда LINK. Наконец, в РАФОС есть команды оператора, отсутствующие в ОС РВ. К ним относится, в частности, команда HELP, с помощью которой можно вывести на терминал информацию о правилах вызова системных программ. Естественно, и в системе ОС РВ имеются команды оператора, отражающие специфику именно данной системы и отсутствующие в РАФОС.


Монитор

Монитор (управляющая программа) представляет собой ядро или резидентную часть ОС, всегда находящуюся в оперативной памяти и выполняющую основные действия по управлению вычис­лительным процессом. Именно в мониторе заложены ориентация ОС и ее возможности по организации вычислительного процесса.

Одной из функций монитора является распределение между задачами, в том числе системными, аппаратных ресурсов ВК. В системах реального времени реализация этой функции должна приводить, с одной стороны, к обеспечению приоритетности задач реального времени, а с другой — к обеспечению максимальной эффективности использования ресурсов комплекса. Например, в одном из мониторов, входящих в ОС РАФОС, так называемом однозадачном мониторе SJ, все ресурсы комплекса отдаются единственной задаче пользователя, что, безусловно, повышает ее возможности по управлению процессом реального времени. Вмес­те с тем при этом ресурсы комплекса используются, как правило, не оптимальным образом. Пример другого подхода — монитор ОС РВ, обеспечивающий высокую эффективность использования ресурсов ВК и одновременно приоритетность задач реального времени. Однако в этом случае возрастают издержки, связанные с работой самих управляющих программ (естественно, более сложных), что приводит к уменьшению скорости реакции мони­тора.

Другой важной функцией монитора является обеспечение ввода — вывода, для чего, помимо соответствующих компонент монитора, используются системные программы управления ВУ (драйверы), а также процессор управления файлами. Пользова­тель, составляя программу на языке высокого уровня (ФОРТРАН, БЭЙСИК), организует связь со стандартными ВУ с помощью соответствующих операторов языка, таких, как READ, WRITE, PRINT и др. При трансляции программы эти операторы преобра­зуются в программные запросы к монитору. В процессе выполнения программы монитор, получив запрос на ввод — вывод, определяет вид запрашиваемого ВУ и состав требуемых действий, запускает соответствующий драйвер и координирует его работу. При поступ­лении к одному и тому же ВУ нескольких запросов монитор строит очередь запросов к драйверу. При этом монитор контролирует очередность выполнения запросов на ввод — вывод в соответствии с приоритетами запрашивающих задач.

Для обеспечения обработки прерываний от ВУ под контролем монитора находится область памяти, в которой расположены векторы прерываний. Через векторы прерываний осуществляется передача управления драйверу соответствующего ВУ при возникно­вении прерывания.

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

Пользователь имеет две возможности общения с монитором и реализации его функций. Первая возможность — подача команд оператора через системный или пользовательский терминал. Как уже отмечалось выше, таким способом можно запустить или снять с выполнения задачу, вызвать требуемую системную программу (редактор текста, транслятор и пр.), изменить характеристики вычислительной системы и т. д. Другой возможностью обращения к монитору является использование системных директив (системных макрокоманд), программные запросы на выполнение которых пользователь включает всвою программу. Тем самым создается возможность динамического, по ходу выполнения программы, обращения к нужным функциям монитора. С помощью системных Директив выполняются такие стандартные действия, как запуск VH приостановка задач, передача данных из задачи в задачу, временная синхронизация вычислительного процесса, ввод — вывод данных и т. д. Надо отметить, что использование системных дирек­тив ввода — вывода является основным средством организации ввода — вывода из программ, написанных на АССЕМБЛЕРе, так как в этом языке, в отличие от ФОРТРАНа, отсутствуют операторы ввода — вывода.

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

Обращение к большинству системных директив допускается как из программ, написанных на АССЕМБЛЕРе, так и из фортрановских программ. Это позволяет в случае необходимости значительную часть программного обеспечения систем реального времени создавать на ФОРТРАНе, не прибегая к использованию относительно трудоемкого программирования на АССЕМБЛЕРе. Следует, однако, иметь в виду, что программы реального времени, написанные на ФОРТРАНе, требуют большего места в памяти, неоптимальны по времени выполнения и не отличаются нагляд­ностью.

Фортрановские подпрограммы, с помощью которых происходит .обращение к системным директивам, содержатся в системной объектной библиотеке. Состав этой библиотеки определяет возможности использования языка ФОРТРАН при создании программ : реального времени в данной ОС. Так, в системе РАФОС с помощью объектной библиотеки имеется доступ практически ко всем средствам реального времени: системе прерываний, средствам синхро­низации задач и передачи данных из задачи в задачу, драйверам СУ и системе ввода — вывода и т. д. Имеется даже возможность определения из фортрановской программы содержимого внутренних ,таблиц монитора (подпрограмма ISPY), обращения по абсолютным адресам оперативной памяти и регистров ВУ (подпрограммы IPEEK и IPOK.E), что, вообще говоря, является прерогативой АССЕМБЛЕРа и т. д. В системе ОС РВ фортрановские программы имеют меньшие возможности.

Системная объектная библиотека содержит также вспомога­тельные подпрограммы, предназначенные для работы с файлами (организация файлов, открытие и закрытие каналов связи с фай­лами, переименовывание файлов), проведения различных преобра­зований (из двоичного кода в код ASCII, из ASCII в RADIX-50) и т. д. Вызов этих подпрограмм из программ на АССЕМБЛЕРе осуществляется командой JSR PC, SUB, где SUB — имя подпро­граммы из объектной библиотеки. Предварительно необходимо сформировать блок параметров, требуемых для работы подпрограм­мы. Из программ, написанных на ФОРТРАНе, подпрограммы системной объектной библиотеки вызываются либо как подпрограм­мы-процедуры с помощью оператора CALL, либо как подпрограм­мы-функции. Подсоединение к основной программе подпрограмм из системной объектной библиотеки производится на этапе компоновки программы автоматически, если компоновщик (редак­тор связей) встретил их имена в объектном модуле.

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

Как видно из изложенного, монитор представляет собой достаточно сложный программный комплекс. Кроме того, в процес­се работы он может дополнительно привлекать различные систем­ные программы, выполняющие некоторые стандартные действия. Так, в системе ОС РВ монитор запускает по мере необходимости системную программу SHE, служащую для уплотнения задач, находящихся в данный момент в оперативной памяти. Такое разделение функций между монитором и системными программами позволяет расширить функции монитора при сохранении объема памяти, занимаемого монитором.


Системные обслуживающие программы

Все математическое обеспечение ВК, включая программы и данные пользователей, хранится на магнитных дисках в виде файлов. Любая работа на ВК, будь то разработка новых программ или выполнение уже отлаженных, требует использования файлов. В виде файлов хранятся исходные тексты программ, которые в процессе отладки приходится редактировать, объединять, удалять, создавать заново; файлами являются объектные и загрузочные модули, обычно объединяемые в библиотеки, откуда возникает необходимость работы с библиотеками — создание, удаление, рас­ширение, распечатка каталога и т. д.; файлы образуют также и массивы данных пользователя: результаты эксперимента, расчет­ные данные и пр.

Для работы с файлами в составе ОС имеется целая группа системных обслуживающих программ (утилит). Наименование этих программ и тонкости их работы могут различаться в разных ОС или даже в разных версиях одной и той же ОС, однако в целом их назначение и правила работы с ними совпадают во всех опера­ционных системах. Рассмотрим наиболее широко используемые из этих программ.

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

Для того чтобы фиксировать в тексте программы места, под­лежащие исправлению, редактор имеет специальное программное средство — указатель. С помощью соответствующих команд редактора имеется возможность перемещать указатель, устанав­ливая его в начале нужной строки текста либо перед определенным символом. Передаваемые после этого команды изменения касаются той части текста, перед которой стоит указатель. К сожалению, положение указателя не отображается на экране терминала. Если работающий за терминалом забыл, где находится указатель, его положение можно установить, подав команду распечатки строки. На экране терминала будет напечатана та строка, перед которой установлен указатель.

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

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

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

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

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


Драйверы внешних устройств

Драйвер представляет собой программу управления внешним устройством. В функции драйвера входят обслуживание прерыва­ний от ВУ, выполнение операций ввода — вывода на физическом уровне, наблюдение за ходом ввода — вывода и прекращение текущего ввода — вывода на данном устройстве, а также выпол­нение некоторых специальных функций, зависящих от типа устрой­ства. Рассмотрим место драйвера в системе ввода — вывода.

Пользователь из своей задачи взаимодействует с ВУ в рамках операционной системы при помощи системных директив ввода — вывода (директивы Q10£B ОС РВ, .READ и .WRITE в РАФОС). К этим же директивам обращаются и различные системные про­граммы при осуществлении ввода — вывода. В обращении к системной директиве пользователь указывает ряд параметров, характеризующих обмен: ВУ или файл на нем, функцию ВУ (ввод или вывод), буфер ввода — вывода, количество передаваемой информации и т. д. Монитор на стадии выполнения программы проверяет эти параметры и формирует так называемый пакет ввода — вывода (элемент очереди ввода — вывода). Монитор устанавливает пакет ввода — вывода в очередь пакетов к соответ­ствующему драйверу согласно приоритету задачи, выдавшей директиву ввода — вывода. Пакет ввода — вывода является зада­нием для драйвера на выполнение всего объема работ, связанных с передачей данных. Драйвер, обнаружив в своей входной очереди пакет ввода — вывода, инициирует ввод — вывод, разрешая прерывания от данного устройства, и передает управление монитору. Далее ввод — вывод осуществляется по прерываниям от ВУ, которые обрабатывает драйвер, выполняя операции ввода — вывода, отсчитывая количество переданных слов или байтов, смещая Указатель в буфере ввода — вывода и т. д. Пока ВУ готовится к передаче очередной порции информации, процессор выполняет текущую программу. Этот процесс продолжается до тех пор, пока не будет передан затребованный объем данных, после чего драйвер сообщает монитору об окончании ввода — вывода, а также передает информацию о том, насколько успешно прошла эта операция. После этого монитор выполняет некоторые действия, связанные с окончанием ввода — вывода: формирует блок состояния ввода — вывода, устанавливает флаг события и т. п. Роль драйвера, таким образом, заключается в реализации обмена на физическом уровне непосредственно с конкретным устройством. Драйверы внешних устройств могут быть резидентными или загружаемыми. Резидентный драйвер физически представляет собой часть монитора и постоянно находится в оперативной памяти. Загружаемый драйвер может загружаться в память по мере необхо­димости командой оператора LOAD или динамически во время выполнения программы (макрокомандой .FETCH в РАФОС).


Система управления файлами

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

Все эти возможности предоставляет пользователю система управления файлами, организуемая в виде библиотеки объектных модулей. Пользователь обращается к этим модулям либо непосред­ственно, либо при помощи соответствующих макрокоманд из системной макробиблиотеки. Модули системы управления файлами позволяют закреплять логические номера устройств за файлами на ВУ, создавать файлы, выполнять операции передачи данных между программой пользователя и файлами на ВУ. Подпрограммы системы управления файлами трансформируют запросы пользо­вателя на ввод — вывод в серию системных директив ввода — вывода. Таким образом, система управления файлами обеспечивает для пользователя более высокий (и более простой) уровень выпол­нения операции ввода — вывода, чем при непосредственном использовании системных директив. Для работы с файлами на магнитных дисках в составе ОС предусмотрен процессор управления файлами. Когда пользователь в своей программе обращается к файловой системе для создания, например, файла на диске и записи в него некоторой информации, он указывает устройство, имя файла, адрес буфера ввода — вывода и объем информации. Это обращение трансформируется файловой системой в ряд системных директив ввода — вывода. Однако в случае диска монитор не может обратиться непосредственно к драйверу устройства, как это было описано ранее. Дело в том, что драйвер диска для проведения операции ввода — вывода требует задания физического адреса на диске (в виде номера блока относительно начала диска), с которого должен начаться обмен информацией. Файловая же система указывает в сформиро­ванной ею директиве ввода —вывода только имя файла и отно­сительный (относительно начала файла) номер блока. Обработку этих сведений для получения информации, необходимой драйверу, производит специальная программа — процессор управления фай­лами, который включается в работу по запросу монитора. Для ОС РАФОС функции процессора управления файлами выполняет программа USR, для ОС РВ — программа F11ACP. Процессор управления файлами реализует все многообразие операций с каталогами файловой структуры: инициализацию файловой структуры, создание каталогов файлов, создание, открытие, закры­тие и удаление файлов и т. п. Он является, по сути дела, драйвером каталоговой структуры на данном физическом носителе. Драйвер же магнитного диска выполняет простейшие функции обмена информацией.


Процессор косвенных командных файлов

ОС СМ ЭВМ представляют пользователям специальные средст­ва, которые позволяют автоматизировать управление вычислитель­ным процессом, в частности ускорить отладку и выполнение задач. К этим средствам относятся косвенные командные файлы (ККФ).

Косвенный командный файл — это текстовый файл с произволь­ным именем, содержащий список команд, предназначенных для каких-либо системных программ: программы связи с оператором, транслятора, компоновщика и т. д. В составе программы связи с оператором имеется специальный процессор косвенных файлов, в функции которого входит считывание строк командного файла, а также выполнение директив процессора ККФ.

Косвенный командный файл программы связи с оператором может содержать как обычные команды оператора, так и директивы процессора ККФ, интерпретируемые и выполняемые самим процес­сором ККФ

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


MAC KAMA,TI: = КАМА

TKB КАМА=КАМА

RUN KAMA


Для инициирования командного файла нужно задать его имя с предшествующим знаком @:


@ имя


В качестве примера командного файла, содержащего команды оператора и директивы процессора ККФ, рассмотрим файл, пред­назначенный для вызова транслятора с языка АССЕМБЛЕР, с передачей транслятору строки служебной информации и последую­щей распечатки каталога пользователя с помощью утилиты PIP:


.ENABLE SUBSTITUTION

.ASKS PR имя программы?

.ASK LST листинг

.LFT LST .ASKS LI устройство?

.LЕТ LST .SETS LI1=","+LI

.IFF LST .SETS LI1=""

; идет трансляция

MAC "PR" "LI1" = "PR"

PIP/DI


Директива .ENABLE SUBSTITUTION позволяет заменить имя переменной PR значением, присваиваемым этой переменной в результате выполнения директивы .ASKS.

Директива .ASKS высвечивает на экране текст «имя програм­мы? [S]:» и ожидает ввода строки символов для определения переменной PR.

Директива .ASK высвечивает на экране текст «листинг? [Y/N]:» и ожидает от пользователя положительного (Y) или отрицательного (N) ответа; в зависимости от ответа она заносит в логическую переменную LST значение «истина» или «ложь».

Директивы .IFT и .IFF анализируют значение логической переменной LST и в зависимости от результата анализа разрешают или запрещают выполнение следующих за ними директив .ASKS И .SETS. Если пользователь запросил ввод листинга, директива .ASKS уточняет имя устройства, на котором следует получить листинг трансляции. Директива .SETS назначает значение символь­ной переменной LI1. Если, например, в ответ на запрос «устрой­ство? [S]:> пользователь вводит сообщение LP:, желая получить листинг на устройстве печати, то значение символьной переменной LI1 будет равно «,LP:». Если же пользователь еще раньше ответил отрицательно на запрос «листинг? [Y/N]:», то выполняется дирек­тива .SETS, стоящая в поле аргументов директивы .IFF. В резуль­тате, символьной переменной LI1 будет присвоено пустое значение.

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

Рассмотрим ход выполнения ККФ при разных ответах пользо­вателя. Сообщения, выводимые системой, набраны жирным шриф­том, чтобы отличить их от ответов пользователя и поясняющих комментариев.

Первый вариант:

имя программы? [S]:TASK1 ; PR="TASK1"

листинг? [YXN]:Y ; LST-«истина»

устройство? [S]:TI: ; LI=«T1:>, LII=

«,T1:»

; идет трансляция

MAC TASK1,TI:=TASK1

; после завершения трансляции и вывода лис­тинга:

PIP/DI

; распечатывается каталог пользователя

Второй вариант:

имя программы? |S]: TASK2 ; PR=«TASK2»

листинг? [Y/N]:N ; LST-"ложь"

; идет трансляция

MAC TASK2=TASK2

; после завершения трансляции (листинг не выводится).

PIP/DI

; распечатывается каталог пользователя


Директивы процессора ККФ позволяют определять значения логических, символьных и числовых переменных, анализировать эти значения, организовывать разветвления в ККФ по результатам анализа, организовывать подпрограммы, состоящие из командных строк, и выполнять целый ряд других операций с командными строками. Использование ККФ заметно упрощает процедуру отлад­ки программ, которые требуют сложной последовательности команд оператора. Это относится, например, к оверлейным про­граммам (программам с перекрытиями), к программным комплек­сам, составляемым из содержимого объектных и макробиблиотек и пр.


КОНТРОЛЬНЫЕ ВОПРОСЫ К ГЛАВЕ 4


Что такое многозадачная ОС:

а) ОС допускающая одновременную работу многих пользователей;

б) ОС допускающая параллельное выполнение многих программ;

в) ОС решающая широкий круг задач?

2. функции программы связи с оператором:

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

б) сообщений о сбоях в системе;

в) помощь пользователю в составлении исходного текста программы?

3. Какое средство служит для динамической реализации функций монитора

программы:

а) команды оператора;

б) утилиты;

в)системные директивы?

Какие файлы можно создавать с помощью редактора текста:

а)файлы с алфавитно-цифровой информацией любого содержания;

б) объектные файлы;

в) файлы с исходными текстами программ на языках высокого уровня? ;

Каким образом можно запустить драйвер ВУ:

а) с помощью соответствующей команды оператора;

б)с помощью программной строки обращения к регистру ВУ;

в) с помощью системной макрокоманды?

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

а) для обработки файлов на магнитных дисках;

б) для выполнения заданной последовательности команд оператора;

в) для автоматического создания требуемой последовательности команд oneратора?