Cтраница 2
При таком режиме одна страница используется для решения, а другая - для ввода очередного оператора и его массивов. Так как после решаемого оператора может быть несколько преемников, вероятность каждого из которых известна, то перед организующей системой возникает проблема выбора преемника для ввода. Если в качестве минимизируемой функции потерь принять математическое ожидание времени от момента окончания решения текущего оператора до момента начала работы следующего оператора, то для выбора необходимо вычислить математическое ожидание потерь для разных вариантов ввода. [16]
Режим трассировки-это разновидность программного режима, в котором каждый оператор программы выводится на терминал перед его выполнением. В пошаговом режиме каждый оператор выводится на терминал до его выполнения, выполнение программы приостанавливается и интерпретатор ожидает дальнейших действий пользователя. Пользователь может разрешить выполнение текущего оператора, введя в ответ пустую строку, или ввести любой другой оператор языка, который в программу не заносится, а сразу выполняется. Затем на терминал вновь выводится текущий оператор. [17]
Так как все перемещаемые адреса отсчитываются от начала программы, в счетчик размещения ( или программный счетчик) ( LC) первоначально устанавливается нуль. Затем операторы исходного текста читаются последовательно с устройства ввода. Каждый оператор исследуется в отдельности для того, чтобы приписать некоторую ячейку каждой машинной команде или данным, определяемым псевдооперацией, и таким образом определить значения символов, появляющихся в полях меток исходной программы. Это выполняется следующим образом. Сначала поле операции текущего оператора сопоставляется с таблицей псевдоопераций. В этой таблице перечислены мнемонические коды псевдоопераций, с каждой из которых связывается указатель подпрограммы ассемблера, обрабатывающей эту операцию. Если совпадение обнаружено, выполняется вызов соответствующей подпрограммы. Так как проход 1 связан только с псевдооперациями, которые определяют символы или влияют на счетчик размещения, такие псевдооперации, как USING, DROP или START, сразу приводят к передаче управления в точку, в которой анализируются поля метки ( 1 на рис. 5.2) и обработка продолжается. [18]
ЭВМ при выполнении операторов БП ЕА, ПП ЕА, х0 ЕА, х Ф О ЕА, х О ЕА, х О ЕА, LN ЕА программа анализа лексики анализирует первый шаг. Для операторов безусловного и условного переходов устанавливается фляг адреса перехода ФАП: F, и при считывании адреса он пересылается в счетчик шагов PC: АП. Если ФАП - 0, то проверяется состояние канала связи: если КС Д OF OF, то канал свободен и управляющая информация, если она передавалась, принята адресатом. Выполнение этого условия разрешает исполнение любого следующего оператора. Если ОП OF или ОП 40, то управление передается фрагменту программы-интерпретатора этой микроЭВМ, в противном случае выполняется пересылка РХ1: РХ и код оператора ( или составляющее его слово для двухшаго-вых операторов) передается в канал связи КС: ОП. После этого проверяется флаг исполнения. Если ФИ F, то происходит обращение к программной памяти по текущему содержимому PC для считывания очередного слова, в противном случае после выполнения текущего оператора управление передается драйверу индикаторного устройства для вывода содержимого РХ на индикатор. [19]
Как отмечалось в предыдущем разделе, для организации периодов обработки JCL-предложения операционной системы должны быть реализованы аппаратно. Были предприняты усилия и для реализации других функций операционных систем аппаратными средствами с целью повысить производительность системы и степень ее защиты. В этих системах все ресурсы ( такие, как программы, наборы данных, каналы, устройства и блоки памяти) рассматриваются как объекты, которые могут быть идентифицированы операционной системой. Для того чтобы пользователь мог выполнить некоторые операции над объектом, он должен иметь копию мандата на доступ к объекту. Мандат определяет те допустимые операции, которые могут быть выполнены над объектом. Мандат создается владельцем объекта и может быть передан пользователю. Однако пользователь не может его модифицировать. Мандат используется операционной системой для того, чтобы определить, являются ли запрашиваемые ресурсы действительно разрешенными и имеет ли пользователь полномочия на работу с объектом. В операционной системе с мандатными списками должны быть реализованы механизмы их создания и изменения мандатов, доступные владельцу объекта, механизм копирования, доступный пользователю; способы применения мандатов к текущим операторам и объектам; механизмы их защиты. Для системы с большим числом объектов и мандатов реализация рассмотренных выше механизмов в программе операционной системы может оказаться слишком сложной. Поэтому усилия специалистов были направлены на аппаратную реализацию этих механизмов и создание аппаратно-реа. [20]