Es gibt eine neue Option in der Einstellung des Energieverwaltungssystems, um "automatisch neu zu starten, wenn der Computer einfriert".
Wie funktioniert das genau?
Wie kann der Computer überprüfen, ob er eingefroren ist, wenn er, nun ja, eingefroren ist? Gibt es sonst noch etwas, das es zu diesem Zeitpunkt noch tun kann? Wird zum Beispiel ein Protokoll darüber geschrieben? Kann es immer noch Situationen geben, in denen es so eingefroren ist, dass es sich nicht selbst neu starten kann? Besteht die Gefahr eines versehentlichen Neustarts, wenn es nicht wirklich oder nur vorübergehend eingefroren ist? Dies passiert nicht, wenn sich eine einzelne Anwendung für Beachball entscheidet, oder?
Die Mac-Modelle, die dies unterstützen, haben einen sekundären Prozessor, unabhängig von der CPU (es ist der LOM auf Intel Xserves, SMC auf normalen Macs). Grundsätzlich kann der Sekundärprozessor einen Countdown-Timer einrichten und die CPU zurücksetzen (einen Neustart erzwingen), wenn der Zähler 0 erreicht. In der Zwischenzeit läuft ein Prozess in OS X (ursprünglich war es ein Programm namens Watchdog, aber ich denke, Launchd behandelt it now) setzt den Zähler periodisch zurück.
Wenn das Betriebssystem jemals so stark in Mitleidenschaft gezogen wird, dass launchd/watchdog/whatever den Zähler nicht innerhalb des Zeitlimits zurücksetzen kann, übernimmt LOM/SMC/etc und erzwingt einen Neustart.
Übrigens, in Bezug auf @TJ Luomas Kommentar zu Kernel-Paniken: Wenn eine Panik auftritt, ist das Betriebssystem im Grunde tot. Es gibt keine Möglichkeit für launchd, darüber benachrichtigt zu werden, da es zusammen mit allem anderen tot ist. Was passiert, ist, dass einige Informationen über die Panik in NVRAM gestopft werden (die überlebenden Fetzen des Betriebssystems können darauf zugreifen, ohne Treiber usw. zu benötigen, die alle in der Panik verschwunden sind). Nach dem Neustart wird das NVRAM überprüft und (falls zutreffend) wird sein Inhalt im Panikprotokoll gemeldet.
TJ Luoma
Thilo