En primer lugar, un pequeño descargo de responsabilidad. La computadora no puede ejecutar realmente simultáneamente más procesos (es decir, ejecutar programas) de los que tiene CPU / núcleos. Y fácilmente puede haber procesos más activos que eso. En tal situación, el sistema operativo está cambiando entre ellos, otorgándoles a su vez acceso a la CPU. Los procesos se cambian con tanta frecuencia que nosotros, los seres humanos, ni siquiera nos damos cuenta.
Entonces, ¿hay alguna diferencia entre la computadora que mide 1s con una precisión absoluta y espera 1ms para otorgarle acceso a la CPU a su proceso y la mide con una precisión de hasta 1ms? Yo diría que no hay ninguno.
Ahora, cómo se mide el tiempo. Hay un reloj de cuarzo en tiempo real que oscila con cierta frecuencia (> 1MHz). Se acompaña con un par de contadores programables. Estos contadores se incrementan con cada tic del reloj. Una vez que un contador alcanza un valor preprogramado, activa la CPU para ejecutar un pequeño procedimiento (interrupción de tiempo). Hay un contador que activa dicha interrupción de tiempo cada período fijo (por ejemplo, 4 ms). El sistema operativo utiliza estas interrupciones de tiempo para cambiar los procesos en ejecución y también para medir el tiempo real con la precisión de una interrupción de tiempo (es decir, 4 ms).
Cuando su programa le pide al sistema operativo que espere 1 segundo, puede suceder en cualquier lugar entre las dos interrupciones de tiempo consecutivas, y el sistema operativo puede activarse para continuar su programa con una de las interrupciones de tiempo. Significa que no puede esperar un tiempo con mayor precisión que la frecuencia de las interrupciones de tiempo (digamos 4 ms).
También hay un reloj de cuarzo en tiempo real que funciona todo el tiempo en su computadora. Puede desplazarse hasta 1 segundo por día. Para corregir esta deriva, puede sincronizarse periódicamente con una red mundial de relojes atómicos utilizando el llamado protocolo de tiempo de red (NTP). Esto generalmente garantiza que la precisión de su reloj local es de al menos 0,1s.
- ¿Cómo funcionan las máquinas virtuales?
- ¿Por qué el aprendizaje automático puede resolver el problema?
- ¿Por qué las computadoras no pueden ignorar el segundo salto que ocurrirá el 30 de junio de 2015?
- ¿Cuál es la diferencia entre global y $ GLOBAL en PHP?
- ¿Cuál podría ser un buen tema para una tesis de licenciatura en el campo de la ciencia cuantitativa?