×

Bestow和atomic:使用隔离、委派和分组的并发编程。 (英文) Zbl 1400.68053号

概要:无论并发模型如何,任何非平凡的并发系统都保证同步。基于参与者的并发序列化全部的通过异步消息传递在参与者中进行计算。相反,基于锁的并发序列化一些通过遵循访问特定数据的锁定-解锁协议进行计算。
这两个系统都需要对指针和别名进行合理的推理,以排除数据竞争。如果参与者隔离被打破,那么控制抽象的单一线程也会被打破。类似地,对于锁,如果在锁的范围之外可以访问基准,则基准不受锁的控制。
在本文中,我们讨论了如何平衡混叠和同步。在前面的工作中,我们定义了一个类型系统,它可以保证基于actor的并发和基于锁的并发的数据空间自由。本文通过引入两个编程结构来扩展这项工作;一个用于解耦隔离和同步,另一个用于从低级别同步构建更高级别的原子性保证。我们主要关注参与者,尤其是Encore编程语言,但我们的最终目标是定义我们的构造,使它们可以与锁和参与者一起使用,因为这两种模型的组合在实际系统中经常发生。
我们讨论了设计空间,提供了几种不同语义的形式化,并讨论了它们的属性,并将它们与案例研究联系起来,以展示我们提出的结构是如何有用的。我们还报告了我们在Encore的拟议结构的持续实施情况。

MSC公司:

