Cтраница 2
ФОБОС работает в ОП емкостью от 16 до 28 Кслов и предоставляет пользователю гибкую систему обслуживания ввода-вывода в реальном масштабе времени. Система обеспечивает три модификации ввода-вывода: синхронный - управление не возвращается запрашивающей программе до окончания операции ввода-вывода; асинхронный - запрос на ввод-вывод устанавливается в очередь на обслуживание и управление немедленно возвращается запрашивающей программе; с событием - запрос на ввод-вывод устанавливается в очередь на обслуживание, а управление возвращается запрашивающей программе. По окончании операции ввода-вывода происходит прерывание основной программы и управление передается программе завершения, при выходе из которой управление возвращается запрашивающей программе. [16]
Программа завершения вывода сообщения. [17] |
В имитационной модели, блок-схема которой изображена на рис. 5.13, как обычно сначала временная переменная ТЕМРМО устанавливается в нуль. В блоке 1 модель проверяет, не занята ли в настоящий момент лента регистрации. Делается это путем проверки признака, устанавливаемого либо при запуске обмена с лентой, либо программой завершения. Если лента не занята, в блоке 2 процессорное время блоков Q и R прибавляется к CPUTIMER и ТЕМРМО. В блоке 3 используется подпрограмма запуска обмена с лентой, чтобы получить нужные значения времени начала работы ленты регистрации. [18]
Первый раз управление этой программы передается после того, как программа завершения сообщения определила, что входное сообщение уже целиком находится в основной памяти и что программа обработки не выполняет никакой работы. С этого момента программа остается активной до тех пор, пока в системе есть сообщения, подлежащие обработке. Когда таких сообщений нет, программа обработки просто ждет очередного сообщения, и после его поступления программа завершения передает ей управление точно так же, как и вначале. [19]
Мне, учителю, особенно наглядны те глубокие преобразования, которые достигнуты в области народного просвещения. Сегодня мы с гордостью говорим о том, что в нашей стране в основном решена выдвинутая XXIV съездом КПСС программа завершения перехода ко всеобщему среднему образованию молодежи. И этот стремительный взлет к знаниям и культуре произошел буквально на наших глазах, при жизни одного поколения советских людей. [20]
Далее в нашем примере происходит то, что прикладная задача не может выполняться, пока не завершится операция ввода-вывода. Перехват, установленный в сервисной программе супервизора, которая переводит задачу в состояние ожидания, вновь заставляет программу измерений запомнить время и информацию о событии. Когда операция ввода-вывода завершается, управление опять переходит к супервизору. Перехват, установленный в программе завершения операции ввода-вывода, заставляет программу измерений запомнить время и информацию о событии завершения операции ввода-вывода. [21]
В начале программы устанавливаются в нужные значения все счетчики, флажки, триггеры и условия. Следующий шаг состоит в чтении с ленты отредактированной входной информации, полученной по информации выходной ленты трассирующей программы. Хотя здесь указано только одно чтение, некоторым из программ приходится для поиска требуемой информации выполнять чтение последующей информации. После прочтения входной информации определяется ее тип. Для обозначения входа в программу завершения используется специальный сигнал. Программа завершения должна собрать воедино все нужные суммарные значения характеристик работы ЦП и других устройств. [22]
На рис. 5.35 изображена схема хронометрирующего имитатора этого ЦП. После запуска модели в блоке 1 устанавливаются все нужные исходные условия. В блоке 3 представлен один из двух методов окончания моделирования. Аналитик может задать предельное число циклов, которое он хочет имитировать. По достижении этого предела модель передает управление программе завершения. Такой тип завершения часто используется моделями, которые развертывают команды при самом моделировании. Однако относительно правил развертывания модели надо сообщить дополнительную информацию. В нашем примере мы предположим, что развертывание уже выполнено заранее. [23]
В начале программы устанавливаются в нужные значения все счетчики, флажки, триггеры и условия. Следующий шаг состоит в чтении с ленты отредактированной входной информации, полученной по информации выходной ленты трассирующей программы. Хотя здесь указано только одно чтение, некоторым из программ приходится для поиска требуемой информации выполнять чтение последующей информации. После прочтения входной информации определяется ее тип. Для обозначения входа в программу завершения используется специальный сигнал. Программа завершения должна собрать воедино все нужные суммарные значения характеристик работы ЦП и других устройств. [24]
Кроме основной части программы, дающей приведенные выше значения, существуют еще три части. Первой из них является программа, обеспечивающая корректное завершение обработки при отсутствии записей на входе программы. Ее основная функция состоит в том, чтобы убедиться в правильности обработки и выводе всех записей. Для этого она организует принудительные обращения к основной программе: может оказаться, например, что последний прочитанный блок информации содержит менее пяти записей. Если на блок вывода управление передается только тогда, когда в буфере - пять записей, последний блок в котором содержится от одной до четырех записей, никогда не будет обработан. Программа завершения, в случае, когда в последнем блоке, например, имеется три записи, заставит программу блокирования передать управление программе вывода после обработки трех последних записей. [25]