Table of Contents

Cvičení 11 : Uživatelský paměťový alokátor pro OS NOVA

Na tomto cvičení si zkusíte implementovat alokátor dynamické paměti, který bude využívat systémové volání brk z minulého cvičení.

Domácí příprava

Pro toto cvičení budete potřebovat:

Zadání úlohy

Implementujte jednoduchý alokátor paměti pro uživatelský prostor OS NOVA. Váš alokátor bude implementovat funkce my_malloc a my_free s následujícími prototypy:

extern "C" void *my_malloc(unsigned int size);
extern "C" int my_free(void *address);

Tyto dvě řádky vložte na začátek vašeho souboru user/mem_alloc.cc. extern “C” zajišťuje, aby funkce šla volat jak z programů v C+​+, tak v C.

Od alokátoru budou očekávány následující vlastnosti:

Nepovinně (pro plný počet bodů) budou navíc vyžadovány následující vlastnosti:

Co se odevzdává:
Archiv obsahující vaši implementaci v souboru user/mem_alloc.cc a soubor kern/src/ec_syscall.cc z minulého cvičení. Můžete ho vytvořit následující řádkou z kořenového adresáře NOVY (nebo si můžete upravit pravidlo hw11 v Makefilu):

zip hw11.zip kern/src/ec_syscall.cc user/mem_alloc.cc