Skip to content

Задача: при помощи функции syscall реализовать аллокатор памяти. Должны быть имплементированы функции malloc, calloc, realloc, free.

Notifications You must be signed in to change notification settings

Antonboom/allocator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Задача

При помощи функции syscall реализовать аллокатор памяти. Должны быть имплементированы функции malloc, calloc, realloc, free.

  • В качестве основных вызовов можно использовать, например, brk или анонимный mmap
  • Учтите, что надо следить за тем, какая из выделенной ядром памяти свободна, а какая - занята и не запрашивать новую, если можно обойтись старой. При использовании mmap не стоит выделять страницу памяти если нужно аллоцировать несколько байт - делите полученные страницы между запросами.
  • syscall объявлен в unistd.h
  • Полученный результат надо собрать как shared библиотеку (gcc -fPIC -shared) и заменить libc имплементацию аллокатора при помощи переменной окружения LD_PRELOAD (export LD_PRELOAD=filename)
clang -O0 -g -W -Wall -Wextra -shared -fPIC allocator.c -o allocator.so
export LD_PRELOAD=/path/to/allocator.so

About

Задача: при помощи функции syscall реализовать аллокатор памяти. Должны быть имплементированы функции malloc, calloc, realloc, free.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages