Reiniciar automáticamente si la computadora se congela

Hay una nueva opción en la preferencia del sistema de administración de energía para "reiniciar automáticamente si la computadora se congela".

Como funciona esto exactamente?

¿Cómo puede comprobar la computadora que está congelada si está, bueno, congelada? ¿Hay algo más que todavía pueda hacer en ese punto? Por ejemplo, ¿habrá un registro escrito sobre esto? ¿Todavía puede haber situaciones en las que esté tan congelado que no pueda reiniciarse? ¿Hay peligro de reinicios accidentales cuando no está realmente congelado o solo temporalmente? Esto no sucede cuando una sola aplicación decide jugar a la pelota de playa, ¿verdad?

No sé cómo funciona "exactamente", pero no he visto que esto suceda cuando una sola aplicación se bloquea o cuando la computadora está "temporalmente" congelada. De hecho, en mi experiencia, la única vez que he visto que esto sucede es cuando la computadora ha sufrido un pánico en el kernel, no simplemente una "congelación" de la interfaz de usuario como normalmente se piensa. OS X ha sido capaz de registrar tal pánico durante bastante tiempo, por lo que supongo que hay algún proceso de alto nivel (¿iniciado?) Que espera una llamada de señal que indica un pánico y luego inicia un temporizador de reinicio similar a 'apagado -r X' donde X es un número de segundos.
He visto pantallas de "pánico del núcleo" antes (y luego también habría un archivo de registro). Entonces, ¿ahora es cuando puede reiniciarse automáticamente ahora? Y por el contrario, ¿no funcionará cuando haya un congelamiento sin el cuadro de alerta de "kernal panic"?

Respuestas (1)

Los modelos de Mac que admiten esto tienen un procesador secundario, independiente de la CPU (es el LOM en Intel Xserves, SMC en Mac normales). Básicamente, el procesador secundario puede configurar un temporizador de cuenta regresiva y restablecer la CPU (forzando un reinicio) si el contador llega a 0. Mientras tanto, un proceso que se ejecuta dentro de OS X (originalmente era un programa llamado perro guardián, pero creo que launchd maneja ahora) pone a cero el contador periódicamente.

Si alguna vez el sistema operativo se somete a la manguera lo suficiente como para que launchd/watchdog/lo que sea no reinicie el contador dentro del límite de tiempo, el LOM/SMC/etc toma el control y fuerza un reinicio.

Por cierto, con respecto al comentario de @TJ Luoma sobre los pánicos del kernel: cuando ocurre un pánico, el sistema operativo está básicamente muerto. No hay forma de que launchd sea notificado de esto, porque está muerto junto con todo lo demás. Lo que sucede es que parte de la información sobre el pánico se mete en la NVRAM (los fragmentos sobrevivientes del sistema operativo pueden acceder a eso sin necesidad de controladores, etc., todo lo cual desapareció en el pánico). Después de reiniciar, se verifica la NVRAM y (si corresponde) su contenido se informa en el registro de pánico.

Gracias, esa es una explicación mucho más clara de lo que he escuchado antes.