Zitat Zitat von BeyondTheTruth
aber was passiert denn, wenn ich wieder RAM freigebe? Ich hab mir das so vorgestellt, dass dann eben ein ein Maschinenbefehl durchgeführt wird der das löscht, was an entsprechender Stelle im Speicher steht (eben sowas wie ein "Delete") oder wird das, was da drinsteht tatsächlich nur freigegeben und quasi überschrieben, wenn ein neuer Prozess auf diesen Bereich des Hauptspeichers zugreift?
Exakt.
Deswegen ist es in C zum Beispiel wichtig Variablen mit dem Programmierer bekannten Werten zu initialisieren da sie andernfalls den Wert haben, der vorher da im Speicher stand an dem jetzt die Variable ist. Das kann "lustige" Ergebnisse haben.

Zitat Zitat von jeeeeez!
Es ist so: Der Prozessor hat einfach nur den RAM und seinen internen Speicher (Cache und Register, allerdings wird auf den Cache nicht direkt zugegriffen). Was im RAM ist ist dem Prozessor egal und mit Dingen wie diskreten Speicherbereichen kann er gar nichts anfangen; das ist eine Sache, die auf Betriebssystemebene und höher stattfindet. Der Prozessor kennt lediglich Befehle, die aus einer bestimmten Speicherzelle etwas in ein Register laden (LOAD) und welche, die etwas in den RAM schreiben (STORE). Das ist alles, was der Prozessor in Bezug auf den Speicher können muß. Welchem Prozeß ein Speicherbereich gehört weil der Prozessor nicht - er weiß nicht mal, was ein Prozeß ist. Er arbeitet stumpf sein Programm ab.
Mmh. Wobei hier die Frage aufkommt, ob wir unserem Prozessor nicht schon "hardware*"-seitiges Multitasking und damit verbunden auch Speicherschutz beibringen könnten.

* Damit meine ich natürlich unsere virtuelle Prozessorhardware.