Cтраница 3
Однако если между внешней функцией и данными класса будет стоять функция-член GetAgeO, то класс Cat можно будет модернизировать сколько угодно раз, что никак не повлияет на способ вызова функции GetAgeO в основном коде программы. При вызове в программе метода доступа не нужно знать, хранится ли нужное значение в переменной типа unsigned integer или long либо оно вычисляется при запросе. [31]
Когда применяется метод доступа, в котором предусмотрены средства объединения записей в блоки и разблокирования блоков данных, в программе нет необходимости учитывать, когда новый блок заполнен и готов к физической операции записи в набор данных. Программа просто выдает для каждой записи макрокоманду ввода-вывода и продолжает выполняться обычным способом. Эти запросы на ввод-вывод воспринимаются программами метода доступа, и записи помещаются по одной в блок. Когда обработано достаточно записей, чтобы заполнить блок, метод доступа выдает команду ввода-вывода, чтобы записать готовый блок в набор данных. Затем метод доступа начинает заново заполнять блок следующим набором записей по мере их поступления от программы. Если записи считываются - с запоминающего устройства, программы метода доступа работают почти противоположным образом. Весь блок записей сначала заносится в память, а затем, по мере того как проблемная программа выдает запрос на чтение, метод доступа по одной передает записи из этого блока программе. После освобождения этого блока программам метода доступа предоставляется другой блок, записи с которого передаются в проблемную программу. [32]
Логическая файловая система реализует различные методы доступа к данным и состоит из макрокоманд ввода-вывода и программ методов доступа. Эти запросы обрабатываются программами методов доступа, обеспечивающими отображение логической организации файла на физическую, а также помещение или извлечение логических записей из файла. Для помещения или извлечения логических записей программы методов доступа строят необходимые канальные программы и передают их на выполнение супервизору ввода-вывода. В ряде случаев программы методов доступа обращаются к программам базовой файловой системы. [33]
Так как работа системы в большей своей части состоит из операций ввода-вывода, обработка ввода-вывода может быть выполнена как с использованием методов доступа, так и без них. При применении метода доступа пользователь должен создать блок управления данными DCB и инициировать ввод-вывод с помощью макрокоманд GET, PUT и READ, WRITE. Выполнение одной из этих макрокоманд вызывает передачу управления программе метода доступа, которая размещается в разделе пользователя или в фиксированной области. Обрабатывающая программа логически связывается с программой метода доступа при открытии набора данных. [34]
Методы доступа с очередями предполагают наибольшую степень автоматизации операций обмена. Используя эти стандартные методы доступа, пользователь имеет возможность в своих программах осуществлять обмен информацией на уровне логических записей. Объединение логических записей в блоки при выполнении операций вывода и выделение логических записей из блока при выполнении операции ввода осуществляются автоматически программой метода доступа. Кроме того, программа метода доступа осуществляет автоматическую буферизацию данных и синхронизацию процессов обмена информации и ее обработки. [35]
Логическая система управления вводом-выводом обеспечивает максимальную гибкость программ, заключающуюся в независимости выполняемой программы от структуры данных, которые она обрабатывает, и от типов используемых внешних устройств. Это означает, что одна и та же программа без повторной подготовки может обрабатывать различные файлы данных, применяя разные внешние устройства. Подобная независимость реализована за счет реентерабельности этих программ. Программы методов доступа являются Р программами. Блок управления данными получает всю информацию из трех источников, приоритеты воздействия которых на блок различны. Построение и наиболее приоритетное заполнение Блока управления данными осуществляется по макрокоманде DCB. Вторым по приоритету источником заполнения Блока управления данными является Таблица параметров файлов, задаваемая программой Системный ввод при обработке операторов языка управления заданиями. Эта информация размещается в БУД по макрокоманде OPEN. Третьим источником для формирования БУД для уже существующих файлов данных на магнитных лентах и дисках является метка файла данных. Информация из меток во время выполнения процедуры открытия файла пополняет Блок управления данными. [36]
Метод доступа предусматривает системные макрокоманды, которые используются в программах для построения системных управляющих блоков и для обращения к программам метода доступа. Программа метода доступа функционирует как часть управляющей программы ОС ЕС. Супервизор ввода-вывода выполняет операции обмена. С помощью программ методов доступа реализуются операции обмена для всех языков программирования, входящих в ОС ЕС. [37]
Методы доступа с очередями предполагают наибольшую степень автоматизации операций обмена. Используя эти стандартные методы доступа, пользователь имеет возможность в своих программах осуществлять обмен информацией на уровне логических записей. Объединение логических записей в блоки при выполнении операций вывода и выделение логических записей из блока при выполнении операции ввода осуществляются автоматически программой метода доступа. Кроме того, программа метода доступа осуществляет автоматическую буферизацию данных и синхронизацию процессов обмена информации и ее обработки. [38]
Логическая файловая система реализует различные методы доступа к данным и состоит из макрокоманд ввода-вывода и программ методов доступа. Эти запросы обрабатываются программами методов доступа, обеспечивающими отображение логической организации файла на физическую, а также помещение или извлечение логических записей из файла. Для помещения или извлечения логических записей программы методов доступа строят необходимые канальные программы и передают их на выполнение супервизору ввода-вывода. В ряде случаев программы методов доступа обращаются к программам базовой файловой системы. [39]
Так как работа системы в большей своей части состоит из операций ввода-вывода, обработка ввода-вывода может быть выполнена как с использованием методов доступа, так и без них. При применении метода доступа пользователь должен создать блок управления данными DCB и инициировать ввод-вывод с помощью макрокоманд GET, PUT и READ, WRITE. Выполнение одной из этих макрокоманд вызывает передачу управления программе метода доступа, которая размещается в разделе пользователя или в фиксированной области. Обрабатывающая программа логически связывается с программой метода доступа при открытии набора данных. [40]
Итак, мы очень кратко описали завершение обслуживания запроса на ввод-вывод. В частности, был опущен весьма важный аспект, касающийся взаимоотношений между супервизором ввода-вывода и прикладной программой. Программа метода доступа или сама прикладная программа всегда должна предусматривать возможность собственной обработки некоторых прерываний. Обычно пользовательская программа или вызываемая ею программа метода доступа содержит специальные элементы, которым при фиксации соответствующих прерываний передается управление. В системах IBM эти элементы реализуются в виде так называемых программ-придатков ( аппендиксов), управление которым передается супервизором ввода-вывода при определенных условиях прерывания. Возможность вызова программ высокого уровня для обработки прерывания позволяет проблемным программистам самим корректировать свои действия в зависимости от аппарат-но фиксируемых условий. Иногда такие условия свидетельствуют об ошибках, а иногда отражают особые способы организации данных. В итоге получается, что нормальная выдача запроса на ввод-вывод и обработка прерываний могут привести к вызову подпрограмм, не имеющих никакого отношения к супервизору и находящихся в разделе пользователя. При необходимости программист может предусмотреть собственные средства обработки отдельных прерываний, только для этого нужно написать специальные подпрограммы и указать системе их адреса. [41]
Таблица символических имен содержит по одной позиции для каждой записи в информаторе. В каждой позиции таблицы содержится символическое имя и адрес записи информатора для элемента данных. Таблица составлена в алфавитной последовательности, упорядоченной по символическому имени, и разработана для того, чтобы служить в качестве последовательного индекса для информатора. Работающий с этой таблицей, используя программу индексно-последователыюго метода доступа ( S1AM - Sequential Index Access Method), имеет возможность отыскать из миллиона записей любую одну максимум за два обращения. [42]
Процедура открытия файла данных осуществляется путем заполнения в Блоке управления данными всех незаполненных полей при выполнении макрокоманды OPEN. Макрокоманда OPEN является самым сложным элементом ЛСУВВ. Она реализуется Р и Р2 программами, которые выполняют следующие функции: контроль правильности установки тома и поиск нужного файла данных на томе; формирование и запись меток для создаваемых файлов данных; построение и модификация управляющих блоков ( БУД, БУФ, ТИУ), используемых системой для выполнения операций ввода-вывода; формирование программы канала; построение буферных областей при запросах на их автоматическое построение; для методов доступа с очередями первое заполнение буферов; загрузка программ доступа в область памяти, отведенную задаче; установление признака успешного завершения открытия файла данных. Макрокоманда OPEN осуществляет связь между программой пользователя и программами методов доступа. Прежде чем загрузить в область проблемной программы требуемые программы доступа, производится проверка, не являются ли эти программы резидентными в данной версии операционной системы: если это так, устанавливается связь с резидентными программами вместо выполнения загрузки программ доступа. Программы OPEN освобождают программиста от записи многочисленных характеристик в метки создаваемых файлов данных, если программисту требуется обратиться к этим файлам повторно. [43]
Вычислительная машина умеет выполнять некоторый набор команд, называемых машинными командами. Из этих команд составлены программы, которые организуют вычислительный процесс в удобном для пользователя виде. Набор программ, обеспечивающий организацию вычислительного процесса на машине, называется операционной системой. Сюда включаются компиляторы с различных языков, обслуживающие программы ( называемые также утилитами); программы, осуществляющие физический ввод-вывод данных ( так называемые программы методов доступа), и управляющая программа. [44]
В DD-операторе с именем GRAPHIC описываются дисплеи. Их можно обозначить групповым именем 7066 с указанием количества, но лучше задавать конкретные адреса, используя сцепление операторов DD, как это показано в примере. Хотя программа CPDHE932 рассчитана на 32 дисплея, как правило, используется меньшее количество экранов. Однако при сцеплении рекомендуется задавать ровно 32 оператора DD, так как иначе на каждый отсутствующий экран на консоль оператора ЭВМ будет выдаваться сообщение программы OPEN метода доступа GAM. Те DD-операторы, в которых телевизоры фактически отсутствуют, через подпараметр AFF ссылаются на первый экран. [45]