КООРДИНИРОВАНИЕ ПОДСЧЕТА МЕЖДУ ОБЪЕКТАМИ, ИСПОЛНЯЕМЫМИ В ПРЕДЕЛАХ ОТДЕЛЬНЫХ ПРОСТРАНСТВ АДРЕСОВ

1. Система межпроцессного взаимодействия, содержащая:
доверенную объектную сущность, которая поддерживает глобальный счетчик экспортов, представляющий количество ссылок на ресурс, экспортированный обеспечивающим совместное использование процессом, глобальный счетчик ссылок, представляющий количество ожидающих обработки ссылок на этот ресурс в системе межпроцессного взаимодействия, и счетчик, представляющий количество экспортов данного ресурса, которое должно быть принято до того, как операция аннулирования может быть инициирована.
2. Система по п.1, дополнительно содержащая таблицу, ассоциированную с обеспечивающим совместное использование процессом, причем эта таблица содержит значения глобального счетчика экспортов, глобального счетчика ссылок и счетчика, представляющего количество экспортов ресурса, которое должно быть принято до того, как может быть инициирована операция аннулирования.
3. Система по п.1, в которой значение глобального счетчика экспортов увеличивается, когда обеспечивающий совместное использование процесс экспортирует ссылку на ресурс.
4. Система по п.1, в которой значение глобального счетчика ссылок увеличивается, когда обеспечивающий совместное использование процесс экспортирует ссылку на ресурс.
5. Система по п.1, в которой значение глобального счетчика ссылок увеличивается, когда процесс, принимающий ссылку на экспортированный ресурс, передает эту ссылку на экспортированный ресурс в другой процесс.
6. Система по п.1, в которой сообщение со статусом "без ссылок" формируется в ответ на снижение значения глобального счетчика ссылок до нуля.
7. Система по п.6, в которой значение глобального счетчика экспортов передается с помощью сообщения со статусом "без ссылок".
8. Система по п.1, в которой операция аннулирования инициируется, когда значение счетчика, представляющего количество экспортов объекта, которое должно быть принято до того, как операция аннулирования может быть инициирована, равно значению глобального счетчика экспортов.
9. Способ координирования подсчета ссылок, содержащий этапы, на которых:
принимают сообщение от процесса, который принял ссылку на объект; и
в ответ на определение того, что данное сообщение - это сообщение, указывающее то, что процесс закончил работу с упомянутой объектной ссылкой, удаляют запись для упомянутого объекта в таблице для процесса и уменьшают значение глобального счетчика ссылок, причем этот глобальный счетчик ссылок содержит общее число ссылок на упомянутый объект.
10. Способ по п.9, дополнительно содержащий этап, на котором в ответ на определение того, что значение глобального счетчика ссылок равно нулю, отправляют сообщение, указывающее то, что больше нет объектных ссылок на упомянутый объект, в процесс, который совместно использует этот объект.
11. Способ по п.10, в котором сообщение, отправляемое в процесс, который совместно использует упомянутый объект, включает в себя значение глобального счетчика экспортов, представляющее собой подсчет числа раз, которое данный объект был экспортирован в другой процесс.
12. Способ по п.9, в котором в ответ на прием сообщения аннулирования от обеспечивающего совместное использование процесса, который представляет собой процесс, содержит процесс, который экспортировал ссылку на объект, принадлежащий этому процессу, в принимающий процесс, причем сообщение аннулирования включает в себя подсчет числа раз, которое упомянутый объект был экспортирован, выполняют сравнение подсчета, включенного в сообщение аннулирования, и подсчета экспортированных ссылок на упомянутый объект, сохраненного в таблице для обеспечивающего совместное использование процесса.
13. Машиночитаемый носитель, содержащий машиноисполняемые инструкции для координирования подсчета ссылок между механизмом подсчета ссылок уровня машины и процессом в рамках системы межпроцессного взаимодействия, содержащий инструкции для того, чтобы:
принимать сообщение от обеспечивающего совместное использование процесса в системе межпроцессного взаимодействия, причем этот обеспечивающий совместное использование процесс представляет собой процесс, который передает ссылку на ресурс, принадлежащий этому процессу, принимающему процессу, причем данное сообщение включает в себя оповещение о том, что ресурс должен быть экспортирован из обеспечивающего совместное использование процесса в принимающий процесс, и в ответ увеличивать значение глобального счетчика ссылок для упомянутого ресурса в таблице, поддерживаемой механизмом подсчета ссылок уровня машины для обеспечивающего совместное использование процесса, и увеличивать значение глобального счетчика экспортов для упомянутого ресурса в упомянутой таблице, причем глобальный счетчик экспортов представляет число раз, которое обеспечивающий совместное использование процесс экспортировал ресурс.
14. Машиночитаемый носитель по п.13, содержащий дополнительные инструкции для того, чтобы:
формировать табличную запись для ссылки на ресурс в таблице, поддерживаемой механизмом подсчета ссылок уровня машины для принимающего процесса.
15. Машиночитаемый носитель по п.14, содержащий дополнительные инструкции для того, чтобы:
принимать сообщение от принимающего процесса, указывающее, что ссылка на ресурс больше не требуется, и в ответ уменьшать значение глобального счетчика ссылок и удалять табличную запись для данной ссылки на ресурс в таблице, поддерживаемой механизмом подсчета ссылок уровня машины для принимающего процесса.
16. Машиночитаемый носитель по п.15, содержащий дополнительные инструкции для того, чтобы:
в ответ на определение того, что значение глобального счетчика ссылок равно нулю, отправлять сообщение в обеспечивающий совместное использования процесс, указывающее, что больше нет ссылок на ресурс.
17. Машиночитаемый носитель по п.14, в котором в ответ на определение того, что принимающий процесс передал ссылку на ресурс во второй принимающий процесс, выполняется увеличение значения глобального счетчика ссылок для ресурса, без увеличения значения глобального счетчика экспортов.