基于软件内存事务的高性能服务器设计

来源 :电子科技大学 | 被引量 : 0次 | 上传用户:fanybul8899
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本世纪初,摩尔定律的失效加速了多核处理器的问世和不断普及,硬件并行化的发展反过来也推动了工业界对软件并发性的研究。软件内存事务是用软件的方法对内存操作进行封装,以事务的原子性与隔离型来保证并行程序执行逻辑的一种方法。较之于传统上基于互斥锁的多线程编程方法,软件内存事务具有编程接口易用,不产生死锁等优点。软件内存事务主要可分为基于锁的实现和无锁的实现,本文分别详细介绍了两大类中的几个典型实现,并对它们各自的优缺点进行了分析和比较。经过研究我们发现,现实中的程序运行压力并不是恒定不变的,尤其对服务器程序而言,其处理压力往往会在短时内出现剧烈波动。我们还发现,能够使软件内存事务的性能达到最优化的参数往往取决于目标状态的运行时压力,如写入型事务占事务总数的比例,在内存地址上的访问竞争度等。在现有的软件内存事务的实现中普遍缺乏对运行时压力变化做出反应和调整的机制,于是我们提出了一种基于运行时压力检测和动态策略调整的软件内存事务实现:PA-TinySTM。PA-TinySTM主要由压力探测前端,动态调整模块,TinySTM主体和反馈信息处理后端四大部分组成。压力探测前端在事务进入执行前对事务执行速率变化进行检测,并相应地计算出当前系统的处理压力。反馈处理模块负责对一些事务执行以后才能获取的信息进行搜集和统计,例如事务执行平均时间,事务撤销率等。前后端的处理结果提供给动态调整模块用作动态调整的依据,动态调整模块又分为TinySTM运行时参数调整子模块和内存分配策略调整子模块。前者根据运行时处理压力变化和访问地址特性对TinySTM中的两个主要参数进行调整;而后者则根据多线程内存分配的压力变化和内存块大小的规律进行分配策略上的优化。这两个模块根据前后端模块得到的统计数据进行动态调整,以使PA-TinySTM的参数搭配和分配策略能够及时地适应运行时压力的变化。通过试验数据的对比我们可以看到,PA-TinySTM对运行时压力变化可以做出很快的反应,并通过动态调整参数和策略以适应压力的变化,通过这种方法,基于PA-TinySTM实现的服务器程序能够使自身的运行时性能达到并保持在最佳水平上。
其他文献
网络学习已经成为重要的研究和应用领域,吸引了大量研究者和实践者的关注。目前,不同的机构按照各自的方式组织、包装和发布学习内容,网络学习内容形式各异,分散、大量的重复
近年来,随着无线通信和网络技术的迅速发展,移动通信技术应用越来越广泛,服务日趋多样化。下一代无线网络将承载语音、数据、视频等多种业务,这些业务具有不同的带宽需求和服
随着现代信息网络技术的快速发展,用户对网络服务能力的要求也日益提高。由于受到网络带宽、网络设施等因素的限制,如何提高网络服务的效率成为现代网络急需解决的问题。内容
节点自定位技术是无线传感器网络的主要支撑技术之一。在大多数无线传感器网络应用中,确定传感器节点的物理位置是最基本的要求。目前现有的无线传感器网络节点自定位算法普
中医医案蕴藏着丰富的知识,它们作为中医药理论与经验的载体,贯穿并指导着临床实践,其学术价值和实用价值经久不衰。因此对医案的合理开发利用是中医研究中一项必不可少的工
互联网的迅猛发展使得计算机技术在各个领域的应用有了突飞猛进的发展,尤其是在实时控制、信息处理、信息传输、技术支持等领域广泛应用更是体现了其快速发展的特性。计算机
中文分词是中文信息处理领域内的一个重要课题,传统的分词方法多基于统计模型,尽管可以取得不错的效果,但是统计模型依赖大量有标注样本,具有人工标注样本代价高的缺点。主动
Web服务合成包括服务组合和服务协作。服务组合在设计阶段定义复合规范,在中心控制组件的帮助下完成合成过程;服务协作在运行时刻才选择和调用所需服务,通过对等消息传递完成
在人工智能(AI)领域,计算机博弈历来都是一个重要的研究方向。对中国象棋计算机博弈的研究始于上世纪八十年代,经过二十多年的努力,出现了大量优秀的博弈系统,在对弈能力方面
网格技术是近年来兴起的一门信息新技术,它代表了继Internet技术和Web技术之后的第三次技术浪潮。它将高性能计算机、分布式技术、因特网等多种技术有机地结合起来,实现地理