Научная статья на тему 'ОСОБЕННОСТИ РАБОТЫ СО ВРЕМЕНЕМ В ИНФОРМАЦИОННЫХ СИСТЕМАХ'

ОСОБЕННОСТИ РАБОТЫ СО ВРЕМЕНЕМ В ИНФОРМАЦИОННЫХ СИСТЕМАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
13
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
время / синхронизация времени / NTP-сервер / информационная система / UTC / Unix-время / time / time synchronization / NTP-server / informational system / UTC / Unix-time

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А С. Статников, Д А. Фролов, И Д. Торжевский, А Г. Зотин

В работе рассмотрены основные предпосылки и проблемы использования времени в компьютерной технике. Выделены ключевые аспекты, необходимые для работы со временем при разработке информационных систем. Они актуальны и для ракетно-космической отрасли.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FEATURES OF WORK WITH TIME IN INFORMATION SYSTEMS

The paper considers the main prerequisites and problems of using time in computers. The important aspects necessary for working with time in the development of information systems are highlighted. They are also relevant for the space industry.

Текст научной работы на тему «ОСОБЕННОСТИ РАБОТЫ СО ВРЕМЕНЕМ В ИНФОРМАЦИОННЫХ СИСТЕМАХ»

УДК 004.415.2

ОСОБЕННОСТИ РАБОТЫ СО ВРЕМЕНЕМ В ИНФОРМАЦИОННЫХ СИСТЕМАХ

А. С. Статников*, Д. А. Фролов, И. Д. Торжевский Научный руководитель - А. Г. Зотин

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

*E-mail: andy_ss@mail.ru

В работе рассмотрены основные предпосылки и проблемы использования времени в компьютерной технике. Выделены ключевые аспекты, необходимые для работы со временем при разработке информационных систем. Они актуальны и для ракетно-космической отрасли.

Ключевые слова: время, синхронизация времени, NTP-сервер, информационная система, UTC, Unix-время.

FEATURES OF WORK WITH TIME IN INFORMATION SYSTEMS

A. S. Statnikov*, D. A. Frolov, I. D. Torzhevsky Scientific supervisor - A. G. Zotin

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation

*E-mail: andy_ss@mail.ru

The paper considers the main prerequisites and problems of using time in computers. The important aspects necessary for working with time in the development of information systems are highlighted. They are also relevant for the space industry.

Keywords: time, time synchronization, NTP-server, informational system, UTC, Unix-time.

Введение. На сегодняшний день в большинстве информационных системах разработчики и пользователи выполняют операции, которые так или иначе полагаются на время. Однако далеко не все из них знают, понимают и осознают особенности представления времени в компьютерной технике, а также вытекающих проблемах, связанных с таким представлением [1]. В связи с этим необходимо формализовать наиболее значимые из данных особенностей, чтобы любой разработчик информационных систем мог без глубокого понимания всех нюансов работы со временем использовать его правильно.

Время вне информационных систем. Для выделения и понимания ключевых особенностей и проблем работы со временем в информационных системах необходимо рассмотреть время в привычном понимании людей.

Время - это способ синхронизации событий в жизни людей, таких как встречи и собрания. Однако любой человек однажды сталкивался с проблемой, когда после договора встретиться в условно назначенные 12:00 один из людей опаздывал на несколько минут по мнению второго, хотя на часах первого было ровно 12:00. Это первая и главная проблема - проблема погрешности хода часов, а также синхронизации времени между ними. Подобная проблема существует и в компьютерной технике, и как следствие ее необходимо учитывать при разработке информационных систем. Вторая проблема связана с желанием людей

Секция «Программные средства и информационные технологии»

сэкономить на свете и энергоносителях. Известно, что светлое время суток изменяется в течении года, и в летние дни оно больше, чем в зимнее. Используя данную особенность природы люди начали подстраивать свои часы под световой день. Возникло явление сезонного перевода часов. Оно привело к тому, что в дни перевода стрелок часов сутки составляют 23 или 25 часов. Данная проблема не обходит стороной подсчет времени в информационных системах.

UTC. Стоит отметить, что раньше не было единого мирового времени. В городах размещались так называемые «главные» часы, под которые жители подводили свои часы. На текущий момент в связи с глобализацией этими «главными» часами считаются часы, показывающие среднее солнечное время на Гринвичском меридиане. Время на данных часах называется Всемирным координированным временем (UTC) [2]. Для него существует одноименный стандарт времени - UTC. Согласно этому стандарту время в регионе описывается как смещение относительно UTC на величину до 12 часов с шагом в 15 минут со знаками плюс и минус, а весь мир поделен географически на часовые пояса (Timezone) согласно этим отклонениям. На сегодняшний день стандарт UTC повсеместно используется в информационных системах.

Unix-time. С приходом электронной вычислительной техники появилась необходимость хранения времени в цифровом виде. В 1969 году был принят стандарт представления времени в электронных вычислительных машинах под названием Unix-time [3]. Он описывает время как количество секунд, прошедших с начала эпохи, а именно с 00:00:00 1 января 1970 года. Для этого стандарта важно учитывать то, что при хранении используются 32-битные числа, что очень сильно ограничивает диапазон допустимых дат. Критической точкой считается 19 января 2038 года, именно в эту дату произойдет переполнение. Информационные системы, использующие Unix-time в текущем виде, дадут сбой [4]. Для решения этой проблемы в некоторых языках программирования, библиотеках и существующих информационных системах число было расширено до 64 бит.

