Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 1.1 KB

README.md

File metadata and controls

18 lines (14 loc) · 1.1 KB

Implementacja zarządcy pamięci w oparciu o system bliźniaków.

Realizacja zadania przez implementację następujących funkcji:

  • void *malloc(size_t size);
  • void free(void *ptr);
  • void *calloc(size_t nmemb, size_t size);
  • void *realloc(void *ptr, size_t size);
  • void * reallocarray(void *ptr, size_t nmemb, size_t size);

Praca będzie:

  • zgodna ze specyfikacją POSIX
  • implementować system bliźniaków
  • wątkowo bezpieczna
  • używać sys/mman.h, unistd.h

Pamięć będzie przydzielana w blokach długości 2^k lub PAGE_SIZE*k, gdzie k będzie najmniejszą taką liczbą spełniającą żądanie oraz PAGE_SIZE to rozmiar strony pobrany z systemu. Praca będzie bazować na zarządzaniu stronami. Dla żądania mniejszego niż długość strony przydzielony będzie wolny blok z zarządzanych ston, jeśli taki blok nie istnieje lub nie będzie można takiego utworzyć to blok zostanie przydzielony z nowej strony. Dla żądań niemniejszych niż długość strony przydzielona będzie minimalna ilość stron spełniająca żądanie.