×

具有分离逻辑的细粒度并发。 (英语) Zbl 1252.03077号

摘要:关于并发程序的推理包括表示并发进程处理内存中不相交部分的信息。在复杂的应用程序中,进程之间的内存划分不是静态的。通过操作,进程可以交换内存单元的隐含所有权。此外,进程还可以以受控的方式共享单元的所有权,只要它们执行不干扰的操作,例如,它们可以同时读取共享单元。因此,基于位置的传统分布式计算范式被更紧密地基于程序结构的并发计算范式所取代。由O'Hearn、Bornat等人开发的具有权限的并发分离逻辑能够表示进程之间复杂的所有权和权限转移。我们演示了如何利用这些思想来推理细粒度并发程序,这些程序不使用显式同步操作来控制干扰,而是协同操作内存单元,以避免干扰。对此类程序进行推理具有挑战性,需要适当的逻辑工具以可靠的方式进行推理。我们认为,具有权限的并发分离逻辑提供了这样的工具。我们通过展示并发垃圾收集器的证明来说明逻辑技术,该证明最初由Dijkstra等人研究,并由Lamport扩展以处理多个用户进程。

MSC公司:

03B70型 计算机科学中的逻辑
68号30 软件工程的数学方面(规范、验证、度量、需求等)
68问题85 并发和分布式计算的模型和方法(进程代数、互模拟、转换网等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Andrews,G.R.(1991)。并发编程:原理和实践。门罗公园:艾迪森·卫斯理·Zbl 0797.68002号
[2] Ashcroft,E.A.(1975年)。证明关于并行程序的断言。计算机与系统科学杂志,10(1),110–135·Zbl 0299.68013号 ·doi:10.1016/S0022-0000(75)80018-3
[3] Ben-Ari,M.(1984年)。现场垃圾收集算法。美国计算机学会程序设计语言与系统汇刊,6(3),333–344·Zbl 0536.68030号 ·doi:10.1145/579.587
[4] Bornat,R.、Calcagno,C.、O'Hearn,P.W.和;帕金森,M.(2005)。分离逻辑中的权限核算。在编程语言原理研讨会上(第59–70页)。ACM出版社·Zbl 1369.68130号
[5] Boyland,J.(2003)。检查对部分权限的干扰。R.Cousot(编辑),统计分析:第10名实习生。症状。。施普林格计算机科学讲稿(第2694卷,第55-72页)。斯普林格·Zbl 1067.68537号
[6] Brinch Hansen,P.(1973年)。操作系统原理。恩格尔伍德悬崖:普伦蒂斯·霍尔·Zbl 0308.68007号
[7] Brookes,S.D.(2007)。并发分离逻辑的语义。理论计算机科学,375(1-3),227-270·Zbl 1111.68021号 ·doi:10.1016/j.tcs.2006.12.034
[8] de Roever,W.-P.(2001)。并发验证:介绍合成和非置换方法。剑桥:剑桥大学出版社·Zbl 1009.68020号
[9] Dijkstra,E.W.(1968年)。配合顺序过程。F.Genuys(编辑),《编程语言》(第43–112页)。纽约:学术出版社。
[10] Dijkstra,E.W.、Lamport,L.、Martin,A.J.、Scholten,C.S.和;Steffens,E.F.M.(1975年)。动态垃圾收集:一项合作练习。技术报告EWD496B,德克萨斯大学·Zbl 0347.68019号
[11] Dijkstra,E.W.、Lamport,L.、Martin,A.J.、Scholten,C.S.和;Steffens,E.F.M.(1978年)。现场垃圾收集:合作练习。ACM通讯,21(11),966–975·Zbl 0386.68024号 ·doi:10.1145/359642.359655
[12] Girard,J.-Y.(1987)。线性逻辑。理论计算机科学,50,1-102·Zbl 0625.03037号 ·doi:10.1016/0304-3975(87)90045-4
[13] Gries,D.(1977年)。证明并行程序正确性的练习。ACM通信,20(12),921–930·Zbl 0364.68007号 ·数字对象标识代码:10.1145/359897.359903
[14] Hoare,C.A.R.(1969年)。计算机编程的公理基础。ACM的通信,12576–583·Zbl 0179.23105号 ·doi:10.1145/363235.363259
[15] Hoare,C.A.R.(1972年)。走向并行编程理论。在C.A.R.Hoare&R.H.Perrott(编辑),《操作系统技术》(第61–71页)。学术出版社。
[16] Hoare,C.A.R.(1974)。监视器:操作系统结构概念。ACM通讯,17(10),549–558·Zbl 0308.68029号 ·doi:10.1145/355620.361161
[17] Ishtiaq,S.S.,&;O'Hearn,P.W.(2001)。BI作为可变数据结构的断言语言。在编程语言原理研讨会上(第14-26页)·Zbl 1323.68077号
[18] Lamport,L.(1976年)。多进程垃圾收集:并行练习。《并行处理》(第50-54页)。
[19] Lamport,L.(1980)。并发程序的“Hoare逻辑”。信息学报,14,21–37·doi:10.1007/BF00289062
[20] Prensa Nieto,L.和;Esparza,J.(2000)。在Isabelle/HOL中使用Owicki/Gries验证单个和多个变异器垃圾收集器。在M.Nielson&B.Rovan(编辑),MFCS。施普林格计算机科学讲稿(1893年第619-628页)·兹比尔0996.68518
[21] O'Hearn,P.W.(2007)。资源、并发和本地推理。理论计算机科学,375(1-3),271-307·Zbl 1111.68023号 ·doi:10.1016/j.tcs.2006.12.035
[22] O'Hearn,P.W.和;Pym,D.J.(1999)。捆绑暗示的逻辑。《符号逻辑公报》,5(2),215–244·Zbl 0930.03095号 ·doi:10.2307/421090
[23] Owicki,S.和;Gries,D.(1976年)。验证并行程序的属性:公理方法。ACM通讯,19(5),279–285·Zbl 0322.68010号 ·doi:10.1145/360051.360224
[24] Owicki,S.S.和;Gries,D.(1976年)。并行程序的公理证明技术。信息学报,6319-340·doi:10.1007/BF00268134
[25] Parkinson,M.、Bornat,R.和;O'Hearn,P.W.(2007)。非阻塞堆栈的模块化验证。《编程语言原理》(第297-302页)。ACM公司·Zbl 1295.68092号
[26] Pratt,V.R.(1976年)。Floyd–Hoare逻辑的语义考虑。程序中。第17次症状。找到。比较。科学。(第109–121页)。电气与电子工程师协会。
[27] Pym,D.J.(2002)。集合蕴涵逻辑的语义和证明理论。应用逻辑系列(第26卷)。Kluwer学术出版社·Zbl 1068.03001号
[28] 里德,S.(1988年)。相关逻辑:对推理的哲学审视。巴兹尔·布莱克威尔。
[29] Reynolds,J.C.(2000年)。关于共享可变数据结构的直觉推理。J.Davis、B.Roscoe和;J.Woodcock(编辑),《计算机科学的千年展望》。帕尔格雷夫,汉普郡洪斯米尔。
[30] Reynolds,J.C.(2002)。分离逻辑:用于共享可变数据结构的逻辑。在LICS中(第55-74页)。
[31] Russinoff,D.M.(1994)。经过机械验证的增量垃圾收集器。形式方面计算,6(4),359–390·Zbl 0941.68624号 ·doi:10.1007/BF01211305
[32] Torp-Smith,N.、Birkedal,L.和;Reynolds,J.C.(2008)。关于复制垃圾收集器的本地推理。美国计算机学会编程语言与系统汇刊,30(4),1-58·doi:10.1145/1377492.1377499
[33] Vafeiadis,V.和;帕金森,M.(2007)。依赖/保证和分离逻辑的结合。2007年CONCUR。施普林格计算机科学讲稿(第4703卷,第256-271页)·Zbl 1151.68556号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。