stringtranslate.com

hora del sistema

comando de fecha de Unix

En informática y programación de computadoras , el tiempo del sistema representa la noción que tiene un sistema informático del paso del tiempo. En este sentido, el tiempo también incluye el paso de los días en el calendario .

El tiempo del sistema se mide mediante un reloj del sistema , que generalmente se implementa como un simple recuento del número de tics que han transcurrido desde una fecha de inicio arbitraria, llamada época . Por ejemplo, los sistemas compatibles con Unix y POSIX codifican la hora del sistema (" hora Unix ") como el número de segundos transcurridos desde el inicio de la época Unix el 1 de enero de 1970 a las 00:00:00 UT , con excepciones para los segundos intercalares . Los sistemas que implementan las versiones de 32 y 64 bits de la API de Windows , como Windows 9x y Windows NT , proporcionan la hora del sistema como SYSTEMTIME , representada como un valor de año/mes/día/hora/minuto/segundo/milisegundos. y FILETIME , representado como un recuento del número de tics de 100 nanosegundos desde el 1 de enero de 1601 a las 00:00:00 UT, según lo contado en el calendario gregoriano proléptico .

La hora del sistema se puede convertir en hora calendario , que es una forma más adecuada para la comprensión humana. Por ejemplo, el tiempo del sistema Unix 1 000 000 000 segundos desde el comienzo de la época se traduce en el tiempo del calendario 9 de septiembre de 2001 01:46:40 UT . Las subrutinas de la biblioteca que manejan dichas conversiones también pueden manejar ajustes de zonas horarias , horario de verano (DST), segundos intercalares y la configuración regional del usuario . Generalmente también se proporcionan rutinas de biblioteca que convierten las horas del calendario en horas del sistema.

Muchas implementaciones que actualmente almacenan los tiempos del sistema como valores enteros de 32 bits sufrirán el inminente problema del año 2038 . Estos valores de tiempo se desbordarán ("se quedarán sin bits") después del final de su período de tiempo del sistema, lo que provocará errores de software y hardware . Estos sistemas requerirán alguna forma de remediación, similar a los esfuerzos requeridos para resolver el problema anterior del año 2000 . Esto también será un problema potencialmente mucho mayor para los formatos de archivos de datos existentes que contienen marcas de tiempo del sistema almacenadas como valores de 32 bits.

Otras medidas de tiempo

Estrechamente relacionado con el tiempo del sistema está el tiempo de proceso , que es un recuento del tiempo total de CPU consumido por un proceso en ejecución . Puede dividirse en tiempo de CPU del usuario y del sistema , lo que representa el tiempo dedicado a ejecutar el código del usuario y el código del kernel del sistema , respectivamente. Los tiempos de proceso son un recuento de instrucciones de la CPU o ciclos de reloj y generalmente no tienen correlación directa con el tiempo de pared .

Los sistemas de archivos realizan un seguimiento de las horas en que se crean, modifican y/o se accede a los archivos almacenando marcas de tiempo en el bloque de control de archivos (o inodo ) de cada archivo y directorio .

Historia

La mayoría de las computadoras personales de primera generación no registraban fechas ni horas. Estos incluían sistemas que ejecutaban el sistema operativo CP/M , así como los primeros modelos de Apple II , BBC Micro y Commodore PET , entre otros. Había disponibles placas periféricas complementarias que incluían chips de reloj en tiempo real con batería de respaldo incorporada para IBM PC y XT , pero la IBM AT fue la primera PC ampliamente disponible que venía equipada con hardware de fecha/hora integrado en el sistema. tarjeta madre . Antes de la disponibilidad generalizada de las redes informáticas , la mayoría de los sistemas informáticos personales que rastreaban la hora del sistema lo hacían sólo con respecto a la hora local y no tenían en cuenta las diferentes zonas horarias .

Con la tecnología actual, la mayoría de las computadoras modernas mantienen un registro de la hora civil local, al igual que muchos otros dispositivos domésticos y personales, como videograbadoras , DVR , receptores de televisión por cable , PDA , buscapersonas , teléfonos móviles , máquinas de fax , contestadores telefónicos , cámaras , videocámaras , aires acondicionados centrales y hornos de microondas .

Los microcontroladores que operan dentro de sistemas integrados (como Raspberry Pi , Arduino y otros sistemas similares ) no siempre tienen hardware interno para realizar un seguimiento del tiempo. Muchos de estos sistemas de control funcionan sin conocimiento del tiempo externo. Aquellos que requieren dicha información generalmente inicializan su hora base al reiniciar obteniendo la hora actual de una fuente externa, como un servidor de hora o un reloj externo, o solicitando al usuario que ingrese manualmente la hora actual.

