Автоматизация
Вид материала | Документы |
- В. И. Харитонов > К. И. Меша Одобрено методической > С. С. Драгунов комиссией факультета, 321.05kb.
- Темы курсовых проектов Автоматизация учета налогоплательщиков (НП) физических и юридических, 19.54kb.
- Автоматизация бухгалтерского учета нужна ли она?, 216.55kb.
- Программа вступительного экзамена по приему в магистратуру по специальности 6М070200, 225.94kb.
- Автоматизация работы программ расчета, 29.26kb.
- Автоматизация и моделирование работы предприятий по строительству промышленных объектов, 445.96kb.
- Автоматизация процессов мониторинга объектов железнодорожной инфраструктуры на основе, 315.84kb.
- К рабочей программе учебной дисциплины «Интегрированные системы проектирования и управления»», 31.58kb.
- Автоматизация процесса формирования индивидуальных учебных планов в системе переподготовки, 256.55kb.
- Темы курсовых работ По дисциплине «Бухгалтерские информационные системы» Автоматизация, 14.74kb.
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СМ ЭВМ
§ 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ратора?