Статическое распределение - память - Большая Энциклопедия Нефти и Газа, статья, страница 1
Русский человек на голодный желудок думать не может, а на сытый – не хочет. Законы Мерфи (еще...)

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

Cтраница 1


Статическое распределение памяти эффективо, поскольку на управление памятью во время выполнения не тратится ни времени, ни памяти. Однако этот метод несовместим с рекурсивными вызовами подпрограмм, со структурами данных, размер которых зависит от вычисляемой или вводимой информации, и со многими другими желательными возможностями языка. Читатель, однако, не должен упускать из вида важность статического метода распределения памяти - для многих программ вполне достаточно статического распределения. Два широко используемых языка программирования, Фортран и Кобол, сконструированы в расчете исключительно на статическое распределение памяти.  [1]

Статическое распределение памяти состоит в назначении адресов для размещения данных в процессе трансляции. Адреса могут затем корректироваться при загрузке программы, но в процессе исполнения объектной программы остаются неизменными.  [2]

Статическое распределение памяти целесообразно проводить в два этапа. На первом этапе выделяется секция памяти каждому блоку, а на втором - назначаются адреса переменным внутри блока.  [3]

4 Блочная структура программы. [4]

Однако статическое распределение памяти возможно лишь в тех случаях, когда количество данных, описанных в блоке, не меняется при повторных входах в блок.  [5]

Недостатком статического распределения памяти является неэкономное использование памяти, а преимуществом - экономия машинного времени при исполнении объектной программы. В случаях, когда данные не удается разместить в оперативной памяти, это преимущество сводится на нет дополнительными затратами времени на обмен с внешней памятью. В таких случаях динамическое распределение памяти может оказаться более выгодным с точки зрения общих затрат машинного времени.  [6]

При статическом распределении памяти все данные, описанные в блоке, можно расположить в области памяти, выделенной Аля этого блока. Однако на практике массивы обычно размещают ь отдельном поле массивов. Это связано с тем, что массивы иногда приходится выносить во внешнюю память.  [7]

8 Дерево описания массивов. [8]

При статическом распределении памяти для простых переменных массивы, как уже отмечалось, размещаются в отдельной области памяти, а при динамическом распределении памяти - в той же области памяти, где простые переменные. На рис. 4.44 показан фрагмент таблицы идентификаторов и возможный вариант распределения секции стека для массивов.  [9]

При статическом распределении памяти размещение массивов информации происходит до начала вычислительного процесса и не изменяется до его конца. Исполнительный адрес операндов указывается либо прямым ( действительным) адресом в команде, либо суммой прямого адреса и индекса, по которому выполняется модификация адресной части команды. Статическое распределение памяти малоэффективно: заранее необходимо выделять большие области памяти из расчета на максимальную длину переменных массивов. Кроме того, такое распределение очень неудобно при многопрограммной работе, когда памятью могут одновременно пользоваться несколько программистов.  [10]

В отличие от статического распределения памяти записи этой таблицы, указывающие количество машинных слов, fii для размещения данных блока i, приходится корректировать, ( вычислять заново) в ходе исполнения программы при каждом входе в блок L Для этого в объектную программу нужно включить команды, вычисляющие величину tii перед каждым исполнением подпрограммы ВХОД.  [11]

Несмотря на то что загрузчик кросс-аистемы производит статическое распределение памяти, действия его нельзя считать тривиальными, что объясняется сложным распределением памяти под области с различным функциональным назначением. Известно что для повышения надежности выполнения операций пересылок в формат команды вводят дополнительные, так называемые контрольные разряды. Вычисление этих разрядов в различных специализированных ЭВМ производится, как правило, по разным алгоритмам, что превращает соответствующие программы загрузчика в машинно-зависимые.  [12]

Практически во всех реализациях Фортрана используется механизм статического распределения памяти. Этот факт часто используется программистами.  [13]

Однако в автокоде нет средств для динамического распределения памяти ( т.е. в процессе выполнения программы), так что эту проблему приходится решать на основе статического распределения памяти. В связи с этим мы рассмотрим несколько вариантов программы, в которых указанная проблема решается по-разному.  [14]

15 Пример блочной структуры. [15]



Страницы:      1    2