Cтраница 1
Программист прикладных задач, которому нужна определенная запись, может вызвать данные, задагая значения ключей. Если применяется прямой метод расчета адресов, можно воспользоваться уже имеющейся в памяти формулой и определить адрес, по которому должно быть произведено обращение. После этого проверяется значение ключа и запись считывается в буфер ввода-вывода. Если запись найти не удается, например, из-за ошибочного значения ключа, то система управления данными должна иметь возможность общения с прикладной программой. Обычно это делается с помощью стыковочной записи, которая содержит информацию, вводимую программами управления данными и прикладной. Стыковочная запись может содержать также вводимый прикладной программой пароль, разрешающий вход в базу данных. [1]
Когда программисту прикладных задач не хватает аппаратных таймеров, отсчитывающих интервалы времени, ОС может создать дополнительные таймеры. Они реализуются тем же способом, что и цепочка счетчиков, если не считать, что здесь отсчеты всех таймеров обновляются при каждом срабатывании аппаратного таймера. [2]
Это позволяет программисту прикладных задач сосредоточиться на прикладной, а не на вычислительной стороне задачи. [3]
Очень важно для программиста прикладных задач также, чтобы была хорошо испытана сама ОС. Кроме того, она должна распознавать множество возможных ошибок, по возможности точно их идентифицировать и предотвращать их распространение в системе. Методика испытания ОС представляет собой один из вариантов методики для прикладных программ, что требует искусного управления этим процессом. [4]
Операционная система управляющей ЭВМ должна помогать программисту прикладных задач испытывать его программы. [5]
Оба они очень полезны, хотя используются программистами прикладных задач недостаточно эффективно. [6]
В настоящее время языки высокого уровня представляют собой основное средство подготовки программ, применяемое программистами прикладных задач, как профессиональными, так и непрофессиональными. В противоположность языкам ассемблера эти языки мало зависят от машины и являются в высшей степени самодокументирующимися. Обычно они процедурно ориентированы, их символы и фразеология уже знакомы пользователю. [7]
Важной функцией, которую можно легко выполнять при генерировании системы, является изменение внешней конфигурации всей системы аппаратуры, так что программист прикладных задач может игнорировать различия между машинами. Это ценное свойство при управлении технологическими процессами позволяет прогонять прикладные программы на машине в условиях лаборатории или опытного производства точно так же, как на машине, имеющей иную конфигурацию и расположенной на действующем производстве. Этот метод может быть распространен как на центральный процессор, так и на устройства и подсистемы ввода-вывода. Операционная система просто заполняет таблицы эквивалентности, устанавливающие связь между действительной и моделирующей конфигурациями. Моделирующая машина или устройство может быть даже проще или по крайней мере понятнее программисту прикладных задач. Например, имеет смысл моделировать магнитную ленту на запоминающем устройстве прямого доступа для целого ряда программ. В этом случае программа обслуживания магнитной ленты должна содержать индикаторы того, какие ленты являются рабочими, а какие - моделирующими. [8]
Другая очень полезная функция, свойственная ОС для обработки данных, но редко применяемая в ОС управляющих ЭВМ, позволяет пользователю модифицировать большую часть обычно применяемых системных программ, приспосабливая их к конкретному объекту. Может оказаться, что в силу основных правил, установленных для программистов прикладных задач, запрещено применение некоторых функций в системе. Например, если в системе с прикладными программами на Фортране не допускается использование плавающего формата сообщений или карт ввода, то формат Е не нужно предусматривать в программах ввода-вывода на Фортране. Исключая машинную программу, относящуюся к этому формату, из программ ввода-вывода на Фортране, можно значительно уменьшить их объем. Этого легко достигнуть, если программист ОС включил в машинную программу операторы условной сборки, которые могут быть приведены в активное или неактивное состояние изменением единственного параметра и новой сборкой. Метод применяется, пока исключение таких функций значительно влияет на длину программы. [9]
В лучших из таких инструкций приводится пример АСУ с указанием входов и выходов, с образцами написания отдельных программ. В инструкции описываются связи между программами, система программирования и машина. Благодаря этому программист прикладных задач получает возможность применить испытанную и проверенную методику, требующую лишь некоторого приспособления к конкретным условиям. Наконец, каждая инструкция должна быть ориентирована на того, кому предназначена. Например, могут потребоваться два варианта какой-либо инструкции: для опытного программиста и для новичка. [10]
Следует, однако, помнить, что поставщик практически не может исчерпывающим образом испытать систему. Процедура генерирования системы, которая допускает множество вариантов, дает огромное количество специфических ОС, и все они требуют обширных испытаний. Кроме того, программист прикладных задач должен овладеть методами получения уникальных сочетаний функций. Эти факторы вместе с рядом возможных состояний типичной управляющей ЭВМ, если допускаются отказы аппаратуры, приводят к фактически неисчерпаемому множеству условий, которые должны быть испытаны, чтобы гарантировать безошибочную работу системы. [11]
Как только сообщение передано прикладной программе, можно ожидать поступления требования на доступ к базе данных. Средства программного обеспечения должны облегчать программисту прикладных задач обработку, связанную с локализированием данных, организацией доступа к ним и передачей их из внешней памяти в главную. Некоторые из простейших видов обработки предполагают агрегирование и дезагрегирование записей, а также проверку меток. Во время выполнения поиска обработка может усложняться. Например, если основной файл организован ин-дексно-последовательным способом, программные средства управления данными должны обеспечивать поиск по индексам различного уровня, отыскивать нужные цилиндр и дорожку, перемещать считывающую головку и передавать соответствующую запись в главную память. [12]
Эффективное использование языка ассемблера требует детального знакомства с принципом работы вычислительной машины и длительной практики. Однако ассемблер дает программисту возможность управлять работой машины во всех деталях. Хотя языки ассемблера широко применяются программистами ОС и несколько меньше программистами прикладных задач, в настоящее время преобладает тенденция к сокращению применения языков ассемблера и расширению использования языков более высокого уровня. [13]
Казалось бы, что по мере роста стоимости оборудования объекта и материальных потоков популярность таких имитаторов будет расти, но дело обстоит не так просто. Хотя принципиально имитирующие программы легко реализуемы, их стоимость и размеры довольно велики. С ними трудно работать, они сложны и требуют такого знания процесса, которое вряд ли имеется у программиста прикладных задач. Применение имитаторов в АСУ, вероятно, будет расширяться по мере усовершенствования методов моделирования и построения имитирующих программ. [14]
Поэтому может получиться так, что между двумя последовательными операциями считывания входной сигнал изменит состояние четное число раз. В этом случае данные, передаваемые в центральный процессор, не отразят изменения, которое фактически имело место несколько раз. Может, например, возникнуть такая ситуация, при которой колебания сигнала на входе не обнаруживаются из-за того, что частота отсчетов оказалась согласованной с частотой колебаний сигнала. Насколько существенны эти необнаруженные колебания, зависит от конкретного применения; программист прикладных задач должен учитывать возможность появления указанной ситуации и соответствующим образом выбирать алгоритмы управления. [15]