¿Cómo entiende una computadora el concepto de tiempo?

Las computadoras implementan el tiempo del reloj de pared principalmente utilizando una serie de vibraciones de un cristal de cuarzo por segundo. Un chip (generalmente uno separado de la CPU con una fuente de alimentación de respaldo como un reloj digital) los cuenta y obtiene un número, que la computadora usa.

El tiempo generalmente se mantiene en lo que se llama Código de tiempo universal (UTC). Esto representa el concepto de una sola vez en todo el mundo. Es un poco bugaboo porque, debido a la velocidad de la luz, puede apagarse en una fracción considerable de segundo, pero está bastante bien, ya que solo es preciso en un segundo.

Internamente, la hora y la fecha del reloj de pared se representan con referencia a una fecha particular en la historia reciente. Los diferentes sistemas tienen fechas de referencia diferentes, pero generalmente es un tiempo en las épocas Hippie o Disco. Las conversiones a UTC generalmente se manejan automáticamente, pero eso no solía ser el caso, causando muchos dolores de cabeza. Muchas personas que no fueron lo suficientemente cuidadosas como para usar enteros de 32 bits sin firmar en UNIX se sentirán realmente avergonzados en 2038, suponiendo que ellos y su software todavía estén presentes.

Los cristales de cuarzo en estos chips se desplazan y son sensibles a la temperatura, de los cuales puede haber mucho en una computadora. Por lo tanto, con frecuencia se sincronizan con los servicios de red, que en su mayoría obtienen tiempos de estándares como WWV, que generalmente se reducen a un reloj atómico. La sincronización causa el problema de que, ocasionalmente, es posible retroceder en el tiempo. Esto no tiene mucho efecto en la mayoría de las aplicaciones ejecutadas por personas, pero puede ser un verdadero problema en las bases de datos que usan el seguimiento de fechas.

UTC puede representar la hora como la hora media de Greenwich (hora zulú) o como una hora local con un desplazamiento de la hora media de Greenwich, que es en horas y minutos. Esto representa aproximadamente la mitad de la información que necesita para las zonas horarias, de una manera simple que permite el cálculo fácil para otra zona horaria.

Sin embargo, no funciona. Falla en el caso del horario de verano. No trata, por ejemplo, el hecho de que aproximadamente la mitad de Indiana hace el horario de verano, y la otra mitad no, calificándola despectivamente de “tiempo rápido”. (Viví en Indiana durante unos meses, así que lo sé. A los hoosiers no les gusta nada que se mueva más rápido que los cultivos. Es bastante terapéutico si te estás recuperando de un trauma, como yo).

Entonces, hay un mecanismo separado para lidiar con esto, generalmente basado en la ciudad más cercana, que tampoco funciona, excepto que las personas pueden ser capacitadas para evitarlo. Todos estos son diferentes, y este es un dolor real en el tochus. (De hecho, estoy lidiando con uno ahora, y estoy escribiendo esto parcialmente para tener una perspectiva con la esperanza de que mi cerebro de alguna manera me presente una gran idea que siempre funcionará).

Para una mayor granularidad y precisión de un segundo, también hay un reloj del sistema, generalmente basado en un mecanismo completamente separado que la hora del reloj de pared. Esto representa segundos desde el inicio del sistema en “ticks”. La cantidad de tiempo que hay en una marca varía de un sistema a otro, pero son comunes 30 y 60 marcas por segundo. Solo recientemente se ha hecho posible en algunos sistemas preguntar directamente cuántos tics hay en un segundo. Antes de eso, la gente usaba constantes definidas la mayor parte del tiempo. El número puede disminuir en función de cómo se usa el procesador, aunque la mayoría de las máquinas modernas solucionan esto. Tampoco es bueno en varias máquinas, lo que puede dificultar el procesamiento paralelo.

Un concepto de tiempo que las computadoras no usan es el que usan los relojes de pared electromecánicos enchufables, que cuentan el número de ciclos en la energía. Las compañías de servicios públicos modifican la velocidad de sus alternadores para que, a la larga, esto sea mucho más preciso que un cristal de cuarzo. Sin embargo, algunos se han detenido, porque es muy difícil de hacer, y la mayoría de los relojes usan cristales de cuarzo de todos modos.

ETA: No voy a tratar de convencerte de “entender”, porque esa es una charla de hackers, y todos sabemos que no es literal.

No para estar en desacuerdo con Vijay, sino para complementar su respuesta, en las computadoras centrales no “entienden” el tiempo y definitivamente no el concepto del tiempo. En cambio, en términos prácticos, las computadoras mantienen un contador que se incrementa en función de los pulsos de un oscilador que generalmente, como explicó Vijay, es externo al microprocesador principal. Este oscilador es un componente eléctrico que tiene el propósito principal de generar un pulso con una frecuencia específica, que con el propósito de “mantener el tiempo”, generalmente se elige para corresponder a una fracción de segundo (generalmente en el rango de nanosegundos).

Dicho esto, el contador es solo un número que sigue aumentando con cada pulso del oscilador. Cualquier significado adicional solo se atribuye al contador en el software y, como tal, el concepto de tiempo solo tiene sentido para los seres humanos que usan la computadora.

Hay dos tipos de relojes en la computadora.

Reloj de tiempo real y reloj de software.

RTC es un reloj de energía de respaldo de batería. Funcionará incluso cuando la computadora esté apagada. Básicamente es un IC en la placa madre que se enfoca principalmente en la sincronización de procesos.

El reloj del sistema / reloj del software es controlado por el núcleo de un sistema operativo que se utiliza para configurar la tarea y el proceso. Es un emisor de señal digital que emite señales altas y bajas (binarias).

Fuente de la imagen: EngineersGarage | Creaciones inspiradoras

La comprensión es un concepto exclusivamente humano que no puede aplicarse a ninguna máquina o forma de vida a menos que esa máquina / forma de vida pueda comunicar su “comprensión” al humano.