Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_tyap (1).doc
Скачиваний:
23
Добавлен:
17.04.2019
Размер:
1.05 Mб
Скачать

22. Основные элементы, требующие память во время выполнения.

Распределение памяти в процессе трансляции и выполнения программы .

  1. Странслированная программа пользователя. В любой системе необходимо отводить большой блок памяти под хранение странслированной программы не зависимо от типа интерпретации – аппаратной или программной.

  2. Системные программы производят выполнение действий при вызове программы пользователей . Диапазон системных программ распространяется от простых функций и математических операций до интерпретаторов или трансляторов, а также программ распределения памяти во время выполнения. Также системные программы – это блоки аппаратно выполняемых программ не зависимо от формы представления выполняемой программы.

  3. Определяемые пользователем структуры данных и константы.

  4. Точки возврата и повторного входа для подпрограмм. Для хранения может потребоваться ибо одна ячейка памяти, либо некая структура данных (стек и т.п.)

  5. Среды ссылок (ассоциации идентификаторов). В некоторых языках для этих целей требуется либо небольшой объем памяти, либо вовсе не требуется.

  6. Временная память для вычисления выражений. При вычислении выражений необходимо использовать временную память, определенную системой, для хранения промежуточных результатов вычислений.

  7. Временная память при передаче параметров. При вызове программы необходимо ывести список фактических параметров. Пока не будет вызван весь список, параметры будут храниться во временной памяти

  8. Буферы ввода-вывода. Обычно операции ввода-вывода работают с некими буферами, использующих временные области памяти, где хранятся данные между выполнением функции и передачей данных на внешнее устройство (или наоборот в случае ввода). Часто для этих буферов во временной памяти резервируется пространство в 100-1000 слов.

  9. Различные системные данные.

23. Механизмы распределения памяти.

  1. Начальное распределение. В момент начала выполнения программы каждый блок памяти может быть либо отведен под некоторые цели, либо оставаться свободным. Если блок сначала свободный, то его можно занять в процессе выполнения. Для системы управления памятью нужен метод, позволяющий системе учитывать свободную память, а также механизм выделения свободной памяти, если в ней возникнет потребность во время выполнения.

  2. Утилизация памяти. Память, которая была распределена и использовалась в течении некоторого времени, а затем стала ненужной, должна обнаружиться системой утилизации для возможности ее дальнейшего использования. Утилизация может быть как простой (перемещение указателя), так и очень сложной (сборка мусора).

  3. Уплотнение и повторное использование. После утилизации память может стать сразу пригодной к использованию, либо может потребоваться ее уплотнение для построения больших блоков свободной памяти из малых. При повторном использовании памяти обычно используются те-же механизмы, что и при начальном.

  4. Статическое распределение памяти.

  5. Стековое распределение памяти.

  6. Организация кучи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]