/* Dit is de mem_alloc.h file zoals beloofd in de practicumhandleiding */ /* */ /* Auteur: Dick van Albada */ /* Faculteit Wiskunde en Informatica */ /* Universiteit van Amsterdam */ /* Datum: 5 oktober 1993 */ /* Versie: 0.01 */ /* */ /* Constanten */ #define MEM_SIZE (32768) /* Procedures */ void mem_init(long mem[MEM_SIZE]); /* mem_init wordt aangeroepen voor enige andere procedure uit deze file wordt gebruikt. Hij initialseert de memory-manager en zorgt ervoor dat het te beheren geheugen daar bekend is */ long mem_get(long request); /* mem_get alloceert een stuk geheugen ter grootte van request - indien mogelijk en geeft de index van het eerste element van dat stuk geheugen terug. Indien de aanvraag niet gehonoreerd kan worden, wordt -1 teruggegeven */ void mem_free(long index); /* mem_free wordt aangeroepen om een eerder verkregen stuk geheugen op locatie index weer vrij te geven. Index moet een geldige waarde hebben */ double mem_internal(); /* mem_internal berekent de fractie interne fragmentatie volgens de in de handleiding gegeven formule */ void mem_available(long *empty, long *large, long *n_holes); /* mem_available vertelt de gebruiker hoeveel geheugen er nog beschikbaar is empty: totale hoeveelheid vrije ruimte large: omvang van het grootste gat, gecorrigeerd voor administratie n_holes: het aantal gaten */ void mem_exit(); /* mem_exit wordt alleen als laatste routine aangeroepen en beeindigt het gebruik van de memory manager. Deze routine zorgt zonodig voor opruimen en afronden. */