Implementación

El reloj del sistema generalmente se implementa como un temporizador de intervalos programable que interrumpe periódicamente la CPU, que luego comienza a ejecutar una rutina de servicio de interrupción del temporizador. Esta rutina generalmente agrega un tic al reloj del sistema (un contador simple) y maneja otras tareas periódicas de mantenimiento ( preemption , etc.) antes de regresar a la tarea que la CPU estaba ejecutando antes de la interrupción.

Recuperando la hora del sistema

Las siguientes tablas ilustran métodos para recuperar la hora del sistema en varios sistemas operativos , lenguajes de programación y aplicaciones . Los valores marcados con (*) dependen del sistema y pueden diferir entre implementaciones. Todas las fechas se dan como fechas del calendario gregoriano o proléptico gregoriano .

La resolución de la medición del tiempo de una implementación no implica la misma precisión de dichas mediciones. Por ejemplo, un sistema podría devolver la hora actual como un valor medido en microsegundos, pero en realidad sería capaz de discernir tics de reloj individuales con una frecuencia de sólo 100 Hz (10 ms).

Sistemas operativos

Lenguajes y aplicaciones de programación.

Ver también

Notas

  1. ^ ab La documentación para desarrolladores de Apple no es clara sobre la precisión y el rango de CFAbsoluteTime/CFTimeInterval, excepto en la documentación de CFRunLoopTimerCreate que se refiere a una precisión de 'submilisegundos como máximo'. Sin embargo, el tipo similar NSTimeInterval parece ser intercambiable y tiene la precisión y el rango enumerados.
  2. ^ abcd La biblioteca estándar de C no especifica ninguna resolución, época, rango o tipo de datos específicos para los valores de hora del sistema . La biblioteca C++ abarca la biblioteca C, por lo que utiliza la misma implementación de hora del sistema que C.

