Аллокация физической памяти. 3/3

2025-12-25 21:45

Аллокация физической памяти. 3/3

Процесс освобождения: - Блок порядка k по адресу P освобождается. - Адрес потенциального "друга" этого блока P вычисляется с помощью операции XOR по отношению к размеру блока: int addr = P ^ BLOCK_SIZE;

  • Проверяется, свободен ли "друг" и находится ли он в списке свободных блоков порядка k. Я более чем уверен что вы перестали читать еще на первом абзаце и просто поставите реакцию.
  • Если свободен: "друг" извлекается из списка, и оба блока объединяются в один блок порядка k + 1. Адрес объединенного блока становится меньшим из двух адресов.
  • Процесс слияния продолжается рекурсивно, пока не будет достигнут максимальный порядок N или пока "друг" не будет занят. (даже у блоков есть дела, а ты бездельник читающий этот щитпост!)
  • Полученный блок вставляется в соответствующий список свободных блоков.
ТЕГИ: #osdev #memory
_ НАЗАД