Wie Funktioniert ein Wecker softwaretechnisch?
Eigenartige Frage aber wann weiß ein digitaler Wecker wann er zu "klingeln hat". Man gibt ja eine Zeit an wann er zu klingeln hat.
Eine Überlegung: Überprüft ein Stückchen Software wann die Angegebene Zeit der aktuellen Zeit exakt übereinstimmt Was theoretisch logisch wäre. Aber in meinen Augen auch irgendwie ineffizient klingt weil dann müsste durchgehend ein Skript laufen was Leistung (zwar nur minimal) beansprucht.
Funktionieren Wecker so oder lieg ich da falsch?
3 Antworten
Im Prinzip hast Du recht, aber da reicht eine Prüfung einmal pro Sekunde, was Du hinsichtlich der "Rechenlast" nicht wiederfinden wirst.
Je nach Wecker reicht sogar einmal pro Minute - die üblichen Radiowecker erlauben ja keine sekundengenaue Einstellung der Weckzeit. Da wird dann also nur geprüft, wenn die Anzeige umspringt.
Im übrigen gehst Du von einem komplett in Software realisierten Wecker aus. Da es sich bei einem Wecker aber um ein Standardprodukt handelt, das in genau dieser Form millionenfach gebraucht wird, kann ich mir gut vorstellen, dass es da auch Chips geben wird, in denen die Logik in Hardware verdrahtet ist. Das ist das Effizienteste, was man machen kann (dementsprechend gering der Energieverbrauch und auch die Herstellungskosten bei ausreichend großer Stückzahl). Diesen Steuerchip kannste dann in beliebige Gehäuse verbauen und damit optisch die verschiedensten Wecker mit den unterschiedlichsten Displays realisieren.
Das wäre eine boolescher Wert, also ein Wahrheitswert der im Hintergrund abgefragt wird.
Es wird also geguckt, ob der eine Wert mit dem anderen Wert übereinstimmt und dann wird WAHR oder FALSCH ausgegeben. Wenn wahr ausgegeben wird, klingelt der Wecker.
Also ja, so kann ein Wecker softwaretechnisch funktionieren. Eine solche Abfrage ist aber nicht wirklich leistungsintensiv und wird meist sowieso nicht mehr als 1x pro Sekunde oder gar Minute durchgeführt.
If (currenttime) = (wakeuptime)
play "Crazy Frog - Axel F"
Wie bereits gesagt wurde, wird ja nur 1x pro Sekunde geprüft und das zieht kaum Leistung.
Ja, nur meint er, dass Du ineffiziente 100% Rechenlast hast, wenn Du diese Abfrage als Endlosschleife laufen lässt, bis es irgendwann tatsächlich so weit ist.