ISO 8601. В 1988 году был выпущен новый стандарт представления времени, использующий для хранения строки с ограниченным набором символов. Значения даты и времени в этом стандарте расположены от более к менее значимому. Например, дата «10 июня 1950 года в 11 часов 30 минут» должна быть записана как «1950-06-10T11:30» [5]. Достоинством стандарта ISO 8601 является покрытие бесконечного диапазона дат в сравнении с Unix-time, полная поддержка UTC with Timezone, поддержка интервалов времени, а также является понятным человеку без специальных преобразований.

Синхронизация времени. В связи с масштабным распространением информационных систем возникает острая необходимость синхронизации времени между ЭВМ. Для этого существует сеть, состоящая из опорных источников времени, серверов синхронизации и конечных клиентов, которым необходимо получить точное время [6]. Опорные источники времени - это научные центры и орбитальные спутники, которые оснащены Квантовыми часами. Они способны определять время с точностью до 100 миллиардных долей секунды [7]. Сервера синхронизации используют специализированный протокол под названием Network Time Protocol. Он взаимодействует непосредственно с опорными источниками времени и осуществляет распространение полученных данных по своей сети и клиентам. Важно отметить, что он учитывает все значимые временные задержки в ходе обработки данных в узлах сети и передачи между ними.

Синхронизация часовых поясов. Как было описано ранее, людям периодически необходимо переключать часовые пояса для конкретных регионов. Для этого существует специальная пополняемая база данных, которая хранит в себе все изменения времяисчисления во всем мире для регионов. Данные из этой базы учитываются во всех библиотеках для работы со временем, поддерживающих UTC. Поскольку синхронизация часовых поясов может происходить в случайные моменты времени, UTC with Timezone

крайне не рекомендуется для сохранения моментов в будущем. Для этого лучше использовать либо UTC с нулевым часовым поясом, либо ISO 8061 в формате «время и интервал».

Монотонное и немонотонное время. Часы внутри ЭВМ могут накапливать как положительную, так и отрицательную ошибку, составляющую порядка нескольких секунд в течение суток. Из-за этого в ходе синхронизаций могут возникать скачки времени как в будущее, так и в прошлое. Время, которое подвержено данным скачкам называется немонотонным. Оно обладает рядом недостатков. Например, оно позволяет синхронизировать различные события лишь с низкой точностью, что совершенно недопустимо в распределенных информационных системах. Его нельзя использовать для замеров времени в программах. Для решения некоторых проблем немонотонных источников времени внутри современных ЭВМ существуют специальные Programmable Interrupt Timer чипы, которые отсчитывают время от момента запуска с точностью до наносекунд [8]. Время, полученное от них, является монотонным и его можно использовать для точных замеров времени и синхронизации процессов между несколькими потоками вычислений в рамках одной ЭВМ. Для решения задачи синхронизации событий можно использовать логические часы [9]. Примером обращения к монотонному и немонотонному времени для языка программирования JavaScript являются windows.perfomance.now() и new Date() [10], соответственно.

Выводы. Были рассмотрены основные предпосылки и проблемы использования времени в электронных вычислительных машинах. Выделены ключевые аспекты, необходимые для работы со временем при разработке информационных систем, актуальные в том числе и в ракетно-космической отрасли.

Библиографические ссылки

1. Falsehoods programmers believe about time and time zones [Электронный ресурс]. http://www.creativedeletion.com/2015/01/28/falsehoods-programmers-date-time-zones.html (дата обращения: 01.04.2022).

2. UTC [Электронный ресурс]. URL: https://time.is/UTC (дата обращения: 01.04.2022).

3. What is Unix time? [Электронный ресурс]. URL: https://kb.narrative.io/what-is-unix-time/ (дата обращения: 01.04.2022).

4. Проблема 2038 года: что делать, когда кончится время? [Электронный ресурс]. URL: https://tproger.ru/articles/problema-2038-goda-chto-delat-kogda-konchitsja-vremja/ (дата обращения: 01.04.2022).

5. ISO - ISO 8601 - Date and time format [Электронный ресурс]. URL: https://www.iso.org/iso-8601-date-and-time-format.html (дата обращения: 02.04.2022).

6. The internet cluster of ntp servers [Электронный ресурс]. URL: https://www.pool.ntp.org/ru/ (дата обращения: 02.04.2022).

7. Atomic Clocks for Fundamental Physics: Time for Discovery [Электронный ресурс]. URL: https://www.gps.gov/cgsic/meetings/2020/safronova.pdf (дата обращения: 02.04.2022)

8. Operating Systems Development Series [Электронный ресурс]. URL: http://www.brokenthorn.com/Resources/OSDev16.html (дата обращения: 02.04.2022).

9. Синхронизация в распределенных системах. [Электронный ресурс]. URL: http://citforum.ru/operating_systems/sos/glava_13.shtml (дата обращения: 02.04.2022).

10. Дата - JavaScript | MDN [Электронный ресурс]. URL: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Date (дата обращения: 02.04.2022).

© Статников А. С., Фролов Д. А., Торжевский И. Д., 2022

i Надоели баннеры? Вы всегда можете отключить рекламу.