У меня есть программа, которая имитирует оптимальное управление памятью.По сути, хотя в списке дыр есть доступные дыры, достаточно большие для процесса, который мы пытаемся выделить, процессы выделяются и добавляются в список процессов.Однако, в конце концов, мы достигли точки, где дыры становятся очень фрагментированными, и нам необходимо выполнить уплотнение.
Самый простой способ сделать это, очевидно, создать новый список и добавить все процессы в последовательном порядке.Однако это не очень реалистично, поскольку в реальном мире у вас не будет места для перемещения и создания нового списка.
Можете ли вы придумать способ перенести все процессы на один конец памяти и освободить место на другой?В основном он настроен как этот массив дырок (дыры - это структуры, содержащие начальный индекс и размер) и массив процессов (процессы также являются структурами, которые содержат идентификатор процесса, начальный индекс и размер).