На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Программная реализация виртуального интервального таймера с повышенным разрешением в среде ОС7 ЕС

Статья опубликована в выпуске журнала № 2 за 1990 год.
Аннотация:
Abstract:
Автор: Баевский В.Ю. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 9715
Версия для печати

Размер шрифта:       Шрифт:

Операционная система BPS (БОС), входящая в состав ОС7 ЕС, получила в нашей стране широкое распространение на моделях ЕС ЭВМ средней производительности рядов 2 и 3. Этому способствовали ее повышенная (по сравнению с ОС ЕС версии 6.1) пропускная способность и высокая эффективность работы под управлением ОС виртуальных машин СВМ ЕС.Однако ОС BPS во многом базируется на программных компонентах ОС ЕС вер сии 6.1 SVS и потому обладает не только ее достоинствами, но и недостатками. Среди них следует отметить использование для отсчета интервалов времени интервального таймера, а не таймера CPU. Практически механизмы службы отсчета интервалов времени (СОИВ) BPS ничем не отличаются от описанных в [1], что препятствует ее нормальному функционированию в среде ОС7 ЕС. Попытаемся определить причины неудовлетворительной работы СОИВ в среде ОС7 ЕС и подход, позволяющий при умеренных накладных расходах обеспечить нормальную работоспособность СОИВ путем программной эмуляции виртуального интервального таймера с повышенным разрешением.  Работа СОИВ BPS основана на применении интервального таймера. Однако ввиду того, что BPS предназначена для работы на виртуальной машине, ей приходится иметь дело с виртуальным интервальным таймером (ВИТ). Если не применяется микропрограммная поддержка виртуального интервального таймера (ПВИТ) [2] (предусмотренная пока только для ЭВМ ЕС 1036), ВИТ моделируется монитором виртуальных машин (МВМ) с такими ограничениями, которые ведут в конечном счете к неэффективности или даже полной блокировке СОИВ.Нормальной работе реального таймера, как известно, соответствует вычитание единицы из бита 23 в слове по адресу Х'50' каждую 1/300 с [3], что соответствует вычитанию из этого слова 256. Возможны такие реализации, при которых число вычитается по истечении другого интервала времени с таким расчетом, чтобы скорость убывания величины в таймере была эквивалентна вышеописанной. Обновление целой величины в таймере происходит независимо от того, работает или находится в ожидании центральный процессор. Как только величина, находящаяся в таймере, меняет знак, наступает внешнее прерывание с кодом Х'80'.

Подобным образом функционирует и ВИТ, однако интервал времени, по истечении которого содержимое таймера обновляется МВМ, намного больше 1/300 с и зависит как от режима работы ВИТ ("TIMER" или "REALTIMER"), так и от состояния среды СВМ ЕС (активность других виртуальных машин и характер протекающих в них процессов).

Если установлен режим "TIMER", модификация содержимого ВИТ осуществляется МВМ только тогда, когда в системе имеется несколько активных виртуальных машин, причем величина интервала обновления соответствует кванту времени, предоставляемому МВМ виртуальной машине. Для моделей ЕС ЭВМ средней производительности (ЕС 1045, ЕС 1046) он превышает 100 мс, что обусловливает низкую разрешающую способность ВИТ. Кроме того, как показывает практика, BPS часто эксплуатируется на единственной виртуальной машине в системе (в этих условиях ВИТ вообще не обновляется), в результате чего СОИВ полностью блокируется.В режиме "REALTIMER" обновление ВИТ осуществляется и при одной виртуальной машине, но с условием, что она загрузит виртуальное PSW с открытой маской внешних прерываний и взведенным битом ожидания. Это единственный способ, с помощью которого операционная система виртуальной машины может известить МВМ об ожидании истечения интервала времени, величина которого находится в ВИТ. В этом случае МВМ использует величину интервала для установления реального компаратора и организует ожидание его завершения. По истечении этого интервала МВМ отображает на виртуальную машину внешнее прерывание с кодом Х'80', моделируя прерывание от интервального таймера. Однако BPS представляет собой систему пакетной обработки, для которой характерно наличие фоновых процессов, полностью занимающих виртуальный процессор, что делает его перевод в состояние ожидания маловероятным. В результате ВИТ не обновляется, и работа СОИВ блокируется.Вследствие блокировки СОИВ BPS соответственно блокируются системные и пользовательские процессы, использующие макрокоманду супервизора BPS STIMER. В этих условиях такие средства BPS, как системная мониториая программа (SMF) и базисный телекоммуникационный метод доступа (ВТАМ), оказываются частично или полностью неработоспособными.Самый радикальный выход из сложившегося положения - переделка СОИВ BPS с интервального таймера на таймер CPU, моделирование которого МВМ не сопряжено с указанными ограничениями. Существует простой эвристический подход, обеспечивающий не худшие результаты и не требующий внесения в BPS каких-либо изменений. Он состоит в использовании дополнительного обработчика внешних прерываний, который оформляется как неотменяемая по команде CANCEL "висячая" процедура - эмулятор ВИТ. На этот эмулятор возлагаются функции по периодической установке виртуального таймера CPU, обработке прерываний (код Х'1005') модификации слова по адресу Х'50' и имитации внешнего прерывания с кодом Х'80' при изменении знака целой величины в этом слове. Действия, выполняемые эмулятором ВИТ, достаточно тривиальны, тем не менее на этом пути имеется некоторая (как показал эксперимент, кажущаяся) трудность. Как следует из руководства по МВМ, виртуальный таймер CPU пригоден для отсчета интервалов времени щ виртуальной машине, находящейся в состоянии ожидания только при заданном pi жиме ВИТ "REALTIMER". Очевидно, при стандартном моделировании ВИТ (рЛ жимы TIMER" или "REALTIMER") всегда будет существовать опасность двойня! обновления ВИТ (и МВМ, и эмулятором ВИТ). Но кажущееся противоречие р» решается просто: наличие или отсутствие в конфигурации виртуальной маши» ВИТ не влияет на моделирование МВМ таймера CPU, т.е. имеется ошибка документации по МВМ. Поэтому можно до загрузки BPS работать в режим "REALTIMER", а после инициализации интервального таймера в среде BPS загл» тить эмулятор ВИТ, который отключит стандартное моделирование ВИТ.Программное средство, обеспечивающее разрешающую способность ВИТ, равном 50мс, рекомендуется для широкого круга пользователей BPS.
Список литературы1. Супервизор ОС ЕС ЭВМ/ Наумов В.В.,2. Пеледов Г.В., Тимофеев Ю.А., Чекалов А.Г. М.: Статистип 1975.86 с.Система виртуальных машин для ЕС ЭВМ: Справочник/3. И.М. Булко, Н.Н. Дорожко, Л.И. Дудкин и jp; Под ред. Э.В. Ковалевича - М.: Финансы и статистика, 1985.360 с.Принципы работы системы IBM/370: Пер. с англ./ Под ред. Л.Д. Райкова. М.:Мир,1978 - 576 с.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=1410
Версия для печати
Статья опубликована в выпуске журнала № 2 за 1990 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: