定义和实施引用安全
1. 语言模型
- 将分布式计算建模为一种语言 :使用名为 λpersist 的核心编程语言对分布式计算进行建模。在 λpersist 中,持久性、分布性和通信是隐式的,但受策略注释的约束。λpersist 程序会以某种与注释一致的方式映射到分布式主机节点上,这种映射可以由程序员手动完成,也可由编译器自动完成。这种隐式转换意味着一些普通的源级操作可能通过分布式通信和计算来实现,例如函数应用可能实现为远程过程调用,语言级别的引用操作可能涉及节点间通信以获取引用对象。虽未明确源级构造到主机节点的具体映射,但可评估源级计算的安全性,关键是确保系统在任何与源程序策略注释一致的具体映射下都是安全的。
- 对象和引用 :持久对象在 λpersist 中被建模为具有可变字段的记录,字段可通过引用指向其他对象。引用包含可变对象的名称,且不像 ML 那样可赋值,而是通过对可变字段赋值来实现更新。该语言有硬引用和软引用两种类型:
- 硬引用 :具有引用完整性,若主机可信,则保证引用对象不会被销毁,如 Unix 硬链接和 Java 引用。
- 软引用 :不产生维护引用对象的义务,如 URL、Unix 符号链接和 Java SoftReference 对象。语言模型中的垃圾回收器可能会销毁仅通过软引用可达的对象,程序在跟随软引用或不可信硬引用时,需准备处理引用对象不存在的情况。
这种简单的数据模型可表示多种系统,如分布式对象、数据库
超级会员免费看
订阅专栏 解锁全文
5089

被折叠的 条评论
为什么被折叠?



