Правильная организация службы времени для VM/ESA и OS/390 – не самый
важный вопрос. Однако поскольку его задают часто, я пишу данную
заметку. Ниже по тексту даю все смещения времени относительно Москвы. Универсальное единое время и Гринвич.
По исторической традиции нулевым временным меридианом считают
Гринвичский – там, где стоит всемирно известная обсерватория. В
вычислительной технике устоялся связанный с ним термин – GMT. Это как
раз время «по Гринвичу», т.е. время в Гринвичском временном поясе. При
этом важный момент – никаких переходов на летнее время и прочие
сезонные колебания GMT не претерпевает. Последнее время чаще используют
другой термин – UTC, т.е. «универсальное единое время». Оно полностью
соответствует GMT, и появилось тоже по историческим и политическим
причинам. Я буду дальше считать GMT и UTC взаимозаменяемыми терминами.
Московское время.
Москва лежит восточнее Гринвича, и использует локальное смещение
времени относительно GMT на три часа. То есть наше время - GMT+3. Но
это верно только часть года, а именно – зимой. Летом в России, как и в
более чем ста странах, применяется дирекционное летнее время, т.е.
локальное летнее время становится GMT+4. Перевод часов осуществляется в
последнее воскресенье марта, в 2:00. Обратный переход с дирекционного
летнего времени на «нормальное» время осуществляется в последнее
воскресенье октября в 3:00. Время в Москве снова становится GMT+3. Время в мэйнфреймах.
Подробно места, где хранится показания часов, описаны в «Принципах
работы». Процесс инициализации в мэйнфреймах достаточно сложен, и тоже
подробно описан в «Принципах работы», но в общем случае начальное
значение часов при инициализации берется из того персонального
компьютера, который используется для загрузки микрокодов и управления
мэйнфреймом – т.н. Support Element, SE. Именно поэтому для ВЦ, где
электропитание ЭВМ регулярно выключается, например, на выходные дни или
ежедневно, состояние SE имеет особенно большое значение. Нужно
внимательно следить за тем, какое время на нем установлено. Дальше, как
правило, ОС задает вопрос, оставлять ли предложенное значение времени в
качестве рабочего, или требуется его изменить. Если значение часов
меняется оператором, то с помощью консольных функций это изменение
должно быть подтверждено. После этого служба времени мэйнфрейма
считается инициализированной. Такова общая типовая схема. Отличия от
нее могут состоять в наличии в составе мэйнфрейма иных аппаратных схем
задания начального состояния часов – от получения их непосредственно из
региональных центров точного времени до использования энергонезависимых
часовых устройств.
Время в ОС VM/ESA.
VM/ESA имеет механизм учета локального смещения времени (зональности) и
перехода на дирекционное время. Для этого существует специальная секция
в файле SYSTEM CONFIG. Выглядит она примерно так: 01 /**********************************************************************/ 02 /* Timezone Definitions */ 03 /**********************************************************************/ 04 Timezone_Definition MSK East 03.00.00 05 Timezone_Definition MSL East 04.00.00 06 Timezone_boundary on 2005-03-27 at 02:00:00 to MSL 07 Timezone_boundary on 2005-10-30 at 03:00:00 to MSK 08 Timezone_boundary on 2006-03-26 at 02:00:00 to MSL 09 Timezone_boundary on 2006-10-29 at 03:00:00 to MSK
Строки
01-03 – комментарии. Строка 04 определяет пользовательскую зону
смещения времени – MSK (московское), а строка 05 – MSL (московское
летнее); обе эти зоны восточнее GMT на 3 и 4 часа соответственно.
Строка 06 указывает, когда в 2005 году начинает действовать зона MSL, а
строка 07 – когда снова начнет действовать зона MSK. Строки 08-09 –
определяют границы действия этих зон в 2006 году. Узнать, какая зона в настоящее время активна в VM/ESA можно с помощью команды Q TIMEZONE. Время в OS/390.
OS/390 не умеет так гибко учитывать временные зоны, как VM/ESA. В то же
время OS/390 зависит от времени намного больше, чем VM/ESA. В OS/390
многие важные части системы активируются только в режиме работы SYSPLEX
(или в его односистемной разновидности - MONOPLEX), и тогда текущее
время постоянно записывается в специальный набор данных. Если во время
перезагрузки время, взятое из аппаратных часов, оказывается меньше
того, которое записано в этом наборе данных, то система либо предлагает
подождать, пока часы «догонят» записанное значение, либо предлагает
выбрать другой набор данных для записи событий, либо отказаться от
SYSPLEX-режима работы. Это постоянно происходит, когда осенью переводят
часы с дирекционного летнего времени на стандартное, т.е. на час назад.
Поэтому в фирменной документации рекомендуется НЕ ПЕРЕВОДИТЬ аппаратные
часы, а вручную изменять значение параметра TIMEZONE раздела CLOCKxx
библиотеки PARMLIB. Пример – задание обычной зоны смещения времени для
Москвы относительно GMT:
TIMEZONE E.03.00.00 Это смещает зону на восток на три часа. Переход на летнее дирекционное время –
TIMEZONE E.04.00.00 Аппаратные
часы в этом случае не переводятся, а идут, например, по GMT. Узнать,
какое локальное и машинное время можно с помощью операторской команды D
T.
Если OS/390 работает под VM/ESA. Это
довольно распространенная конфигурация на продвинутых, динамично
развивающихся ВЦ. Никакой проблемы организация службы времени в этом
случае не представляет – при правильном описании виртуальной машины для
OS/390 компонента CP передает ей значение реальных аппаратных часов.
Таким образом достигается полная иллюзия работы OS/390 на реальном
оборудовании, без всякого VM/ESA. |