Skip to content

Instantly share code, notes, and snippets.

@MaSven
Created January 24, 2016 22:18

Revisions

  1. Sven Marquardt created this gist Jan 24, 2016.
    29 changes: 29 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    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```