СПОСОБ УПРАВЛЕНИЯ РЕСУРСАМИ В ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ

1. Способ управления ресурсами в вычислительной системе, включающей один или более взаимодействующих исполнительных элементов, в которой используют инструкцию передачи управления, которая позволяет передать управление между исполнительными элементами таким образом, что последовательность одной или более выполняемых инструкций передачи управления образует распределенный стек вызовов, указанный способ, отличающийся тем, что
один или более ресурс, связанный с исполнительным элементом, предоставляют, когда этот исполнительный элемент получает управление в указанном распределенном стеке вызовов или перед исполнением начальной инструкции передачи управления в указанном распределенном стеке вызовов,
для доступа на одном исполнительном элементе к указанному ресурсу другого исполнительного элемента выполняют обратную инструкцию, и
указанный ресурс исполнительного элемента освобождают или модифицируют управляющую информацию, в случае возврата управления из этого исполнительного элемента в указанной инструкции передачи управления, или в случае завершения работы указанного стека вызовов на этом исполнительном элементе, или в случае выполнения инструкции программы, которая явно освобождает этот ресурс.
2. Способ по п.1, отличающийся тем, что указанные исполнительные элементы являются в произвольной комбинации ядрами в многоядерной системе, или процессорами в многопроцессорной системе, или процессорами компьютеров, соединенными через сеть, или реализованными программно виртуальными системами, или экземплярами процессов реальной или виртуальной системы, выполняющими программу в одной или более исполнительных системах.
3. Способ по п.1, отличающийся тем, что указанная инструкция передачи управления является инструкцией локального или удаленного вызова процедуры.
4. Способ по п.1, отличающийся тем, что указанная обратная инструкция является инструкцией передачи управления.
5. Способ по п.1, отличающийся тем, что указанная обратная инструкция является инструкцией локального или удаленного вызова процедуры.
6. Способ по п.1, отличающийся тем, что указанная обратная инструкция является инструкцией доступа к памяти.
7. Способ по п.1, отличающийся тем, что информацию, необходимую для использования указанных ресурсов, передают в параметрах вызова, или возвращаемом значении указанной инструкции передачи управления, или в возвращаемом значении указанной обратной инструкции, или эту информацию передают как составную часть самой инструкции передачи управления, или эту информацию определяют в протоколе взаимодействия исполнительных элементов.
8. Способ по п.1, отличающийся тем, что при выполнении указанной инструкции передачи управления между указанными исполнительными элементами передают идентификационную информацию пользователя или компьютера, который инициировал исполнение указанного распределенного стека вызовов.
9. Способ по п.1, отличающийся тем, что каждому выполняемому указанному распределенному стеку вызовов присваивают идентификатор, который является уникальным в указанной вычислительной системе на время выполнения этого стека вызовов, включая отсутствие идентификатора как одно из возможных значений.
10. Способ по п.9, отличающийся тем, что в качестве указанного идентификатора распределенного стека используют цифровую подпись в полном или усеченном виде.
11. Способ по п.1, отличающийся тем, что указанный стек вызовов завершают на определенном исполнительном элементе при возврате управления из этого исполнительного элемента в указанной инструкции передачи управления в указанном стеке вызовов, или указанный стек вызовов завершают на определенном исполнительном элементе при получении сообщения о необходимости завершения указанного стека вызовов, или указанный стек вызовов завершают на определенном исполнительном элементе при выполнении инструкции программы.
12. Способ по п.1, отличающийся тем, что ресурсы не предоставляют на любом подмножестве исполнительных элементов в указанном распределенном стеке вызовов, если ресурсы указанного подмножества не являются необходимыми.
13. Способ по п.12, отличающийся тем, что если исполнительный элемент не предоставил ресурсы, то этот исполнительный элемент исключают из указанного стека вызовов, передав следующему в стеке вызовов исполнительному элементу информацию о предыдущем в стеке вызовов исполнительном элементе и передав предыдущему в стеке вызовов исполнительному элементу информацию о следующем в стеке вызовов исполнительном элементе, если предыдущий исполнительный элемент есть в указанном стеке вызовов.
14. Способ по п.1, отличающийся тем, что предоставляемые ресурсы частично или полностью совместно используют в более чем в одном распределенном стеке вызовов.
15. Способ по п.1, отличающийся тем, что указанный распределенный стек вызов ассоциируют с соединениями между исполнительными элементами в этом стеке вызовов.
16. Способ по п.1, отличающийся тем, что указанную инструкцию передачи управления выполняют синхронно.
17. Способ по п.1, отличающийся тем, что указанную инструкцию передачи управления выполняют асинхронно.
18. Способ по п.1, отличающийся тем, что указанным предоставляемым ресурсом является объект, функцию которого вызывают в указанной обратной инструкции.
19. Способ по п.1, отличающийся тем, что возврат управления из указанной инструкции передачи управления выполняют как вызов процедуры, информацию о которой передают при выполнении инструкции передачи управления, из которой выполняют возврат.
20. Способ по п.1, отличающийся тем, что
ресурсы, предоставленные указанному распределенному стеку вызовов, рассматривают как единую совокупность, являющуюся объединением этих ресурсов, при выполнении операции доступа к элементам указанной совокупности исполнительный элемент контролирует выход за границы своего подмножества ресурсов,
если указанный исполнительный элемент обнаруживает выход за границы своего подмножества ресурсов, он обращается к предыдущему в указанном стеке вызовов исполнительному элементу,
предыдущий в стеке вызовов исполнительный элемент выполняет операцию доступа к ресурсу, если этот ресурс связан с этим исполнительным элементом, или обращается к своему предыдущему исполнительному элементу в указанном стеке вызовов.
21. Способ по п.20, отличающийся тем, что указанный предоставляемый ресурс является элементом памяти, связанным с указанным исполнительным элементом.
22. Способ по п.21, отличающийся тем, что
совокупность памяти, которая предоставлена для указанного распределенного стека вызовов, рассматривают как непрерывную память или как массив с элементами постоянной или переменной длины,
общий размер или максимальный индекс массива текущей указанной совокупности памяти передают при выполнении указанной инструкции передачи управления,
для адресации в указанной совокупности памяти используют относительный адрес или индекс, которые рассчитывают от начала указанной совокупности памяти.
23. Способ по п.20, отличающийся тем, что указанная совокупность ресурсов, является памятью с ассоциативной адресацией или совокупностью пар ключ (уникальный или не уникальный) - значение.
24. Способ по п.20, отличающийся тем, что указанным предоставляемым ресурсом является память, в которой расположена выполняемая программа или фрагмент программы.
25. Способ по п.1, отличающийся тем, что в качестве информации, необходимой для использования указанного ресурса, используют распределенный указатель на ресурсы.
26. Способ по п.25, отличающийся тем, что указанный указатель на ресурсы включает смещение или индекс или идентификатор ресурса в совокупности ресурсов, предоставленных в указанном распределенном стеке вызовов.
27. Способ по п.25, отличающийся тем, что указанный указатель на ресурсы включает комбинацию адреса исполнительного элемента и локального идентификатора ресурса.
28. Способ по п.1, отличающийся тем, что указанные предоставляемые ресурсы рассматривают как переменные состояния указанного распределенного стека вызовов.