Реферат: Распределение памяти
используется процедурой для ссылки на элементы массива.
Имя процедуры в качестве фактического параметра
Передаваемый адрес - это адрес первой команды процедуры,
которая встретилась в качестве фактического параметра. Если это
имя само является формальным параметром, то адрес был передан
вызывающей процедуре, когда она вызывалась.
7. Динамическое распределение памяти
Для некоторых языков требуется схема динамического
распределения памяти во время выполнения программы, когда блоки
внутренней памяти выделяются, используются и затем освобождаются
для последующего использования.
Существуют два основных метода общего распределения памяти.
В обоих методах вызывается некоторая программа GETAREA(ADDRESS,
SIZE) для того, чтобы выделить область из SIZE ячеек; программа
записывает в ячейку ADDRESS, адрес этой области. В первом методе
память должна освобождаться "явно" посредством вызова программы
FREEAREA(ADDRESS,SIZE). Во втором методе память "явно" не
освобождается. Вместо этого в тех случаях, когда GETAREA не
может найти область необходимого размера, она вызывает программу
FREEGARBAGE для того, чтобы найти те области во внутренней
памяти, которые не используются программой, и вернуть их системе.
Кроме того она может уплотнить используемые области - сдвинуть
их вместе, чтобы все свободные ячейки были в одном блоке.
Опишем один из способов реализации первого метода.
Метод помеченных границ для распределения памяти
Распределение памяти происходит следующим образом. Когда
начинает выполняться программа, в качестве свободной памяти
используется один большой блок ячеек. При выполнении программы
может несколько раз вызываться GETAREA. Каждый раз она выделяет