×

Haskell的可组合调度程序激活。 (英语) Zbl 1420.68057号

概要:Java或Haskell等现代并发垃圾收集语言的运行时就像一个操作系统:复杂、复杂、高性能,但很难更改。如果更多的运行时系统使用高级语言,那么它将更具模块化和可塑性。在本文中,我们描述了Glasgow Haskell编译器的一种新的并发基底设计,该设计允许并发和并行Haskel程序的多核调度器安全地、模块化地描述为Haskel中的库。该方法依赖于通过调度器激活抽象用户实现调度器的接口,以及使用软件事务内存来提高多核环境中的安全性。

MSC公司:

68N20型 编译与解释理论
68甲18 函数编程和lambda演算
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 安德森。E.,伯沙德B。N.、LazowskaE。D.&LevyH公司。M.(1991)Scheduler激活:有效的内核支持用户级并行管理。在第13届ACM操作系统原理研讨会论文集,SOSP'91。美国加利福尼亚州太平洋格罗夫:ACM,美国纽约州纽约市,第95-109页。
[2] 异步。(2016)Jane Street Capitalś异步执行库。网址:https://github.com/janesteet/async。上次访问时间:2016年6月10日。
[3] 鲍曼纳。,巴哈马。,达甘德-E.、HarrisT.、。,艾萨克斯·R。,彼得斯、罗斯科、。,SchüpbachA和新加坡。(2009)多核:可扩展多核系统的新操作系统架构。ACM SIGOPS第22届操作系统原理研讨会论文集,SOSP’09。美国蒙大拿州大天空:ACM,美国纽约州纽约市,第29-44页。
[4] 贝尔沙德B。N.、ChambersC.、。,艾格尔斯。,MaedaC.、。,McNameeD公司。,帕迪亚克。,SavageS.和SirerE公司。G.(1995)SPIN——用于特定于应用程序的操作系统服务的可扩展微内核。Sigops Oper公司。系统。版本29(1),74-77.10.1145/202453.202472·doi:10.1145/202453.202472
[5] 布鲁格曼。,WaddellO和戴布维格。K.(1996)在存在一次性延续的情况下代表控制。1996年ACM SIGPLAN编程语言设计与实现会议论文集,PLDI’96。美国宾夕法尼亚州费城:美国纽约州纽约市ACM,第99-107页。
[6] 查克拉伐提M。M.T.、LeshchinskiyR.、。,佩顿·琼斯。,凯勒集团马洛斯。(2007)数据并行Haskell:状态报告。2007年多核编程声明性方面研讨会论文集,DAMP’07。法国尼斯:ACM,美国纽约州纽约市,第10-18页。
[7] 多兰S。,怀特。,SivaramakrishnanK公司。C.、YallopJ.和MadhavapeddyA。(2015)通过代数效应实现有效并发。OCaml用户和开发人员研讨会,OCaml’15。
[8] 戴布维格。K.&HiebR.(1989)延续的发动机。计算。郎14(2),109-123.10.1016/0096-0551(89)90018-0·doi:10.1016/0096-0551(89)90018-0
[9] FluetM.、。,RaineyM.&ReppyJ公司。(2008)通用并行语言的调度框架。第13届ACM SIGPLAN函数编程国际会议论文集,ICFP'08。加拿大不列颠哥伦比亚省维多利亚市:ACM,美国纽约州纽约市,第241-252页。
[10] FluetM.、。,雷尼。,ReppyJ和沙瓦。(2010)manticore中的隐式线程并行。J.功能。程序20(5-6),537-576.10.1017/S0956796810000201·Zbl 1221.68061号 ·网址:10.1017/S0956796810000201
[11] 弗兰普顿。,布莱克本。M.、Cheng P.、。,GarnerR.J.、GroveD.、。,莫斯J。E.B.和SalishevS。I.(2009)《解密魔法:高级低级编程》。2009年ACM SIGPLAN/SIGOPS虚拟执行环境国际会议论文集,VEE’09。美国华盛顿特区:ACM,美国纽约州纽约市,第81-90页。
[12] 伽罗瓦。(2016)Haskell轻量级虚拟机(HaLVM)。网址:http://corp.galois.com/halfum。上次访问时间:2016年6月10日。
[13] 全球总部。(2016)格拉斯哥-哈斯克尔编译器。网址:http://www.haskell.org/ghc。上次访问时间:2016年6月10日。
[14] HallgrenT。,琼斯M。P.、LeslieR和托尔马哈。(2005)Haskell中操作系统构建的原则方法。第十届ACM SIGPLAN函数编程国际会议论文集,ICFP'05。美国纽约州纽约市:ACM,第116-128页·Zbl 1302.68084号
[15] 哈里斯。,马洛斯。,佩顿·琼斯赫利赫。(2005a)可组合内存事务。第十届ACM SIGPLAN并行编程原理与实践研讨会论文集,PPoPP’05。美国伊利诺伊州芝加哥:美国纽约州纽约市ACM,第48-60页。
[16] 哈里斯。,马洛斯和琼斯。P.(2005b)共享内存多处理器上的Haskell。2005年ACM SIGPLAN Haskell研讨会论文集,Haskell'05。爱沙尼亚塔林:ACM,美国纽约州纽约市,第49-61页。
[17] 哈斯克尔。(2016)Haskell Web开发。网址:http://www.haskell.org/haskellwiki/Web/Servers。上次访问时间:2016年6月10日。
[18] HaynesC公司。T.和FriedmanD。P.(1987)用引擎抽象定时抢占。计算。Lang.12(2),109-121.10.1016/0096-0551(87)90003-8·doi:10.1016/0096-0551(87)90003-8
[19] 热点虚拟机。(2016)Java SE热点概览。网址:http://www.oracle.com/technetwork/java/javase/tech/index-jsp-137187.html。上次访问时间:2016年6月10日。
[20] IBM。(2016)Java平台标准版(Java SE)。网址:http://www.ibm.com/developerworks/java/jdk/。上次访问时间:2016年6月10日。
[21] 电梯。,马洛斯。,佩顿·琼斯托尔马哈。(2007)GHC的轻量级并发原语。2007年哈斯克尔ACM SIGPLAN研讨会会议记录。德国弗莱堡:ACM,美国纽约州纽约市,第107-118页。
[22] 利普梅耶尔B。,查克拉瓦蒂。,凯勒集团佩顿·琼斯。(2012)使用索引类型指导并行阵列融合。2012年Haskell研讨会论文集,Haskell'12。丹麦哥本哈根:ACM,美国纽约州纽约市,第25-36页。
[23] MadhavapeddyA。,Mortier R.、RotsosC.、。,斯科特·D。,新加坡。,加沙奈特。,史密斯公司。,手和克劳克罗夫特J。(2013)Unikernels:云的库操作系统。第十八届编程语言和操作系统体系结构支持国际会议论文集,ASPLOS’13。美国纽约州纽约市:ACM,第461-472页。
[24] MadhavapeddyA.和斯科特·D。J.(2014)Unikernels:虚拟图书馆操作系统的兴起。Commun公司。ACM57(1),61-69。
[25] 马洛斯。,琼斯。P.,马里和ReppyJ公司。(2001)Haskell中的异步异常。在ACM SIGPLAN 2001编程语言设计与实现会议论文集,PLDI’01。雪鸟,美国犹他州:ACM,美国纽约州纽约市,第274-285页。
[26] 马洛斯。,琼斯。P.&ThallerW公司。(2004)使用并发扩展Haskell外部函数接口。2004年ACM SIGPLAN Haskell研讨会论文集,Haskell'04。雪鸟,美国犹他州:ACM,美国纽约州纽约市,第22-32页。
[27] 马洛斯。,梅耶尔普。,洛迪勒-W.,AswadM。K.和TrinderP。(2010)Seq no more:并行Haskell的更好策略。第三届ACM Haskell Haskell'研讨会会议记录,Haskell'10。美国纽约州纽约市:ACM,第91-102页。
[28] 马歇尔B。D.斯科特·M。L.、LeBlanchT。J.&MarkatosE公司。P.(1991)一流的用户级线程。第13届ACM操作系统原理研讨会论文集,SOSP’91。美国加利福尼亚州太平洋格罗夫:ACM,美国纽约州纽约市,第110-121页。
[29] Microsoft Corp.(2016)公共语言运行库(CLR)。网址:http://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110)aspx。上次访问时间:2016年6月10日。
[30] 菲尔宾J。F.(1993)《现代编程语言操作系统的设计》。耶鲁大学博士论文,美国康涅狄格州纽黑文,UMI订单号GAX93-29376。
[31] 里德Ar。(1999)将脊椎放回无脊椎无标签G机器:可恢复黑洞的实现。第十届国际研讨会论文选集。IFL’98。英国伦敦:Springer-Verlag,第186-199页。
[32] ReppyJ公司。H.(2007)《并行编程》,剑桥大学出版社·Zbl 1137.68409号
[33] ReppyJ,代表。,俄罗斯。V.和XiaoY。(2009)并行并行ML.第14届ACM SIGPLAN函数编程国际会议论文集,ICFP'09。苏格兰爱丁堡:ACM,美国纽约州纽约市,第257-268页·Zbl 1302.68081号
[34] ShiversO公司。(1997)延续和线程:用高级语言直接表示机器并发。继续研讨会。
[35] 开枪射击。(2016)计算机语言基准游戏。网址:http://benchmarksgame.alioth.debian.org/。上次访问时间:2016年6月10日。
[36] SivaramakrishnanK公司。C.、ZiarekL.和贾加纳森。(2014)MultiMLton:标准ML.J.Funct的多核软件运行时。程序。24(6):613-674.10.1017/S095679681400161·doi:10.1017/S095679681400161
[37] STM图书馆。(2016)控制。同时发生的。STM公司。网址:http://hackage.haskell.org/package/stm-2.1.10/docs/Control-Concurrent-stm.html。上次访问时间:2016年6月10日。
[38] 沃伊隆J。(2008)Lwt:合作线程库。2008年ACM SIGPLAN ML研讨会会议记录,ML'08。美国纽约州纽约市:ACM,第3-12页。
[39] WandM公司。(1980)基于连续性的多处理。在1980年ACM关于LISP和函数编程的会议记录中,LFP’80。美国加利福尼亚州斯坦福大学:ACM,美国纽约州纽约市,第19-28页。
[40] 威廉姆斯。J.(2002)NetBSD操作系统上调度器激活的实现。在FREENIX轨道论文集:2002 USENIX年度技术会议。美国加州伯克利:USENIX协会,第99-108页。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。