Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RebornX JLI'ler

Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 22.03.2007, 15:44 Titel: Speicherbereiche? |
|
|
Hi, ehm ich habe mal ne Frage:
Also bis jetzt habe ich 3 Speicherbereiche kennengelernt:
Den Datenbereich, den Stack und den Heap.
Ich frage mich jetzt aber wo diese allen speicherbereiche liegen???
Liegen die alle auf der Festplatte oder auf dem Arbeitsspeichen??? |
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 22.03.2007, 15:51 Titel: |
|
|
Arbeitsspeicher natürlich
Datenbereich? |
|
Nach oben |
|
 |
DirectXer Dark JLI'ler

Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.03.2007, 16:40 Titel: |
|
|
Datenbereich (ich denke, du meinst damit der Ort an dem deine Variablen im Programm stehen) und Stack beziehen sich auf denselben Speicher. |
|
Nach oben |
|
 |
RebornX JLI'ler

Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 22.03.2007, 16:50 Titel: |
|
|
"Datenbereich" steht im Buch(Jetzt lerne ich Spieleprogrammierung mit DirectX) auf seite 152/7.7.1 |
|
Nach oben |
|
 |
DirectXer Dark JLI'ler

Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.03.2007, 16:52 Titel: |
|
|
jo, und damit ist genau das gemeint was ich geschrieben habe  |
|
Nach oben |
|
 |
RebornX JLI'ler

Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 22.03.2007, 16:54 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | ...beziehen sich auf denselben Speicher. |
Ehm Speicher?? Arbeitsspeicher oda Festplattenspeicher?
und wie siehts mit dem heap aus?? |
|
Nach oben |
|
 |
manu Super JLI'ler

Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 22.03.2007, 16:58 Titel: |
|
|
RebornX hat Folgendes geschrieben: | DirectXer hat Folgendes geschrieben: | ...beziehen sich auf denselben Speicher. |
Ehm Speicher?? Arbeitsspeicher oda Festplattenspeicher?
und wie siehts mit dem heap aus?? |
Wie schon gesagt, es wird ausschließlich im _Arbeitsspeicher_ gespeichert. Stack sowie heap befinden sich im Arbeitsspeicher. Auf die festplatte kommt nichts derartiges, da musst du selber dateien schreiben.
Und natürlich alles was windows in die Außlagerungsdatei schiebt kommt auf die Platte, aber das tut jetzt nichts zur Sache^^ |
|
Nach oben |
|
 |
DirectXer Dark JLI'ler

Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.03.2007, 17:08 Titel: |
|
|
also, mal zusammenfassend:
In deinem Computer ist der RAM (Random Access Memory), der Arbeitsspeicher. Dadrin sind der Stack und der Heap angesiedelt. Der Stack wird direkt durch den Stack Pointer unterstützt, der ein effizientes Zugreifen auf Daten des Stacks erlaubt. Wenn du in deinem Programm Variablen deklarierst wie z.B. dann wird für diese Variable Speicher auf dem Stack allokiert (=reserviert). Diese Allokation wird vom im Grunde vom Compiler eingeleitet, wenn er beim Kompilieren auf die Deklaration stößt. Der Speicher, der im Buch mit Datenbereich angesprochen wird, ist im Grunde eine allokierte Region auf dem Stack. Der RAM hat aber noch einen anderen Bereich, der mit Heap bezeichnet wird. Zugriff auf seine Daten ist etwas langsamer als auf Daten des Stacks durch den Stack Pointer. Dafür ist er aber dynamisch, d.h., dass während der Laufzeit deines Programms eine variierende Menge an Speicher auf ihm allokiert werden kann. Die Größe der Daten, die du also auf dem Heap allokieren willst, kann variabel sein, während die für den Stack schon vor Programmbegin (also in der Compilierzeit) feststehen muss.
Gruß DXer |
|
Nach oben |
|
 |
RebornX JLI'ler

Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 22.03.2007, 17:18 Titel: |
|
|
aha also wenn ich dann auf dem heap memory leaks verursache, heißt das das auf meinem ARBEITSSPEICHER speicher verloren geht und ich dann somit nicht mehr 512 sondern sagen wir 511mb ram habe???
Dann kann ich mia ja neuen arbeitsspeicher hohlen
edit//oder wird das nach jedem neustart resettet?? |
|
Nach oben |
|
 |
DirectXer Dark JLI'ler

Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.03.2007, 17:25 Titel: |
|
|
natürlich wird das nach jedem Neustart reseted! Manchmal sogar auch direkt nach dem Programm, bei security builds z.B., sollte man sich aber net drauf verlassen. |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 22.03.2007, 19:13 Titel: |
|
|
prinzipiell wird der speicher nur als "gerade in benutzung" markeirt, und zwar vom betriebssystem. Sonst wäre Multitasking doof, wenn auf einmal der speicher durcheinander käme, und ein programm den speicher vom andern einfach so mitbenutzt.
Deshalb macht das Betriebssystem diese Speicherverwaltung. Theoretisch könnte es halt dirket nach dme beendne des programmes dessen speicher direkt frei geben, inwieweit das welches OS macht weiß ich nicht. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
|