抢占抽象与Fiasco微内核进程间通信模型分析
1. 抢占抽象概述
在系统验证中,抢占抽象是一种重要的技术手段。我们考虑从集合SE中选取的(有限)副作用列表,其中特定的副作用可能在列表中多次出现。
系统S的抢占抽象A仅由线程t构成,有以下改变:
- 线程t中所有的抢占点都被替换为抢占点函数。该函数会非确定性地选择任意副作用列表并执行。
- 全局锁及其获取和释放操作被抽象掉。
在抢占抽象中,系统S中构成线程t环境的其他线程都被浓缩到抢占点函数中。抢占抽象A是系统S的顺序模型,能忠实地模拟线程t的行为。在假设线程之间无依赖的情况下,该抽象足以证明线程t在系统S中能被证明的任意(功能)属性。不过,由于它是从单个线程的角度出发,所以不能用于证明协作线程的属性。而且,该抽象是可靠的,即在线程t的抽象A中证明的每个属性在系统S中也成立,其可靠性关键取决于副作用集合SE的完整性。
抢占抽象A的主要优势在于它是顺序模型,仅包含一个线程。描述其行为时无需考虑原子块的不同交织情况,因此可以方便地在交互式定理证明器的高阶逻辑中描述为功能模型。相比之下,在高阶逻辑中对系统S的所有线程可能的交织行为进行建模会非常麻烦。所以,在交互式定理证明器中验证非平凡系统S时,抢占抽象是绝对必要的。此外,抢占抽象也可应用于模型检查环境。虽然模型检查器对并行系统有内置支持,抢占抽象的顺序性本身并非优势,但将包含任意多线程的系统S简化为一个线程,应该能使状态空间大幅减小。不过,将抢占抽象用于模型检查仍是未来的工作。
2. Fiasco微内核与进程间通信
Fiasco微内核属于L4微内核家族,自1998年起由德国德累斯顿工业大学开发。它主要用
超级会员免费看
订阅专栏 解锁全文
570

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



