Cтраница 1
Объект домен представляет пакет-преобразователь, такой как библиотечный пакет математических функций. В нем нег объявлений переменных ( хотя они могут быть внутри отдельных подпрограмм) и, стало быть, пет состояния, изменяющегося во время нахождения в активном пространстве. [1]
Объект домен представляет библиотечный пикет-владелец X. Поскольку X владеет данными, которые могут быть обновлены обращающейся програх. [2]
Объект домен Club Portfolio имеет как видимую, так и приватную части. Читателю рекомендуется подробно рассмотреть объекты, указываемые из этого объекта домен, и сравнить их с объектами, подразумеваемыми программой на языке Ада, и обсуждением, проведенным ранее в этой главе. [3]
Каждый объект домен содержит AD объекта локальных данных, в котором находятся значения констант всех процедур домена. Команда CALL копирует AD объекта локальных данных ( расположенный по фиксированному смещению в объекте домен) в новый объект контекст в качестве одного из действий вызова процедуры. Таким образом, когда процедура начинает исполнение, объект локальных данных можно адресовать. Каждый исполняющийся процесс в системе 1432 использует тот же объект глобальных констант, что сделано прежде всего для того, чтобы исключить дублирование популярных констант в различных объектах локальных данных системы. [4]
![]() |
Снимок, показывающий структуру объектов при входе в процедуру Record buy пакета Portfolio Mgr. [5] |
Доступ к объекту домен пакета Portfolio Mgr из нового текущего объекта контекст осуществляется через Private AD. Читателю настоятельно рекомендуется проверить, что эта часть снимка отражает содержание программы на языке Ада. [6]
В эту категорию попадает объект домен, представляющий библиотечный пакет языка Ада. Этот объект, как и в случае В, вначале создается в пассивном пространстве и периодически активизируется по мере необходимости. Однако, когда период активизации заканчивается, он просто выбрасывается, а не используется для модификации версии в пассивном пространстве. Рассмотрим два известных примера. [7]
Может потребоваться обращение к различным компонентам внутри объекта домен как к части непосредственно адресуемого пространства процессора. Вызванная процедура может сделать такую компоненту непосредственно адресуемой путем исполнения команды ENTER ACCESS ENVIRONMENT, чтобы скопировать значение AD текущего объекта домен в один из регистров входа. В процессоре существует регистр текущего домена. При исполнении команды CALL, ведущей к смене доменов, в этот регистр записывается новое значение AD, указывающее на базу приватной части нового домена. Это значение остается верным при различных вызовах процедур внутри домена, что используется процессором для ускорения обработки подобных вызовов. [8]
Здесь находится смещение находящегося в части доступа текущего объекта домен AD объекта команды, откуда берутся исполняемые в настоящее время команды. [9]
Этот цикл повторяется для каждого активного периода в жизни объекта домен, пока он не будет явным образом уничтожен пли неявно удален из пространства пассивных объектов с помощью механизма возврата памяти, функции которого аналогичны функциям сборщика мусора в активном пространстве. [10]
Мы ранее отметили, что процессор системы 1432 достигает быстрого доступа к текущему объекту домен посредством внутреннего регистра домена. Кроме того, выборка команды из текущего исполняемого объекта команды также сделана внутри процессора: два внутренних регистра ускоряют выборку команд. Регистр объекта команды содержит дескриптор доступа активизированного объекта команды, а регистр IP - смещение в разрядах внутри этого объекта. [11]
Чтобы не вводить дополнительной сложности в этот и последующие снимки, условимся не повторять изображение объекта домен, относящегося к предыдущему объекту контекст; изобразим также только текущий объект контекст и его непосредственного предшественника. [12]
Читатель мог бы, конечно, спросить: Как может вызывающая процедура, которая имеет только дескриптор доступа к видимой части объекта домен ( Public AD), снабдить процессор необходимой информацией для установления нового контекста, домен определения которого охватывает целый домен, указываемый дескриптором доступа Private AD. Вызывающая процедура не обладает дескриптором доступа Private AD и не может получить его во владение, поскольку иначе была бы нарушена схема защиты системы. [13]
На рис. 4.13 показаны исходные установки, требующиеся для начала исполнения стартерной задачи. Поскольку объект домен представляет стартерную задачу, а не пакет, то в нем отсутствует уточнение видимой части. На снимке показана также начальная структура объектов непосредственно перед вызовом ( видимой) процедуры Enter. Buy из Club Portfolio, изображен и предварительно созданный объект сообщение текущего контекста. [15]