Maschinencode in den Hauptspeicher und Daten in den Datenspeicher HEH?

Gast #3238770
Lesenswert?
• ▲
▼
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??
Gast #3238817
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.