Also, um das mal zu erklären:
Der PowerMac G5 ist in 4 Temperaturzonen eingeteilt, die mit verschiedenen Verfahren gekühlt werden und von insgesamt 8 bis 10 Temperatursensoren überwacht werden.
Das Netzteil wird überhaupt nicht überwacht, sondern mit zwei fest eingestellten Lüftern gekühlt. Darum muss sich das System nicht kümmern.
Der Laufwerksschacht wird nach dem einfachen Prinzip gekühlt, das Flo schon genannt hat: Es gibt einen Temperatursensor und "wenn's zu heiß wird", dann wird der Lüfter etwas höher gedreht. Konkret ist es so, dass der Laufwerkslüfter immer mit 1000 UPM läuft, aber sobald es im Schacht wärmer als 32 Grad wird, dann wird der Lüfter linear stärker beschleunigt, bei 34,5 Grad z.B. auf 1150 UPM.
Die Kühlung des AGP/PCI-Kartenschachtes verfolgt die gleiche Grundidee, hat allerdings das große Problem, dass man dort nicht mit Temperatursensoren arbeiten kann: Man weiß nicht, welche Karten der Benutzer einbauen wird, welche Form sie haben, wie die Luft um sie herum strömen wird und wo man dann am besten den Sensor platziert. Deshalb ist es hier so, dass Mac OS X Spannung und Strom in den Kartensteckplätzen misst, daraus die momentane Leistungsaufnahme der Karten berechnet (U * I) und daraus dann einen Sollwert für den Kartenlüfter berechnet. Also nach dem Motto "bei 30 Watt Leistung muss ich soundsoviel kühlen".
Die Sache wird noch komplizierter, wenn eine der größeren nVidia-Karten eingebaut wird, die haben nämlich eigene Temperatursensoren und eigene Lüfter. In dem Fall verrechnet Mac OS X beide Messungen nach gewissen Daumenregeln.
Nun zu der Sache, die Apple immer wieder Probleme macht, nämlich die Kühlung der Prozessoren: Das Problem ist, dass die Prozessoren ganz extreme Last- und Temperaturwechsel erzeugen. Im Millisekundenbereich kann die aufgenommene Leistung von 1 Watt auf über 2 x 50 Watt steigen. Diese Wärmeenergie muss schnell abgeführt werden. Das Problem ist, dass durch die riesigen Kühlbleche und das eventuell vorhandene Flüssigkühlsystem die Temperaturmessung im Gehäuse viel zu stark verzögert wäre, um korrekt darauf zu reagieren. Möglicherweise hat sich ein Prozessor schon längst selbst zerstört, bevor der äußere Sensor merkt, dass es zu warm war.
Es gibt dazu weitere Temperatursensoren auf den CPU-Chips selbst. Diese wiederum reagieren jedoch viel zu schnell. Würde man damit direkt die Lüfter steuern, würde es ein ständiges "Hoch- und Runterjaulen" der 4 CPU-Lüfter geben. Aus diesem Grund verwendet Apple ein bekanntes Verfahren aus der Regelungstechnik, das versucht, eine möglichst "weiche" Anpassung der Lüfterdrehzahlen zu berechnen, die ein so leises Ergebnis wie möglich liefert.
Die verwendete Technik nennt sich PID-Regelverfahren (Proportional/Integral/Derivative Control), wo mit Hilfe von Differenzial- und Integralrechnung ein gleichmäßiges Steuerverhalten mit Nachstell- und Vorhaltezeiten berechnet wird. Die Temperatur wird langfristig beobachtet und geht eher indirekt als Kontrolle des Antwortverhaltens des Regelkreises ein.
Das Verfahren ist mathematisch nicht so schwer, wie es sich vielleicht anhört, aber es ist auch nicht ganz so einfach zu programmieren, besonders da man das ja im innersten Systemkern von Mac OS X einbauen muss. Hinzu kommt, dass es 4 verschiedene Baureihen von G5-Prozessoren gibt, die mit unterschiedlichen Stellparametern behandelt werden müssen. Damit hat Apple offensichtlich immer noch Probleme. Auch in 10.4.4 scheint es für die ersten beiden Generationen der Power Mac G5-Systeme immer noch nicht richtig zu funktionieren. Bei bestimmten Lastwechseln neigt die Steuerung zum Überschwingen, was sich als kurzes Aufheulen der Prozessorlüfter äußert.
Mich würde auch interessieren, ob immer alle Lüfter im Verhältnis die gleiche Drehzahl zueinander haben.
Nein, die Lüfter werden alle einzeln anhand der Sensoren in den verschiedenen Wärmezonen und den gerade genannten Verfahren gesteuert. Ein festes Verhältnis gibt es nur für das Lüfter-Paar, das jeweils eine G5-CPU kühlt. Hier hat nämlich jede CPU einen Ansaug- und einen Ausblas-Ventilator. Im Moment erzeugt Mac OS X im Prozessorlufttunnel dazwischen sozusagen "3 % Unterdruck", indem nämlich der Ansauglüfter immer mit 97% der Drehzahl des Ausblaslüfters arbeitet. Das Lüfterpaar an sich wird aber unabhängig von allen anderen über die Messdaten des zugehörigen Prozessors geregelt.