轻量级锁
摘要:构建轻量级锁的新方法:lwlocks(light-weight locks)。在低争用情况下,这些基元经过优化以保持高效性能,同时占用较小的内存空间。读写lwlock占用4个字节,互斥锁占用4个字节(如果不需要死锁检测则占用2个字节),条件变量占用4个字节。相应的pthread库的基元在x86-64平台上分别占用56个字节、40个字节和48个字节。lwlocks的API与pthread库的API类似,但只覆盖最常见的用例。lwlocks允许在争用情况下显式控制排队和调度决策,并支持"异步"或"延迟阻塞"方式获取锁。异步锁定有助于解决锁排序的限制,否则会限制并发性。lwlocks占用较小的内存空间使得可以构建具有非常细粒度锁定的数据结构,从而关键降低争用,并支持对数据结构的高并发访问。目前,Data Domain文件系统在内存中的索引节点缓存和通用的双向并发列表中使用lwlocks,该列表是更复杂结构的基本构建块。
作者:Nitin Garg and Ed Zhu and Fabiano C. Botelho
论文ID:1109.2638
分类:Operating Systems
分类简称:cs.OS
提交时间:2011-09-14