Cтраница 1
Реентерабельные подпрограммы целиком состоят из команд. Все данные, доступные подпрограмме, передаются либо косвенно через регистр, либо они находятся в регистре. Поэтому реентабельные подпрограммы иногда называют программами чистого кода. Преимущество реентерабельных подпрограмм состоит в том, что в системах с разделением времени несколько программ может пользоваться одной и той же копией программы. Для этого требуется при переключении управления с одной программы на другую лишь изменить содержимое регистров, поскольку данные либо содержатся в них, либо регистры указывают на данные. Именно это и делает монитор при переключении управления с одной программы на другую. Применение реентерабельных подпрограмм делает вызывающую программу четкой и ясной. Примерами реентерабельной подпрограммы являются приведенные ранее подпрограмма подсчета битов и подпрограмма вычисления NI. Все данные, на которые ссылаются обе эти подпрограммы, либо находятся в регистрах, либо доступ к ним осуществляется косвенно через регистры. Кроме того, и в той, и в другой подпрограммах не изменяется ни одна команда. [1]
Являются ли реентерабельные подпрограммы рекурсивными по своей природе. Являются ли рекурсивные подпрограммы реентерабельными. [2]
Наилучшим способом создания реентерабельных подпрограмм является использование только регистров и стековой памяти для сохранения всех параметров и локальных переменных. При этом осуществляется динамическое перераспределение, насколько это необходимо, пространства памяти, отведенного для параметров и локальных переменных. Подпрограммы, для реализации которых используется стековая структура ( разд. В других случаях, например в системах коллективного пользования, выполнение программ может приостанавливаться и возобновляться в любой точке. Тогда для каждого процесса должны быть обеспечены раздельные области стековой памяти. [3]
ЛЗ. Распределение основной памяти с фиксированными разделами при использовании версии MFT операционной системы IBM 360 / 370. [4] |
Резидентно загруженные подпрограммы супервизора и другие реентерабельные подпрограммы часто используются многими программами. Находясь постоянно в основной памяти, они экономят время выполнения, поскольку при обращении к ним их не надо загружать. Они могут также обеспечить экономию памяти, поскольку если нескольким задачам в одно и то же время необходима одна и та же подпрограмма, то достаточно завести только одну общую копию этой подпрограммы, которая будет пригодна для всех задач ( см. также разд. [5]
Нижеследующая подпрограмма является другим примером рекурсивной и реентерабельной подпрограммы. С ее помощью вычисляются числа Фибоначчи. При этом используется алгоритм, который приводится ниже. Эта последовательность имеет много приложений в математике и вычислительной технике. [6]
Важными характеристиками подпрограмм ( и любых компонентов ПО) являются реентерабельность и повтор-поиспользуемость. Одна копия реентерабельной подпрограммы может обслуживать одновременно несколько разных вызывающих подпрограмм. [7]
Какое требование является более строгим для подпрограмм: рекурсия или реентерабельность. Другими словами, ответьте на следующие два вопроса: 1) Гарантирована ли правильная работа всех рекурсивных подпрограмм, если они повторно используются другими процессами. Гарантирована ли правильная работа реентерабельных подпрограмм, если они содержат вызовы самих себя. [8]
Реентерабельные подпрограммы целиком состоят из команд. Все данные, доступные подпрограмме, передаются либо косвенно через регистр, либо они находятся в регистре. Поэтому реентабельные подпрограммы иногда называют программами чистого кода. Преимущество реентерабельных подпрограмм состоит в том, что в системах с разделением времени несколько программ может пользоваться одной и той же копией программы. Для этого требуется при переключении управления с одной программы на другую лишь изменить содержимое регистров, поскольку данные либо содержатся в них, либо регистры указывают на данные. Именно это и делает монитор при переключении управления с одной программы на другую. Применение реентерабельных подпрограмм делает вызывающую программу четкой и ясной. Примерами реентерабельной подпрограммы являются приведенные ранее подпрограмма подсчета битов и подпрограмма вычисления NI. Все данные, на которые ссылаются обе эти подпрограммы, либо находятся в регистрах, либо доступ к ним осуществляется косвенно через регистры. Кроме того, и в той, и в другой подпрограммах не изменяется ни одна команда. [9]
Отображение программ таким способом имеет несколько достоинств. Во-первых, во всех программах в системе может использоваться более 32К слов, хотя в некоторых из них может быть занято лишь 32К слов. Программа не обязательно должна занимать последовательные ячейки памяти. Сегменты могут размещаться в памяти в любом порядке и в любом месте, достаточном для хранения сегмента. Применяя реентерабельные подпрограммы или программы, можно в двух программах использовать одну и ту же копию кода посредством отображения его через соответсвую-щие регистры APR в один и тот же сегмент памяти. [10]
Реентерабельные подпрограммы целиком состоят из команд. Все данные, доступные подпрограмме, передаются либо косвенно через регистр, либо они находятся в регистре. Поэтому реентабельные подпрограммы иногда называют программами чистого кода. Преимущество реентерабельных подпрограмм состоит в том, что в системах с разделением времени несколько программ может пользоваться одной и той же копией программы. Для этого требуется при переключении управления с одной программы на другую лишь изменить содержимое регистров, поскольку данные либо содержатся в них, либо регистры указывают на данные. Именно это и делает монитор при переключении управления с одной программы на другую. Применение реентерабельных подпрограмм делает вызывающую программу четкой и ясной. Примерами реентерабельной подпрограммы являются приведенные ранее подпрограмма подсчета битов и подпрограмма вычисления NI. Все данные, на которые ссылаются обе эти подпрограммы, либо находятся в регистрах, либо доступ к ним осуществляется косвенно через регистры. Кроме того, и в той, и в другой подпрограммах не изменяется ни одна команда. [11]
Реентерабельные подпрограммы целиком состоят из команд. Все данные, доступные подпрограмме, передаются либо косвенно через регистр, либо они находятся в регистре. Поэтому реентабельные подпрограммы иногда называют программами чистого кода. Преимущество реентерабельных подпрограмм состоит в том, что в системах с разделением времени несколько программ может пользоваться одной и той же копией программы. Для этого требуется при переключении управления с одной программы на другую лишь изменить содержимое регистров, поскольку данные либо содержатся в них, либо регистры указывают на данные. Именно это и делает монитор при переключении управления с одной программы на другую. Применение реентерабельных подпрограмм делает вызывающую программу четкой и ясной. Примерами реентерабельной подпрограммы являются приведенные ранее подпрограмма подсчета битов и подпрограмма вычисления NI. Все данные, на которые ссылаются обе эти подпрограммы, либо находятся в регистрах, либо доступ к ним осуществляется косвенно через регистры. Кроме того, и в той, и в другой подпрограммах не изменяется ни одна команда. [12]