Woher weiß der Computer welche Informationen sich auf dem RAM befinden?

4 Antworten

Die CPU weiß eigendlich gar nichts. Die ist im Grunde dumm.

Programme fragen das Betriebssystem welchen Speicherbereich sie benutzen dürfen. Das Betriebsystem schaut in seiner Liste (auch im RAM oder Auslagerungs Speicher) nach welcher Platz noch frei ist und teilt dem Programm Speicherbereich zu. Ausserdem merkt sich jetzt das Betriebssystem das dieser Speicher für das Programm reserviert ist. Das Program fängt nun an Daten in dem RAM zu laden und zählt die verwendeten Speicherstellen mit. Dadurch kann es genau berechnen wo was liegt. Das kann aber ein Programm nicht alleine. Den Rechnen kann nur die CPU. Also bittet das Programm die CPU diese Speicherstellen und alles was das Programm sonst noch macht zu berechnen. Die CPU ist also eigendlich ein Super Taschenrechner welcher aber ein Programm braucht das ihm sagt was er zu rechnen hat.

Woher ich das weiß:Berufserfahrung
nelli155 
Fragesteller
 31.07.2021, 13:59

Warum ist es denn dann für den PC schneller wenn er auf Informationen von dem RAM zugreift, wenn die CPU doch sowieso erst Informationen von der Festplatte braucht wo sich diese Informationen befinden (und danke für die ausführliche Antwort, die hat mir wirklich sehr geholfen)

0
tomgun  01.08.2021, 06:16
@nelli155

Weil bei einer herkömmlichen HDD erst der Kopf in die richtige Position fahren muss und wartem muss bis der Sektor vorbeisaust. Ein Speicher ist da um vieles schneller. Eine SSD kann da schon deutlich schneller die Daten bereitstellenm. Dennoch ist reiner RAM noch immer schneller. Irgendwann haben die SSD vielleicht den RAM eingeholt. Aber ein Unterschied bleibt: Die Daten auf einer SSD / HDD sind nicht flüchtig und stehen nach Neustart immer noch zur Verfügung. Und darum gibt es sie überhaubt. Es sind Massendatenspeicher. Reiner RAM wird nur zum kurzen Ablegen benötigt. Wenn genügend RAM vorhanden ist nutzt das Betriebssystem über "Superfaching" diesen voll. Dabei werden einmal geladenen Daten auch wenn sie nicht mehr benötigt werden im RAm belassen bis dieser von anderen Programmen benötigt wird. Ein Beispiel: Wenn du das erste Mal Word öffnest dauert es einem Moment bis es im Speicher ist und das Fenster aufgeht. Beendest du Word und öffnest es gleich wieder ist es sofort da weil es noch im RAM war.

0

Da kommt verschiedenes zusammen. Bezüglich Art der gespeicherten Daten werden auch Metainformationen im Arbeitsspeicher abgelegt, sodass der Verarbeiter weiß, was die Daten darstellen sollen. Oder das jeweilige Programm weiß von sich aus, wie es Daten zu interpretieren hat.

Was den Speicherort der Daten angeht verwendet das Betriebsystem zumeist die sogenannte Memory Management Unit (MMU). Wird auf eine Speicherstelle zugegriffen (mittels einer virtuellen Adresse), dann prüft die MMU, ob die Adresse im RAM liegt. Wenn ja, dann wird evtl. nocch Zugriffsrecht, etc. geprüft und die Daten werden zurückgegeben. Wenn nicht, dann wird eine Exception (hier ein Trap) ausgelöst, sprich, das Betriebssystem übernimmt die Kontrolle und lädt beispielsweise die Daten in den RAM, damit diese verwendet werden können.

nelli155 
Fragesteller
 31.07.2021, 14:05

Eine frage hätte ich da noch. Wer greift den auf Spreicherstellen (mittels einer virtuellen Adresse ) zu? Ist das das Betriebssystem?

1
Destranix  31.07.2021, 14:07
@nelli155

Die Programme, die auf der CPU laufen bzw. die, die unter dem Betriebssystem als Prozesse laufen und das Betriebssystem selbst.

1

Das weiß der Computer gar nicht. Das "weiß" der Programmcode, weil der Entwickler ihm das mehr oder minder eintrichtert.

Um das konzeptionell zu erklären:

Wenn ich Dir sage: Hier, leg die Papiere auf den Schreibtisch - dann mußt Du nichts über die Papiere wissen, noch wo sie liegen.

Denn ich sage Dir dann einfach: Hol die Papiere, die auf dem Schreibtisch liegen.

Ich glaube das alles befindet sich auf die Auslagerungsdateien bin mir aber da nicht sicher..

nelli155 
Fragesteller
 31.07.2021, 12:55

Danke, wo befinden sich denn diese Auslagerungsdateien?

0