Содержимое - таймер - Большая Энциклопедия Нефти и Газа, статья, страница 1
Самая большая проблема в бедности - то, что это отнимает все твое время. Законы Мерфи (еще...)

Содержимое - таймер

Cтраница 1


Содержимое таймера изменяется с соответствующей частотой в те периоды времени, когда другие операции в системе позволяют это делать. Изменение происходит только в периоды между выполнениями команд. Исключение составляют прерываемые команды, например, такие, как команда ПЕРЕСЫЛКА ДЛИННАЯ. В таких случаях продвижение таймера может происходить во время выполнения команды. Обновленное значение в таймере обычно доступно в конце выполнения каждой команды. Если выполнение команды или какой-либо другой процесс в системе вызывает задержку продвижения таймера больше чем на один период, то содержимое таймера может быть уменьшено более чем на одну единицу в одном цикле продвижения, причем конкретная величина этого изменения зависит от величины задержки и от размера буферной памяти таймера. Продвижение таймера может не происходить в тех случаях, когда при передаче данных во время операции ввода-вывода величина потока информации оказывается близкой к пределу пропускной способности памяти, когда канал, использующий оборудование процессора и работающий в монопольном режиме, блокирует работу процессора или когда время выполнения команды ПРЯМОЕ ЧТЕНИЕ слишком велико. Программа не оповещается в тех случаях, когда отсутствие продвижения приводит к потере отсчета реального времени.  [1]

Содержимое таймера обновляется с соответствующей частотой всегда, когда это допускают другие действия системы.  [2]

Содержимое таймера CPU и временного компаратора исправляется командами установить таймер CPU SPT и установить временной компаратор SCKC соответственно.  [3]

Когда содержимое таймера выбирается каналом ввода-вывода, другим CPU или используется в качестве команды, это приводит к непредсказуемым результатам. Таким же образом, при записи, выполняемой в ячейку 80 каналом или другим CPU, устанавливается показание таймера, которое нельзя предсказать заранее.  [4]

Если содержимое таймера CPU становится положительным до того, как запрос удовлетворен, запрос не сохраняется и прерывание не происходит. С другой стороны, запрос прерыванием не снимается, и если условие прерывания продолжает существовать, то в результате его однократного возникновения может произойти несколько прерываний.  [5]

Доступ к значению содержимого таймера осуществляется путем выборки слова из ячейки 80 в качестве операнда, при условии что ячейка не защищена от выборки. Если эта ячейка защищена, то любая попытка изменить содержимое таймера вызывает программное прерывание по защите. Содержимое таймера при этом остается без изменения.  [6]

В соответствии с течением времени содержимое таймера непрерывно уменьшается и, наконец, становится отрицательным; в этот момент происходит прерывание от таймера и Супервизор времени-обрабатывает первый Блок запроса к таймеру из очереди. Вслед за этим происходит продвижение очереди, первый запрос вычеркивается из Очереди запросов времени.  [7]

Если, другой процессор или какой-либо канал производит выборку содержимого таймера или же это содержимое используется в качестве команды, результат заранее предсказать нельзя.  [8]

Запрос на прерывание от таймера CPU действует в течение всего времени, пока содержимое таймера CPU отрицательно, а не только тогда, когда положительное значение меняется на отрицательное. Поэтому перед установкой нового значения в таймер CPU не нужна проверка того, что это значение положительно. Ранее записанное в память содержание таймера CPU могло бы оказаться отрицательным, если бы между моментом прерывания, не связанным с таймером CPU, и моментом записи значения из таймера CPU внешние прерывания были запрещены, а положительное значение содержимого таймера CPU сменилось на отрицательное.  [9]

Запрос на прерывание от интервального таймера возникает всякий раз, когда положительное значение содержимого таймера, включая 0, сменяется отрицательным. Запрос на прерывание хранится в процессоре до тех пор, пока не произойдет прерывание от интервального таймера или пока не будет выполнен сброс. Переполнение, возникающее при переходе содержимого таймера от наибольшего отрицательного числа к наибольшему положительному, не принимается во внимание.  [10]

Флаг устанавливается автоматически в 1 в конце каждого периода таймера реального времени, когда содержимое таймера достигает нулевого значения. Этот бит только для чтения и очищается путем записи 1 в бит RTIF регистра управления. Также бит очищается при аппаратном сбросе.  [11]

Если показание интервального таймера необходимо записать во внешнее устройство, программа должна сначала переслать содержимое таймера в какую-нибудь ячейку памяти, к которой в дальнейшем будет сделано обращение при операции ввода-вывода. Если канал производит выборку значения непосредственно из ячейки 80, то результат будет неопределенным.  [12]

Наблюдению не подлежат ячейки памяти, обращения к которым формируются самим CPU при изменении содержимого таймера, прерываниях, выполнении команд ввода-вывода и записи состояния при аппаратном контроле. В их число входят ячейки памяти, выделенные для таймера интервалов, PSW, CSW и записи состояния при контроле. Однако за этими ячейками ведется наблюдение, если запись в них происходит в результате выполнения команды. Аналогично не подлежит наблюдению запись данных в память, выполняемая каналом. По-скольку память ключей не является частью основной памяти, за ее изменениями, происходящими при выполнении команд установить ключ памяти и сбросить бит обращения, наблюдение не ведется.  [13]

Бит 46, установленный в единицу, указывает, что отсутствует ошибка таймера CPU и что в ячейке 216 области сохранения содержимого таймера CPU записана правильная информация о состоянии таймера CPU, которая соответствует моменту выполнения прерывания от системы аппаратного контроля.  [14]

Если для получения текущего значения и для последующей установки в таймер нового значения по описанному выше способу используется не команда ПЕРЕСЫЛКА, а какое-либо другое средство, включая команду ПЕРЕСЫЛКА ДЛИННАЯ или две отдельные команды, то программа может потерять отсчет времени, если изменение содержимого таймера произойдет в период между выборкой и записью в память.  [15]



Страницы:      1    2    3