macOS-Interna: Planung, Timing und Ausführung von Time-Machine-Backups und anderen Hintergrundaufgaben
In Computern laufen erheblich mehr Prozesse ab als nur jene, die sich auf dem Display manifestieren. Macs und Geräte anderer Hersteller sind im Hintergrund permanent mit Aufgaben beschäftigt, deren Zahl üblicherweise in die Hunderte geht. macOS stellt mit der Aktivitätsanzeige ein spezielle App bereit, welche diese sichtbar macht und die Inanspruchnahme der Ressourcen wie CPU und Speicher offenbart. Das Betriebssystem wacht als oberste Instanz über all diese Abläufe, weist Prozessen ihre Prioritäten zu und steuert zudem die Zeiten, während derer sie ausgeführt werden dürfen. Dabei berücksichtigt macOS die Bedürfnisse laufender Anwendungen sowie die Aktivitäten des Nutzers.
DAS und CTS steuern geplante Time-Machine-BackupsHoward Oakley hat jetzt am Beispiel der automatischen Time-Machine-Backups analysiert, wie macOS bei der Zeitplanung von Hintergrundaufgaben vorgeht. Zuständig dafür sind der Duet Activity Scheduler (DAS) und das Centralized Task Scheduling (CTS), welche seit OS X Yosemite (10.10) in Apples Betriebssystem zu finden sind. Der Entwickler nutzte für die Untersuchung seine eigene kostenlose App namens Mints, mit der sich Log-Dateien gezielt auswerten lassen, in diesem Fall also das DAS-Protokoll.
Ausführung erst nach Überschreiten eines SchwellenwertsDAS greift auf eine interne Datenbank zurück, in der alle geplanten Hintergrundaktivitäten verzeichnet sind. Im Abstand von wenigen Sekunden geht der Scheduler diese Liste durch und berechnet einen Wert für in Kürze anstehende Aufgaben. Die Kalkulation erfolgt unter Einbeziehung einer Reihe weiterer Informationen, beispielsweise aktueller Aktivitäten von Apps und Betriebssystem, Systemtemperatur und derzeitiger Priorisierungen. Überschreitet der ermittelte Wert eine bestimmte Schwelle, sind die Voraussetzungen für Ausführung des geplanten Prozesses erfüllt. DAS erteilt CTS dann den Auftrag, die Aufgabe zu starten, also etwa das automatische Time-Machine-Backup.
Sicherungsvorgänge werden im Voraus geplantDAS und CTS kommunizieren laut Oakleys
Blogbeitrag nach dem Anstoßen noch mehrfach miteinander. Bemerkenswert ist dabei, dass der Duet Activity Scheduler unmittelbar nach dem Start des Backups im Log dessen erfolgreichen Abschluss vermerkt. Nur Millisekunden später weist er das Centralized Task Scheduling an, den nächsten Sicherungsvorgang zu planen. Die Ursache für dieses auf den ersten Blick verwirrende Vorgehen: Der angestoßene Prozess backupd-auto ruft lediglich die Time-Machine-App im Hintergrund auf, die eigentliche Sicherung wird dann von backupd-helper und backupd erledigt, ohne dass diese im Vordergrund sichtbar sind.
Apple Silicon: Automatische Backups stets auf EffizienzkernenDem Duet Activity Scheduler kommt darüber hinaus eine weitere Verantwortung zu. Er berücksichtigt bei seinen Berechnungen stets den für Time Machine vorgesehenen Quality of Service (QoS). Auf Macs mit Apple Silicon führt das dazu, dass die Backup-Prozesse immer auf den Effizienzkernen ablaufen. Nur wenn genügend Ressourcen zur Verfügung stehen und ein Thread von Time Machine das unbedingt erfordert, kommen die gerade verfügbaren Performance Cores zum Einsatz. Auf Intel-Macs findet dieses Verfahren naturgemäß keine Verwendung. Hintergrundprozesse unterliegen darüber hinaus einer weiteren Einschränkung, um vordringlichen Aufgabe nicht ins Gehege zu kommen: macOS begrenzt die Transferraten, die ihnen für Schreibvorgänge auf die SSD zur Verfügung stehen. All diese Maßnahmen führen dazu, dass automatische Time-Machine-Backups und andere geplante Hintergrundprozesse den Mac nicht ausbremsen.