第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
68问题85 并发和分布式计算的模型和方法(进程代数、互模拟、转换网等)
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] 休伊特,C。;毕晓普,P。;Steiger,R.,第8讲人工智能的形式主义人工智能的通用模块行动者形式主义(会议论文预告,第3卷,(1973年),斯坦福研究所)
[2] 贝克,H。;休伊特,C.,《并行过程通信的法则》,(麻省理工学院人工智能实验室工作文件,WP-134A,(1977),麻省理学学院人工智能实验)·Zbl 0363.68077号
[3] Herlihy,M。;Shavit,N.,《多处理机编程的艺术》,(2008),Morgan Kaufmann Publishers Inc.San Francisco,CA,USA,ISBN 0123705916,9780123705914
[4] Herlihy,M。;Moss,J.Eliot B.,《事务记忆:无锁数据结构的体系结构支持》,(计算机体系结构国际研讨会,1993年)
[5] 卡斯特格林,E。;Wrigstad,T.,并发控制的参考功能(ECOOP,(2016))
[6] Brandauer,S.,《多核并行对象:并行语言重演一瞥》(多核编程的形式化方法,(2015))
[7] Miller,M.,《稳健组合:访问控制和并发控制的统一方法》,(2006年5月),美国约翰霍普金斯大学博士论文
[8] Van Cutsem,T。;Boix,E.G。;Scholliers,C.公司。;Carreton,A.L。;Harnie,D。;Pinte,K。;De Meuter,W.,Ambienttalk:与参与者一起编写响应性移动对等应用程序,Compute。语言系统。结构。,40, 3, (2018)
[9] 卡斯特格林,E。;Wrigstad,T.,《无国界演员:对被监禁国家的大赦》(PLACES,(2017))
[10] Castegren,E.,Bestrouled objects and atomic message passing,(2017年)
[11] 克拉克·D·G。;波特,J.M。;Noble,J.,灵活别名保护的所有权类型,ACM SIGPLAN Not。,33,10,48-64,(1998),ACM
[12] Armstrong,J.,《Erlang的历史》(HOPL III,(2007))
[13] R.G.Lavender,D.C.Schmidt,并发编程的主动对象-对象行为模式。;R.G.Lavender,D.C.Schmidt,并发编程的主动对象-对象行为模式。
[14] Clebsch,S。;Franco,J。;Drossopoulou,S。;杨,A.M。;Wrigstad,T。;Vitek,J.,Orca:演员语言的GC和类型系统联合设计,OOPSLA,ACM程序设计语言会议录,1,(2017)
[15] Clebsch,S。;Drossopoulou,S。;祝福,S。;McNeil,A.,拒绝为安全、快速的参与者提供能力,(AGERE,(2015))
[16] Akka-scala演员库(2017年7月检索)
[17] Caromel,D。;Henrio,L.,分布式对象理论,(2004),Springer-Verlag
[18] 约翰森,E.B。;Hähnle,R。;Schäfer,J。;施拉特,R。;Steffen,M.,ABS:抽象行为规范的核心语言,(组件和对象的形式化方法,(2011),Springer)
[19] 伯恩斯坦,P.A。;Bykov,S。;盖勒,A。;Kliot,G。;Thelin,J.,Orleans:分布式虚拟参与者促进可编程性和可扩展性,(2014),MSR-TR-2014-41
[20] 克拉克,D。;Wrigstad,T.公司。;J·厄斯特隆德。;Johnsen,E.B.,活动对象的最小所有权,(编程语言和系统(第六届亚洲编程语言和体系研讨会论文集),计算机科学讲稿,第5356/2008卷,(2008),Springer)
[21] Ùstlund,J.,《多核安全并行编程的语言构造》,(2016年1月),乌普萨拉大学信息技术系,博士论文
[22] Potanin,A。;Damitio,M。;Noble,J.,你输入的别名真的有必要吗?计算对象所有权的成本,(2013年软件工程国际会议论文集,(2013),IEEE出版社)
[23] Müller,P.,面向对象程序的模块化规范和验证,(2002),柏林施普林格出版社,海德堡·Zbl 0998.68034号
[24] Klaftenegger,D。;萨戈纳斯,K。;Winblad,K.,简短公告:队列委托锁定,(第26届美国计算机学会算法与体系结构并行性研讨会论文集,SPAA'14,(2014),美国计算机学会纽约,纽约,美国)
[25] Milner,R.,《通信和移动系统:π演算》(1999),剑桥大学出版社·Zbl 0942.68002号
[26] Hoare,C.A.R.,通信顺序过程,(并发编程的起源,(1978),Springer)·Zbl 0383.68028号
[27] 皮尔斯,公元前。;de Amorim,A.A。;卡辛基诺,C。;加博阿迪,M。;格林伯格,M。;Hritcu,C。;Sjöberg,V。;Yorgey,B.,《软件基金会》(2017),5.0版
[28] Chlipala,A.,《依赖类型的认证编程:coq证明助手的实用介绍》(2013),麻省理工学院出版社·Zbl 1288.68001号
[29] Boyland,J。;Noble,J。;Retert,W.,共享能力:唯一性和只读性的概括,(面向对象编程,第15届欧洲会议论文集,第3卷,ECOOP 2001,匈牙利布达佩斯,2001年6月18日至22日)·Zbl 0982.68576号
[30] Wrigstad,T.,《基于所有者身份的别名管理》(2006年5月),斯德哥尔摩基斯塔皇家理工学院博士论文
[31] Wallin,J.,《为安可实施安全共享功能》(2017年7月),《IT学士论文17 039》
[32] 计算机语言基准测试游戏(2017年7月检索)
[33] Srinivasan,S。;Mycroft,A.,Kilim:Java的隔离型参与者(ECOOP,(2008))
[34] Haller,P。;Odersky,M.,《独特性和借用能力》(ECOOP,(2010))
[35] 米勒,H。;Haller,P。;米勒,N。;Boullier,J.,《函数传递:类型化分布式函数编程模型》(Onward!,(2016))
[36] 布莱克,A.P。;北卡罗来纳州哈钦森。;7月,E。;Levy,H.M.,翡翠编程语言的发展,(第三届美国计算机学会SIGPLAN编程语言史会议论文集,(2007),美国计算机学会)
[37] 7月,E。;利维,H。;Hutchinson,N。;Black,A.,翡翠体系中的细粒度流动性,ACM Trans。计算。系统。,6, 1, (2018)
[38] 萨拉斯瓦特,V.A。;萨尔卡,V。;von Praun,C.,X10:现代架构的并发编程(并行编程的原理与实践,(2007))
[39] 易卜拉欣,A。;焦,Y。;Tilevich,E。;Cook,W.R.,《复合对象服务的远程批处理调用》(面向对象编程欧洲会议,(2009),Springer)
[40] 坎宁安,D。;Drossopoulou,S。;Eisenbach,S.,《种族安全的宇宙》(多线程类Java程序(VAMP)的验证与分析,(2007))
[41] Boyapati,C。;李·R。;Rinard,M.,《安全编程的所有权类型:防止数据竞争和死锁》,ACM SIGPLAN Not。,37,(2002),ACM
[42] 北卡罗来纳州卡梅隆。;Drossopoulou,S。;Noble,J。;Smith,M.J.,多重所有权,ACM SIGPLAN非。,42, 10, (2018)
[43] J·厄斯特隆德。;Wrigstad,T.,所有权类型的多个总入口点,(2012年),施普林格柏林,海德堡
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。