Dieses Projekt ist eine Implementierung eines dynamischen Speichers. Es soll zeigen wie ein dynamischer Speicher in seinen grundzügen funktioniert.
Der Code wird als Visual Studio Projekt bereit gestellt. Eine version von Visual Studio 2013 oder höher wird unterstützt. Um es in die Entwicklungsumgebung einzupflegen muss nur die memory.suo Datei in Visual Studio geöffnet werden. Die Datei main.c ist dabei der einstiegspunkt in das Programm. Die eigentliche Logik des Programms befindet sich in core.c. Fertig erstellte .exe zum ausführen finden sich unter dem DEBUG bzw RELEASE Ordner. Getestet auf Windows 10.
core.cEigentlicher ablauf des Programmsmemory.cAllokieren, Freigeben von Speicher kompaktierungprocess_queue.cWartende Prozesselog.cLog ausgaben des Programmsloader.cLaden der Prozessebs_types.hTypen des das Betriebssystemglobals.hGlobale Variablen
Um das programm von Visual Studio aus zu starten, müssen sich alle .h dateien und .c dateien im selben Ordner befinden. Zusätzlich sollte sich eine Processes.txt im selben Ordner wie die der Source-Dateien enthalten sein. Diese muss wie folgt gegliedert werden, hierzu ein Beispiel.
#OwnerId start duration size type
00 00 1000 100 os
01 00 900 300 batch
02 00 300 150 background
03 00 800 300 interactive
04 100 400 200 foreground
Die unterstützen Prozessarten stehen hierfür in der bs_types.h als ProcessType_t. Leerzeichen müssen zwischen den einzelnen werten stehen. Um das Programm mit einer .exe zu öffnen, muss es von einer Kommandozeile geöffnet werden und eine Processes.txt sich im gleichen Ordner befinden oder ein Fester Pfad wird angegeben. Das Programm schreibt in den Standardoutput es kann also bei Bedarf umgelenkt werden. Um es von der Kommandozeile zu öffnen:
C:\Ordner\der\ memory.exe Pfad\zur\Processes.txt