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?
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.
TJ Luoma
tilo