Speicherverwaltung Flashcards
Erklären Sie die Funktionsweise des Speichers.
Der Speicher kann boolsche Ausdrücke auf o-n Adressen speichern. Ein speicherungsautomat liest durch eine speziele “lese-Schaltung” m[a] an der adresse a einen Ausdruck danach wird a um eins erhöht, eventuell wird eine Operation ausgeführt (in adresse gespeichert) danach wiederholt sich der Vorgang.
Erklären Sie die grundlegende Rechnerarchitektur.
Die grundlegende Rechnerarchitektur besteht aus einem Speicher und einem Speicherungsautomaten. Der Speicher kann boolsche Ausdrücke verarbieten und der Speicherungsautomaten diese lesen und überabeiten. Die meisten Rechner verfügen noch über eine CPU (Central Processing Unit) das “Gehirn” des Rechners.
Beschreiben Sie den Maschinencode und den Zusammenhang zu Assembler.
Maschinencode sind binär Ausrücke die von der CPU ausgeführt werden sollen. Sie sind Anweisungen, die einer bestimmten Operation auf hardware ebene entsprechen.
Z.b. (m(a)= m(y)+m(z) oder m(a)=m(z). Um die programierung zu erleichtern wird der Machincode durch textbasiertem Assembly-code repräsentiert. Dieser wird duch den Assembler (Hardware) in Masch.code umgewandelt.
Erklären Sie das Rechnermodell nach Von-Neumann.
Ein V.-N. Rechner besteht aus 4 hauptelementen:
1. Prozessor
2. Speicher, der Programmcode und Daten zusammen speichert.
3. Ein- und Ausgabegerät(Tastattur, Bildschirm etc.)
4. Datenbus der die Teile 1. mit 2./3.verbindet
Aufbau und Funktion Datenbus
Ein Datenbus ist ein elektronischer Kanal der bidirektionale übertragungen von binär-Daten zwischen Hardware komponenten ermöglicht.
Neben dem reinen Datenbus gibt es oft auch einen Adressbus, der die Zieladresse für den Datenzugriff angibt, sowie Steuerbus, welcher daten lesen und schreiben kann.
Aufbau und Funktion Arbeitsspeicher
Der Arbeitsspeicher auch RAM (Random Access Memory) ist ein flüchtiges Speichersystem für schnellen zugriff auf Daten im laufenden Betrieb. Es besteht aus einer Sequenz von 8bit speicherzellen mit einer eindeutigen Addresse. Der Prozesser kontrolliert lese- und Schreibmodus über Bussystem.
Aufbau und Funktion Prozessors
Die CPU (Central Processing Unit) besteht aus einer CU (Control Unit) ,verantwortlich für Befehlsausführung und einer ALU (Arithmetic Logic Unit), welche math. Grundoperationen wie Adition oder bool. Operation ausführt.
Sie verfügt über Register die Daten temporär speichern und cache’s, welche auf versch. Ebenen (1-3) teile des Speichers kopieren und somit den zugriff auf häufig verwendete Daten erleichtern.
Erklären Sie das Speichermodell. (für Programme)
EIn Programm verwaltet drei Speicher. Einmal wird der Code nach der Kompelierung in Maschinencode gespeichert (statisch, kein Zugriff). Die Daten (Variablen, Paramter, Pointer etc.) des Programms werden entweder im Heap dynamisch oder im Stack statisch gespeichert.
Unterschiede zwischen Heap und Stack.
Heap :
-dynamische Speicherallokation genutzt (Verwaltung während Laufzeit).
-Gespeicherte Daten bleiben über Laufzeit hinweg erhalten
-Verwendung von Daten global (funktionenübergreifend)
<=> Stack:
-Automatische Speicherung nach Kompilierung (statisch, kein Zugriff) in “Stack Frames”
-LIFO-Prinzip (Last-In-First-Out), zuletzt alloziert -> zuerst dealoziert
-Deallokation nach Beendigung
Eigenschaften der Parameterübergabe durch Call by Value
- Übergabe von Paramtern anhand deren Werte
- Übergabe durch Kopien –> Keine Veränderung der Originaldaten
=> sinvoll bei einfachen Daten -> ineffizent bei komplexen und vielen Daten
Was sind Pointer (Zeiger)?
- Pointer werden verwendet um die Adressen von Daten im Speicher zu referenzieren (zahl *pointerZahl)
- Sie können Paramter an Funktionen über deren Adresse nach Dereferenzierung
(wert =*pointerZahl) übergeben
(Call by Reference). - spez. Pointer ‘nullptr’ zeigt ins Nichts
Eigenschaften der Parameterübergabe durch Call by Reference
- Übergabe von Daten anhand derer Adressen
- Verwendung von Pointern oder Referenzoperator ‘&’
- direkter Zugriff auf Originaldaten (keine Kopie -> Verwendung vom ‘const’ um veränderung zu verhindern
Eigenschaften von Arrays (statisch und dynamisch)
Arrays sind Datenstrukturen die n Daten des gleichen Typs speichern. Sie besitzen n-1 Indexe, welche die Positionen der Element angeben. In dynamischen Arrays kann während der Laufzeit die Größe verändert werden.
Was ist dynamische speicherung?
Dynamische Speicherung ermöglicht den Zugriff auf speicher während der Lauftzeit eines Programms
Beziehung von Pointern und Arrays.
Mit Pointer können Adressen einzelner Elemente des Arrays übergeben bzw. zugegriffen werden.
Dies kann für die Erstellung eines dynamischen Arrays verwendet werden.