Wieso hilft ein PC-Neustart so oft?
Wenn man mal Headset-Probleme oder so hat, startet man seinen PC neu und es funktioniert wieder alles, aber wieso?
Welche Fehler gab es da im Pc? Was passiert da im Hintergrund?
4 Antworten
Sachen hängen sich auf oder ein Fehler passiert. Dieser Fehler bleibt oft aber nur im Arbeitsspeicher und wird nicht fest gespeichert. Wenn man nun den PC neustartet, wird der Arbeitsspeicher neu gefüllt und der Fehler wird meistens einfach nicht mehr mit geladen und ist dann weg.
Aber wenn der fest Programmierte code halt schlechter code ist oder für Sachen genutzt wird, für die er nicht genutzt werden soll, dann passieren auch unerwartete Sachen.
Das kann auch unbewusst passieren. Wenn in deinem Betriebssystem code ist, der nicht genau dafür geschrieben wurde, dann passiert sowas auch ohne, dass man überhaupt was macht. Ist nicht der regelfall, aber passiert.
Wieso sollte automatisch ein Code genutzt werden, der eigentlich nicht dafür da ist? Wer entscheidet, wann man welchen Code benutzt? Ich dachte das wäre auch fest programmiert.
Wenn ein Programmierer wie ich ist (was hin und wieder vorkommt), dann codet er nicht seinen kompletten Code selbst, sondern schreibt nur das Grundgerüst und ergänzt es mit Code aus dem Internet. Am ende kommt dann ein wild zusammengesetzter Code raus, der das macht, was er soll, aber nicht mehr und nicht immer.
In diesem Fall wird also Code genutzt, der nicht dafür da ist, wo er am ende eingesetzt wird. Das passiert nicht automatisch, aber der Code wird dann trotzdem benutzt und ist instabil.
Das war jetzt nur ein Beispiel und es gibt viele wege, wie Code instabil werden kann, aber es passiert halt.
Die meisten Fehler passieren weil Programme die falschen Adressen im Speicher aufrufen. Normalerweise legen Programme einen Rücksprung Stack an damit sie aus einer Suproutine wieder zurückkommen können. Das kann aus verschiedene Gründen auch schief gehen. Dann verläuft sich das Programm im Speicher und es kommt zu Abstürzen, einfrieren und anderen Fehlern.
Auch die Art der Programmierung ist da ein Grund. Micosoft hat irgendwann mal eingeführt das das Betriebssystem den Speicher für ein Programm festlegt.
Werden Speicheradressen auf Grund falscher Programmierung oder eines Stackfehlers dirkt angesprungen kommt es zu einem fatalen Fehler.
Nach einem Neustart wird alles wieder frisch geladen und die Stack neu geschrieben.
Handelt es sich nicht um einen grundsätzlichen Fehler in der Progammierung kann ein Programm danach wieder funktionieren.
Auch veraltet Liberys mit falschen Sprungadressen bzw. Programmaufrufen können solche Fehler verursachen.
Darum ist der Fehler mit einem neuen Treiber oder einer neuen Programmversion dann meist behoben.
Irgend ein Tool oder Software klinkt sich bildlich gesehen in der Audiofunktion ein und gibt das Signal aufgrund eines Prioritätsfehlers oder Portfreigabe nicht weiter an das System.
Meine Tochter hatte das mal mit einem Stimmverzerrer Tool. Seit Installation hatte sie Probleme, das ihr Headset dann das Mikrofon "stummte". Nach einem Neustart war es wieder ok.
Selbst eine DE-Installation brachte dauerhaft keinen Erfolg, so tief war es im System drin.
Zum Glück mach ich monatliche Images der WINDOWS-Installation, das letzte Image zurück gesichert und WINDOWS lief wieder sauber, wie gewohnt.
Nach einem Neustart werden alle Programme erneut gestartet. Der Inhalt vom RAM wird komplett gelöscht und durch den erneuten Start wieder beschrieben. Auch andere Ressourcen, die z.B. mit der Hardware zusammenhängen, werden wieder freigegeben.
Mit dem Laufe der Zeit kann es sein, dass Programm nicht exakt das gemacht, was es sollte. So wurde z.B. ein Wert im RAM nicht bzw. falsch verändert oder ein Gerät wurde nicht wieder freigegeben.
Auch duch die Hardware kann sich ein Bit im RAM verändern (Bit Flip). Unter gewissen Umständen kann es auch eine große Auswirkung haben.
Nach einem Neustart ist alles wieder im kontrollierten Zustand. Das Programm erwartet die Werte und kann damit arbeiten.
Wie kann eigentlich ein Fehler passieren? Es ist doch alles fest programmiert oder nicht?