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