Irgendwie haut mich dieses von einem Freund empfohlene Buch voll aus dem Konzept. Hier steht http://openbook.galileocomputing.de/c_von_a_bis_z/014_c_dyn_speicherverwaltung_001.htm#mj8d062301d2449b13710f1484d499cd9b dass die Variablen in einen Datenspeicher kommen und der Programmcode in den Hauptspeicher. Stimmt dat aber soo?? Ich dachte immer die Daten (Variablen) kommen in den Hauptspeicher und die Maschinenbefehle kommen in den Prozessor, nur vorher stehen sie in der HDD und nicht im Hauptspeicher. Kann mich da wer aufklären??
:
Verschoben durch Moderator
Samikukus schrieb: > Ich dachte immer die Daten (Variablen) kommen in den Hauptspeicher und > die Maschinenbefehle kommen in den Prozessor, Der Prozessor kann aber typischerweise nur sehr wenige Befehle speichern. Jeden Befehl einzeln von der HDD laden wäre extrem langsam, und daher... werden sie im Hauptspeicher zwischengespeichert (und evtl. diverse Caches dazwischen), typischerweise in Form des gesamten Programms. Genau wie die Variablen - der "Datenspeicher" von dem du sprichst ist ebenfalls der Hauptspeicher... Tatsächlich könntest du einfach in eine Variable ein paar Instruktionen speichern und den Prozessor anweisen diese auszuführen. Da das aber genau das ist was Viren machen sorgen diverse Mechanismen im OS und im Prozessor dafür dass das nicht (so einfach) geht. Wenn du das Betriebssystem anweist ein Programm zu starten, kopiert das OS den Code des Programms in den RAM, kopiert die Initialwerte der Variablen ebenfalls dahin, und weist den Prozessor an den Code im RAM auszuführen. Im Endeffekt kommt alles von der HDD oder CD oder Floppy oder... aber während der Ausführung wird es (normalerweise) im RAM gehalten. Bei Mikrocontrollern sieht es oft etwas anders aus, da viele einen eigenen Speicher für das Programm haben (in Form von Flash), und jede Instruktion einzeln direkt von da geladen wird (was aufgrund der hohen Geschwindigkeit vom Flash und der relativ geringen des Prozessorkerns möglich wird). Bei einigen (zB ARM) gehört der Flash aber zum Hauptspeicher dazu, und man kann auch Code in den RAM speichern und wie oben beschrieben direkt von dort ausführen, es existiert somit aus Sicht des Prozessors kein Unterschied zwischen den beiden Speichern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.