Linux kernel 形式化Linux内核内存模型

Linux kernel 形式化Linux内核内存模型,linux-kernel,x86,memory-model,Linux Kernel,X86,Memory Model,图片和引文来自: 我们考虑一个简单的程序: cumul围栏定义为: cumul-fence := A-cumul(strong-fence ∪ po-rel) ∪ wmb A-cumul(r) := rfe';r 在3.2.3中的链接出版物中写道(b,e)∈ 道具。由此我们可以得出结论:(c,d)∈ 积云篱笆 那么,让我们看看: po-rel = {(c,d)} strong-fence = {(a,b),(e,f)} wmb = {} rfe = {(d,e)} rfe' = {(d,

图片和引文来自:

我们考虑一个简单的程序:

cumul围栏
定义为:

cumul-fence := A-cumul(strong-fence ∪ po-rel) ∪ wmb
A-cumul(r)  := rfe';r
在3.2.3中的链接出版物中写道
(b,e)∈ 道具
。由此我们可以得出结论:
(c,d)∈ 积云篱笆

那么,让我们看看:

po-rel = {(c,d)}
strong-fence = {(a,b),(e,f)}
wmb = {}
rfe = {(d,e)}
rfe' = {(d,d), (d,e), (e,e)} <- reflexive closure of rfe. 
A-cumul({(a,b),(e,f),(c,d)}) = {(d,d), (d,e), (e,e)};{(a,b),(e,f),(c,d)} = {(d,f), (e,f)}
cumul-fence = {(d,f), (e,f)}
porel={(c,d)}
强篱笆={(a,b),(e,f)}
wmb={}
rfe={(d,e)}
rfe'={(d,d),(d,e),(e,e)}
rfe'
rfe

{(d,e), (a, a), (b, b), (c, c), (d, d), (e, e), (f, f), (k, k), (r, r)}
因为节点集是
{a,b,c,d,e,f,k,r}


从那里开始,
cumulfence
就是
{(d,f),(a,b),(c,d),(e,f)}

我想更好地学习你的符号。如果你有时间,你能简单地解释一下吗?我假设
U
表示联合/或,但撇号
是什么?否定?此外,像“cumul”和“reflective closure”这样的词对我来说是不透明的,尽管它们听起来很聪明。我问的原因是,据我所知,这类单词和符号既没有出现在内核源代码中,也没有出现在制造商的x86文档中(也没有出现在RFC或我读过的其他文档中),因此人们希望了解更多。@thb:我认为cumul=cumulative,但其余大部分术语对我来说也是不透明的。我想我们必须阅读链接的文章和/或学习
cat
语言才能理解它:P@PeterCordes例如我相信我见过这种记谱法。这就像一个计算机科学的研究生会写的东西。因为我在几十年前取得了硕士学位,而且由于电气工程的学位选错了专业(数学的方向是特殊函数,而不是图论和范畴论),不幸的是,我从来没有被正确地介绍过这种形式主义。我希望我能读得更好,因为它看起来可能有价值。谢谢!这意味着我使用了错误的自反闭包定义。你的回答显然是正确的,而且很有帮助。但是,为什么要跳过节点集中的
{k,r}
?跳过记忆障碍似乎是明智的,因为将它们视为事件是很奇怪的。但是,你能解释一下吗?@Gilgamesz哦,你说得对。我一定是因为某种原因在精神上跳过了它们。我会更正答案的<不过,在这种情况下,代码>k和
r
似乎不会影响
积云篱笆。