что происходит в ядре во время работы malloc?

Этот вопрос мне задали во время интервью. Они хотели знать, когда пользователь вызывает malloc (4) для выделения 4 байтов памяти, как реагирует операционная система (Linux)? Какая подсистема отвечает на этот системный вызов?

Я сказал ему, что malloc () будет обслуживаться подсистемой управления памятью. Реализация malloc () просматривает список свободной памяти (физической памяти), мы назовем его свободным списком и найдем соответствующий фрагмент, размер которого больше или равен 4 байтам. Как только он найдет такой кусок, он будет удален из свободного списка и добавлен в используемый список. Затем эта физическая память будет отображена на структуру vma кучи процесса. Похоже, он не был полностью удовлетворен этим ответом. Как в него вписывается система друзей? Любая помощь будет принята с благодарностью.

46
задан Bart 19 April 2011 в 12:21
поделиться