acm-header
登录

ACM通信

研究突出了

技术视角:操作系统中的事务性内存


随着计算机行业在每个处理器芯片上增加更多的处理“核心”,制造越来越快的处理器的悠久传统正在结束。因此,要继续从技术进步中获益,应用程序必须能够越来越多地同时在多个核上执行有用的工作。

为了同时使用多个核,程序员不仅必须识别可以并行执行的任务的独立部分,而且必须协调它们的执行,管理它们之间的通信和同步。具有通信或同步功能的程序瓶颈将无法充分利用可用的核心。可伸缩的避免此类瓶颈的程序构造起来异常困难。

并发执行的代码段之间的复杂交互通常通过谨慎使用来管理以确保临界区一个核心上的大部分代码“原子地”执行,也就是说,不受其他核心的干扰。然而,用这种方法避免同步瓶颈是很有挑战性的,而且在许多情况下,这种瓶颈的开销抵消了通过并发运行应用程序的各个部分所获得的优势。

对事务内存(TM)的研究已经允许程序员表达代码的关键部分应该原子地执行,而不需要指定如何这是应该实现的。术语“事务性内存”起源于Her-lihy和Moss (ISCA '93)的开创性工作,他们在其中提出将“事务”的概念(在数据库系统中已经很流行)应用到计算机内存中。

在文献中出现了关于这个主题的许多变体,一些建议TM完全由硬件支持,另一些建议TM完全由软件支持,还有一些建议使用两者的某种组合。一些人建议对编程语言进行扩展,通过编译器支持和运行时库的组合实现,而另一些人建议库接口,还有一些人建议直接编程的指令集扩展。

TM总体上是“乐观的”。而不是悲观地防止防止临界段并发执行,以防它们干扰其他临界段,就像锁一样,TM允许它们在默认情况下并发执行。TM系统监视并发临界段,以检测它们之间的任何“冲突”。当冲突出现时,TM系统强制一个或多个临界段等待或回滚,这样就不会发生干扰。这是由TM系统自动完成的。

到目前为止,大多数研究都集中在在用户程序中使用TM,而新兴的TM建议大多是使用相当人工的玩具应用程序和基准来评估的,这些基准旨在探索TM设计中出现的各种权衡。

相比之下,Rossbach等人在这里描述的研究探索了TM在操作系统中的使用。这样的研究很重要,原因有很多。首先,它通过创建基于TM的程序(操作系统)为TM研究社区提供了重要的价值,这些程序比目前用于评估TM系统的大多数人工工作负载更大、更复杂、更现实。其次,TM有可能提高操作系统本身的性能和可伸缩性,甚至在简化操作系统的同时。因为所有的用户程序都依赖于操作系统,所以它的可伸缩性和正确性对多核系统的成功至关重要。

对用户程序的TM研究不一定会得到对操作系统最好的TM支持。一方面,操作系统面临着一些用户程序所没有的挑战。特别是,操作系统必须在同时运行各种用户程序时可靠地执行,因此不能利用特定程序的知识来提高性能和可伸缩性。此外,与典型的用户程序相比,操作系统采用了更广泛的同步机制,并且还必须代表用户程序处理各种复杂的问题,例如对低级系统设备的访问。

然而,操作系统可以利用其在系统中的特权角色,而用户程序不能这样做。例如,出于安全原因,用户程序不能阻止操作系统中断它,而操作系统对内核有完全控制,因此可以在完成重要任务时防止中断。

作者构建了两个利用TM的操作系统。他们首先尝试直接使用事务,而不是现有的同步机制。这种方法带来了许多挑战,特别是与锁用于防止关键部分之间的内存冲突以外的目的有关的事实,例如保护系统设备的输入和输出(I/O)。TM系统还不够成熟,无法支持这样的功能,这里学到的经验教训对TM研究人员很有价值。

然后,作者采取了一种更务实的方法:他们保留了现有的同步机制,并使用TM来尝试提高其性能和可伸缩性。通过这种方式,他们可以在需要的时候使用现有的锁,比如I/ o,同时也可以在其他情况下利用TM来实现以前不可能实现的并行。考虑到花费了数千人年的时间精心设计现代操作系统,以及第一个TM系统的局限性,这可能是在一段时间内在操作系统中开发TM的最实际的方法。

通过探索这两种方法,作者不仅有助于我们理解如何在大型和现实的代码库中使用TM,而且还提供了有价值的见解,了解哪些额外的TM特性可能对此类系统的长期最佳支持有用或必要。

回到顶部

作者

马克Moir(Mark.Moir@sun.com)是马萨诸塞州伯灵顿太阳微系统实验室的高级工程师。

回到顶部

脚注

DOI: http://doi.acm.org/10.1145/1378727.1378746


©2008 acm 0001-0782/08/0900 $5.00

允许为个人或课堂使用本作品的全部或部分制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。

数字图书馆是由计算机协会出版的。版权所有©2008 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map