Skip to content

Instantly share code, notes, and snippets.

@MaSven
Created January 24, 2016 22:18
Show Gist options
  • Save MaSven/a7457f5d514e552f0bd5 to your computer and use it in GitHub Desktop.
Save MaSven/a7457f5d514e552f0bd5 to your computer and use it in GitHub Desktop.

Implementierung eines Dynamischen Speicher Getting started

Dieses Projekt ist eine Implementierung eines dynamischen Speichers. Es soll zeigen wie ein dynamischer Speicher in seinen grundzügen funktioniert.

Projekt

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.c Eigentlicher ablauf des Programms
  • memory.c Allokieren, Freigeben von Speicher kompaktierung
  • process_queue.c Wartende Prozesse
  • log.c Log ausgaben des Programms
  • loader.c Laden der Prozesse
  • bs_types.h Typen des das Betriebssystem
  • globals.h Globale Variablen

Starten des Programms

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment