灵活的调度器无关安全性:实现并发程序信息流动安全
1. 受限观察函数与调度器独立性结果
受限观察函数仅提供当前线程数量和公共变量值的信息,这对于像轮询(Round - Robin)或基于优先级的调度器等常见调度器来说已经足够。需要注意的是,相关定义是针对所有 FSI 安全的线程池进行量化的,这一点至关重要。如果对所有线程池(包括非 FSI 安全的线程池)进行量化,将会得到一个显著更小的健壮调度器类别,例如,轮询和均匀调度器将不在其中。
下面给出调度器独立性结果:
定理 7:设 thr 是一个终止的 FSI 安全线程池,S 是在受限观察函数下的健壮调度器,那么线程池 thr 是 S 安全的。
定理 5 和 6 表明,对于一类实际相关的调度器,我们实现了调度器无关的信息流安全。由于 FSI 安全克服了现有调度器无关安全方法的限制,我们期望这些结果能为并发程序的信息流分析提供更广泛的应用。
2. 多线程语言的安全分析
2.1 语言定义
使用一个简单的多线程命令式编程语言来分析具体程序的 FSI 安全性,该语言支持动态创建新线程。命令集 Com 由以下语法定义(使用未进一步指定的表达式集 Exp):
com ::= skip | var:=exp | com; com | if (exp) then com else com fi
| while (exp) do com od | spawn(com, ..., com),
其中 var ∈ Var 且 exp ∈ Exp。命令的操作语
超级会员免费看
订阅专栏 解锁全文

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



