Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Команда даты Unix

В информатике и компьютерном программировании , системное время представляет понятие компьютерной системе , по прошествии времени. В этом смысле время также включает дни в календаре .

Системное время измеряется часами системы , которая , как правило , реализуется как простой подсчет числа клещей , которые произошли с момента произвольной начальной даты, называемой эпохой . Например, системы, совместимые с Unix и POSIX, кодируют системное время (« время Unix ») как количество секунд, прошедших с начала эпохи Unix в 00:00:00 UT 1 января 1970 года , за исключением дополнительных секунд . Системы, реализующие 32-битные и 64-битные версии Windows API , такие как Windows 9x и Windows NTукажите системное время как SYSTEMTIME , представленное в виде значения года / месяца / дня / часа / минуты / секунды / миллисекунды, так и FILETIME , представленное как количество 100-наносекундных тактов с 1 января 1601 г. 00:00: 00 UT по пролептическому григорианскому календарю .

Системное время можно преобразовать в календарное время , которое является формой, более подходящей для понимания человеком. Например, системное время Unix 1 000 000 000 секунд с начала эпохи переводится в календарное время 9 сентября 2001 г. 01:46:40 UT . Подпрограммы библиотеки, которые обрабатывают такие преобразования, могут также иметь дело с настройками часовых поясов , летнего времени (DST), дополнительных секунд и настроек локали пользователя . Также обычно предоставляются библиотечные подпрограммы, которые преобразуют календарное время в системное время.

Другие измерения времени [ править ]

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

Файловые системы отслеживают время создания, изменения и / или доступа к файлам, сохраняя временные метки в блоке управления файлом (или индексном узле ) каждого файла и каталога .

История [ править ]

Большинство персональных компьютеров первого поколения не отслеживали дату и время. К ним относятся системы, работающие под управлением операционной системы CP / M , а также ранние модели Apple II , BBC Micro и Commodore PET , среди прочих. Дополнительные периферийные платы, которые включали микросхемы часов реального времени со встроенной резервной батареей, были доступны для IBM PC и XT , но IBM AT был первым широко доступным ПК, оснащенным оборудованием даты / времени, встроенным в материнская плата . До повсеместной доступностикомпьютерные сети , большинство персональных компьютерных систем, которые отслеживали системное время, делали это только относительно местного времени и не делали поправок на разные часовые пояса .

Благодаря современным технологиям большинство современных компьютеров отслеживают местное гражданское время, как и многие другие домашние и личные устройства, такие как видеомагнитофоны , видеорегистраторы , приемники кабельного телевидения , КПК , пейджеры , сотовые телефоны , факсы , автоответчики , фотоаппараты , видеокамеры и т. Д. центральные кондиционеры и микроволновые печи .

Микроконтроллеры, работающие во встроенных системах (таких как Raspberry Pi , Arduino и другие подобные системы ), не всегда имеют внутреннее оборудование для отслеживания времени. Многие такие системы контроллеров работают без информации о внешнем времени. Те, кому требуется такая информация, обычно инициализируют свое базовое время после перезагрузки , получая текущее время из внешнего источника, такого как сервер времени или внешние часы, или предлагая пользователю вручную ввести текущее время.

Реализация [ править ]

Системного тактового сигнала , как правило , реализован в виде программируемого таймера интервала , который периодически прерывает процессор, который затем начинает выполнение таймера прерывания процедуры обслуживания. Эта процедура обычно добавляет один тик к системным часам (простой счетчик) и обрабатывает другие периодические служебные задачи ( вытеснение и т. Д.), Прежде чем вернуться к задаче, которую ЦП выполнял до прерывания.

Получение системного времени [ править ]

В следующих таблицах показаны методы получения системного времени в различных операционных системах , языках программирования и приложениях . Значения, отмеченные (*), зависят от системы и могут отличаться в зависимости от реализации. Все даты даны по григорианскому или пролептическому григорианскому календарю .

Обратите внимание, что разрешение измерения времени реализацией не означает такой же точности таких измерений. Например, система может возвращать текущее время как значение, измеренное в микросекундах, но на самом деле способна распознавать отдельные такты часов с частотой всего 100 Гц (10 мс).

Операционные системы [ править ]

Языки программирования и приложения [ править ]

