¿Puede un sistema operativo dormir?

La CPU siempre está funcionando. Cuando pones tu computadora en suspensión, todo se apaga excepto:

  1. La CPU está en un estado de mínima potencia.
  2. La RAM conserva el estado de su sistema operativo antes de apagarse

Para despertarse del modo de suspensión, el sistema operativo (a través de la CPU) espera la finalización de una cuenta regresiva del sistema o una señal de interrupción para activar el sistema operativo. Es por eso que la CPU debe permanecer encendida, aunque sea mínimamente.

Así que seguro, el sistema operativo está haciendo “que la CPU descanse por un tiempo”, como usted dice. Excepto que está descansando con un ojo abierto 😉

Nota: Originalmente había escrito “Para despertar de la hibernación / sueño”, pero como se puede ver en un comentario sobre esta respuesta, Atila Sukosd corrigió mi error. ¡Gracias, señor Sukosd!

El núcleo puede dormir, y la mayoría de los procesadores tienen una instrucción de detención que los detiene en un estado de baja potencia hasta recibir una interrupción. x86 Linux llama a HLT cuando no tiene nada que hacer a menos que esté deshabilitado para evitar un error del procesador.

Históricamente, los núcleos usaban interrupciones de temporizador fijas (1000Hz para Linux) que limitaban cuánto tiempo podía dormir la CPU, aunque muchos (incluido Linux) ahora usan un enfoque “sin tic” donde duermen hasta el próximo evento programado o la interrupción que ocurra antes de eso.