Referencias

  1. ^ Ralf D. Brown (2000). "Ent 0x1A, AH=0x00". Lista de interrupciones de Ralf Brown .
  2. ^ Ralf D. Brown (2000). "Ent 0x1A, AH=0x02". Lista de interrupciones de Ralf Brown .
  3. ^ Ralf D. Brown (2000). "Ent 0x1A, AH=0x04". Lista de interrupciones de Ralf Brown .
  4. ^ "Guía del sistema operativo CP/M Plus (CP/M versión 3.0)" (PDF) .
  5. ^ "Llamadas al sistema BDOS".
  6. ^ Ralf D. Brown (2000). "Ent 0x21, AH=0x2c". Lista de interrupciones de Ralf Brown .
  7. ^ Ralf D. Brown (2000). "Ent 0x21, AH=0x2a". Lista de interrupciones de Ralf Brown .
  8. ^ "Referencia de utilidades de tiempo". Biblioteca para desarrolladores de iOS . 2007.
  9. ^ "Referencia de utilidades de tiempo". Biblioteca para desarrolladores de Mac OS X. 2007.
  10. ^ ab "Utilidades del tiempo - Fundación". Documentación para desarrolladores de Apple . Consultado el 6 de julio de 2022 .
  11. ^ Ruth E. Goldenberg; Lawrence J. Kenah; Denise E. Dumas (1991). Componentes internos y estructuras de datos de VAX/VMS, versión 5.2. Prensa digital. ISBN 978-1555580599.
  12. ^ "¿Por qué el miércoles 17 de noviembre de 1858 es la hora base para OpenVMS (VAX VMS)?". Universidad Stanford . 24 de julio de 1997. Archivado desde el original el 24 de julio de 1997 . Consultado el 8 de enero de 2020 .
  13. ^ ab "Manual de referencia de la biblioteca VSI C Run-Time para sistemas OpenVMS" (PDF) . VSI. Noviembre 2020 . Consultado el 17 de abril de 2021 .
  14. ^ "OpenVMS y el año 2038". HP . Consultado el 17 de abril de 2021 .
  15. ^ ab z / Principios de funcionamiento de la arquitectura (PDF) . Poughkeepsie, Nueva York: International Business Machines. 2007.
  16. ^ IBM tiene la intención de ampliar el rango de fechas en sistemas futuros más allá de 2042. z/Architecture Principios de operación, (Poughkeepsie, Nueva York: International Business Machines, 2007) 1-15, 4-45 a 4-47.
  17. ^ "Valores de tiempo ampliados de 64 bits". IBM . Consultado el 18 de abril de 2021 .
  18. ^ Jonathan de Boyne Pollard. "El intérprete de comandos de 32 bits". En OS/2 Warp 4, la fecha y la hora pueden funcionar mucho más allá del año 2000, e incluso mucho más allá del año 2038, y de hecho hasta el año 2079, que es el límite para el reloj en tiempo real de OS/2 Warp 4. .
  19. ^ abc "Propiedad DateTime.Now". Documentos de Microsoft .
  20. ^ abc "Propiedad DateTime.UtcNow". Documentos de Microsoft .
  21. ^ abc "Propiedad DateTime.Ticks". Documentos de Microsoft .
  22. ^ "Soporte de fecha y hora". Red de desarrolladores de Embarcadero . 2013.
  23. ^ "System.SysUtils.Time". Red de desarrolladores de Embarcadero . 2013.
  24. ^ "System.SysUtils.GetTime". Red de desarrolladores de Embarcadero . 2013.
  25. ^ "System.SysUtils.Fecha". Red de desarrolladores de Embarcadero'. 2013.
  26. ^ "System.DateUtils.Hoy". Red de desarrolladores de Embarcadero . 2013.
  27. ^ "System.DateUtils.Mañana". Red de desarrolladores de Embarcadero . 2013.
  28. ^ "System.DateUtils.Ayer". Red de desarrolladores de Embarcadero . 2013.
  29. ^ "System.SysUtils.Ahora". Red de desarrolladores de Embarcadero . 2013.
  30. ^ "System.SysUtils.DayOfWeek". Red de desarrolladores de Embarcadero . 2013.
  31. ^ "System.SysUtils.CurrentYear". Red de desarrolladores de Embarcadero . 2013.
  32. ^ abc "Hora y corrección de tiempo en Erlang". www.erlang.org .
  33. ^ "XL2000: Las primeras fechas del componente de hoja de cálculo de Office difieren de las de Excel". Soporte de Microsoft . 2003. Archivado desde el original el 24 de octubre de 2007. En el componente de hoja de cálculo de Microsoft Office, el valor 0 se evalúa hasta la fecha 30 de diciembre de 1899 y el valor 1 se evalúa hasta el 31 de diciembre de 1899. ... En Excel, el valor 0 se evalúa al 0 de enero de 1900 y el valor 1 se evalúa al 1 de enero de 1900.
  34. ^ "SYSTEM_CLOCK". Guía y referencia para desarrolladores de Intel Fortran Compiler 19.0 . 29 de abril de 2019 . Consultado el 23 de julio de 2019 .
  35. ^ "SYSTEM_CLOCK - Función de tiempo". El compilador GNU Fortran . Consultado el 27 de octubre de 2011 .
  36. ^ ab "Método System.nanoTime()". Plataforma Java, edición estándar 6: especificación API . 2015 . Consultado el 23 de julio de 2019 .
  37. ^ "Clock.systemUTC() y otros métodos". Plataforma Java, edición estándar 8: especificación API . 2014 . Consultado el 15 de enero de 2015 .
  38. ^ "Sistema de tiempo Java JSR-310". Plataforma Java, edición estándar 8: especificación API . 2014 . Consultado el 15 de enero de 2015 .
  39. ^ "Ayuda de Matlab".
  40. ^ ab "NSTimeInterval - Fundación". Documentación para desarrolladores de Apple .
  41. ^ Douglas Wegscheild, R. Schertler y Jarkko Hietaniemi, "Tiempo :: HiRes". CPAN: red integral de archivos Perl . 2011 . Consultado el 27 de octubre de 2011 .
  42. ^ James Britt; Neurogami. "Clase de tiempo". Ruby-Doc.org: Ayuda y documentación para el lenguaje de programación Ruby . Scottsdale, Arizona . Consultado el 27 de octubre de 2011 .
  43. ^ Yugui (18 de agosto de 2010). "Se lanza Ruby 1.9.2". El nuevo 1.9.2 es casi compatible con 1.9.1, excepto estos cambios: ... Se reimplementa el tiempo. Se solucionó el error con el año 2038.
  44. ^ "Esquema MIT/GNU 9.2: 15.5 Fecha y hora".
  45. ^ "Uso del cmdlet Get-Date". Documentos de Microsoft . Consultado el 23 de julio de 2019 .
  46. ^ "Consejo de la semana de Windows PowerShell: formato de fechas y horas". Documentos de Microsoft . Consultado el 23 de julio de 2019 .

enlaces externos