См. Также [ править ]

  • Календарь
  • Время вычисления
  • ДАТА (команда)
  • Эпоха
  • Время GPS
  • Джиффи
  • Сетевой протокол времени
  • Процесс
  • дата
  • ВРЕМЯ (команда)
  • time.h
  • time_t
  • Ошибки форматирования и хранения времени
  • Протокол ВРЕМЕНИ
  • Совместное времяпровождение
  • Стандарт времени
  • Таймер
  • Отметка времени
  • Команда даты Unix
  • Время Unix
  • Команда времени Unix
  • Настенные часы
  • Проблема 2000 года
  • Проблема 2038 года

Заметки [ править ]

  1. ^ a b Документация разработчика Apple не дает четких указаний относительно точности и диапазона CFAbsoluteTime / CFTimeInterval, за исключением документации CFRunLoopTimerCreate, в которой говорится о точности «не более субмиллисекунды». Однако аналогичный тип NSTimeInterval кажется взаимозаменяемым, и в нем указаны точность и диапазон.
  2. ^ Б с д стандартная библиотека С не определяет разрешение конкретных, эпоху, диапазон или тип данных для значений времени системы . Библиотека C ++ включает в себя библиотеку C, поэтому в ней используется та же реализация системного времени, что и в C.

Ссылки [ править ]

  1. Ральф Д. Браун (2000). «Int 0x1A, AH = 0x00» . Список прерываний Ральфа Брауна .
  2. Ральф Д. Браун (2000). «Int 0x1A, AH = 0x02» . Список прерываний Ральфа Брауна .
  3. Ральф Д. Браун (2000). «Int 0x1A, AH = 0x04» . Список прерываний Ральфа Брауна .
  4. ^ «Руководство по операционной системе CP / M Plus (CP / M версии 3.0)» (PDF) .
  5. ^ "Системные вызовы BDOS" .
  6. Ральф Д. Браун (2000). «Int 0x21, AH = 0x2c» . Список прерываний Ральфа Брауна .
  7. Ральф Д. Браун (2000). «Int 0x21, AH = 0x2a» . Список прерываний Ральфа Брауна .
  8. ^ "Справочник по утилитам времени" . Библиотека разработчика iOS . 2007 г.
  9. ^ "Справочник по утилитам времени" . Mac OS X Developer Library . 2007 г.
  10. ^ a b "CFRunLoopTimerCreate - Основа ядра" . Документация для разработчиков Apple . 2007 г.
  11. ^ Рут Э. Гольденберг; Лоуренс Дж. Кена; Дениз Э. Дюма (1991). VAX / VMS Внутреннее устройство и структуры данных, версия 5.2 . Цифровая пресса. ISBN 978-1555580599.
  12. ^ "Почему среда, 17 ноября 1858 г. - базовое время для OpenVMS (VAX VMS)?" . Стэнфордский университет . 24 июля 1997 года. Архивировано 24 июля 1997 года . Проверено 8 января 2020 года .
  13. ^ a b «Справочное руководство по библиотеке времени выполнения VSI C для систем OpenVMS» (PDF) . VSI. Ноябрь 2020 . Проверено 17 апреля 2021 .
  14. ^ «OpenVMS и 2038 год» . HP . Проверено 17 апреля 2021 .
  15. ^ a b z / Принципы работы архитектуры (PDF) . Покипси, Нью-Йорк: Машины международного бизнеса. 2007 г.
  16. ^ IBM намеревается расширить диапазон дат для будущих систем после 2042 года. Z / Принципы работы архитектуры , (Покипси, Нью-Йорк: International Business Machines, 2007) 1-15, 4-45 до 4-47.
  17. ^ «Расширенные 64-битные значения времени» . IBM . Проверено 18 апреля 2021 .
  18. ^ Джонатан де Бойн Поллард. «32-битный интерпретатор команд» . В OS / 2 Warp 4 дата и время могут работать и после 2000 года, и даже после 2038 года, а фактически до 2079 года, который является пределом для часов реального времени OS / 2 Warp 4. .
  19. Андерс Тулин (6 апреля 2013 г.). «Интерпретация меток времени NTFS» . Криминалистический фокус .
  20. ^ a b c «Свойство DateTime.Now» . Документы Microsoft .
  21. ^ a b c «Свойство DateTime.UtcNow» . Документы Microsoft .
  22. ^ a b c «Свойство DateTime.Ticks» . Документы Microsoft .
  23. ^ «Поддержка даты и времени» . Сеть разработчиков Embarcadero . 2013.
  24. ^ "System.SysUtils.Time" . Сеть разработчиков Embarcadero . 2013.
  25. ^ "System.SysUtils.GetTime" . Сеть разработчиков Embarcadero . 2013.
  26. ^ "System.SysUtils.Date" . Сеть разработчиков Embarcadero '. 2013.
  27. ^ "System.DateUtils.Today" . Сеть разработчиков Embarcadero . 2013.
  28. ^ "System.DateUtils.Tomorrow" . Сеть разработчиков Embarcadero . 2013.
  29. ^ "System.DateUtils.Yesterday" . Сеть разработчиков Embarcadero . 2013.
  30. ^ "System.SysUtils.Now" . Сеть разработчиков Embarcadero . 2013.
  31. ^ "System.SysUtils.DayOfWeek" . Сеть разработчиков Embarcadero . 2013.
  32. ^ "System.SysUtils.CurrentYear" . Сеть разработчиков Embarcadero . 2013.
  33. ^ a b c Время и временная коррекция в Erlang
  34. ^ «XL2000: ранние даты создания компонентов электронных таблиц Office отличаются от Excel» . Служба поддержки Microsoft . 2003. Архивировано из оригинального 24 -го октября 2007 года в электронной таблице Microsoft Office компонент, значение 0 соответствует значению даты 30 декабря 1899 и значение 1 равно 31 декабря 1899. ... В Excel, значение 0 соответствует значению до 0 января 1900 года, а значение 1 соответствует 1 января 1900 года.
  35. ^ "СИСТЕМА_ЧАСОВ" . Руководство и справочник разработчика Intel Fortran Compiler 19.0 . 29 апреля 2019 . Проверено 23 июля 2019 года .
  36. ^ "SYSTEM_CLOCK - Функция времени" . Компилятор GNU Fortran . Проверено 27 октября 2011 года .
  37. ^ a b "Метод System.nanoTime ()" . Платформа Java, Standard Edition 6: Спецификация API . 2015 . Проверено 23 июля 2019 года .
  38. ^ "Clock.systemUTC () и другие методы" . Платформа Java, Standard Edition 8: Спецификация API . 2014 . Проверено 15 января 2015 года .
  39. ^ "Система времени Java JSR-310" . Платформа Java, Standard Edition 8: Спецификация API . 2014 . Проверено 15 января 2015 года .
  40. ^ "Помощь Matlab" .
  41. ^ a b "NSTimeInterval - Foundation" . Документация для разработчиков Apple .
  42. ^ Дуглас Wegscheild, Р. Schertler и Яркко Hietaniemi, "Time :: HiRes" . CPAN - Комплексная сеть архивов Perl . 2011 . Проверено 27 октября 2011 года .
  43. ^ Джеймс Бритт; Нейрогами. «Класс времени» . Ruby-Doc.org: Справка и документация по языку программирования Ruby . Скоттсдейл, Аризона . Проверено 27 октября 2011 года .
  44. ^ Yugui (18 августа 2010). «Выпущен Ruby 1.9.2» . Новая версия 1.9.2 почти совместима с 1.9.1, за исключением следующих изменений: ... Время переопределено. Исправлена ​​ошибка с 2038 годом.
  45. ^ "Использование командлета Get-Date" . Документы Microsoft . Проверено 23 июля 2019 года .
  46. ^ «Совет недели по Windows PowerShell - форматирование даты и времени» . Документы Microsoft . Проверено 23 июля 2019 года .

Внешние ссылки [ править ]

  • Critical and Significant Dates , JR Stockton (получено 3 декабря 2015 г.)
  • Библиотека даты и времени ускорения (C ++)
  • Библиотека Boost Chrono (C ++)
  • Библиотека даты и времени Chronos (Smalltalk)
  • Joda Time , Библиотека даты и времени Joda (Java)
  • Проект Perl DateTime (Perl)
  • дата: Документация стандартной библиотеки Ruby (Ruby)