导读:本文包含了原子性论文开题报告文献综述、选题提纲参考文献及外文文献翻译,主要关键词:原子,变量,多线程,相关性,错误,多变,可达性。
原子性论文文献综述
李兰英,孙建达,朱素霞[1](2018)在《线程交互不变量的原子性违例错误并发检测》一文中研究指出原子性违例错误是并发软件开发中多发的并发错误之一,由于并发程序运行时线程的交互是随机的,若没有相应的同步措施,极有可能导致原子性违例错误的发生。针对现有的离线原子性违例错误检测算法踪迹记录大、冗余多和运行速度较慢等问题,对于两类特定的原子性违例错误提出了一种基于交互不变量的原子性违例错误并发检测算法。该算法首先提取程序的原始踪迹并去除冗余,并利用基于无序映射的散列表对踪迹进行分类;然后用栈提取的线程交互不变量标记线程交互,并利用多进程技术实现算法的并发;最后通过实验比较和分析了错误检测算法的效率和有效性。(本文来源于《计算机科学与探索》期刊2018年07期)
王德智[2](2017)在《基于AJAX的Web应用原子性违反检测及定位》一文中研究指出Web应用是一种客户端(或用户界面)运行于一个Web浏览器上的软件应用。一个前端Web应用程序包括HTML页面、CSS样式文件以及相关的JavaScript脚本等。AJAX(Asynchronous Javascript And XML)是 Web 应用中异步调用的最普遍、最有效的实现,但异步调用的回调机制在增加客户端处理事务吞吐量的同时,会造成浏览器端和服务器端之间的并发缺陷。Web应用原子性违反是一类特殊的并发缺陷:原子区域被异步事件的回调机制打断的操作。异步事件的触发和回调执行在一个原子区域上的操作应该是连续的,而当这一连续的原子性操作间产生一个异步请求行为,使得当前异步事件和另一个异步事件的回调操作间的顺序变成不确定,最终影响输出结果,并可能造成商品超卖、系统崩溃等严重问题。现有研究通常采用静态分析方法进行Web应用原子性违反检测,具有高覆盖率的优点,但还存在精确度低、不能分析JavaScript动态特性等不足。为此,根据JavaScript的特性和动态分析框架Jalangi,我们实现了一种结合动态分析和约束求解的JavaScript原子性违反检测及定位工具AVChecker(Atomicity Violation Checker的缩写)。AVChecker包括5大模块:动态插桩、原子区域识别、原子性违反检测、事件建模和原子性违反定位,各部分功能如下:(1)动态插桩模块首先通过插桩记录数据流和控制流信息,然后提取Web应用程序中与JavaScript函数相关的一些元素信息,包括XHR对象、对应DOM调用的API、匿名回调函数等。(2)原子区域识别模块主要分析JavaScript函数的调用关系,包括回调函数的调用,然后识别出回调阶段完整的函数执行链,用于识别出叁种类型的原子区域:HTML,CSS 和 JavaScript。(3)原子性违反检测模块首先构造活动间事件约束,包括事件间的原子区域约束和事件内的函数约束,然后对约束进行重新编码,再将SMT求解器作为求解工具来检测是否存在原子性违反。(4)事件建模模块主要将收集到的Trace中信息转换为一个完整的事件模型Aevent,包括对XHR对象的建模、DOM元素的识别和提取以及JavaScript 回调函数的处理。(5)原子性违反定位模块实现了细粒度的并发缺陷定位,即首先采用有限状态自动机表达AJAX的周期,并根据动态事件模型Aevent,设计规则将Trace转换成基于Aevent的Trace,再依据检测到的原子性违反结果定位到造成违反的Aevent 事件对 TAP。实验中的网站选自Alexa-top500,我们从中选取了 22个包含稳定原子性违反的网站。实验结果表明:AVChecker可以有效检测出Web应用中基于AJAX的原子性违反,误报率较低(18%);准确率可达到81.96%,好于现有的检测工具EventRacer,并且能检测出更多DOM类型的问题(175个VS94个)。定位实验结果表明我们算法的定位成功率达到84.5%。(本文来源于《南京大学》期刊2017-05-01)
王继魁,董延华[3](2016)在《Web服务组合中保证事务原子性需求的研究》一文中研究指出目前,Web服务技术在Internet的发展中扮演着重要角色.Web服务让企业可以把内部业务进程作为服务进行外包,也可利用已有的Web服务的动态重组提供有价值新的服务.虽然,Web服务技术蓬勃发展,但现有的技术缺乏事务处理机制,难以保证服务组合中某服务失败后对事务的原子性需求.为了建立可靠的Web服务组合,本文提出保证服务组合失败后事务的完整性的一种事务化方法.(本文来源于《吉林师范大学学报(自然科学版)》期刊2016年04期)
逄龙[4](2015)在《多线程程序中关联变量原子性验证关键技术研究》一文中研究指出多线程程序中关联变量的原子性是指在共享内存的并行模型中,保证具有一定关联关系的共享变量集合,在任意的并行执行顺序访问条件下,其所满足的关联关系仍然成立的一种性质。该性质是多线程程序设计过程必须满足的约束之一,是保证多线程程序安全性的核心因素,是并行程序安全运行的重要前提。同时,随着多核硬件环境的日益普及,越来越多的软件通过并行化充分利用已有的计算资源以提高软件系统的性能,尤其在航天、武器和医疗等安全攸关领域有着广泛的应用。因此,验证并行程序中关联变量原子性的研究对保障并行程序的质量安全具有重要意义。本文主要对验证条件和验证过程所涉及的关键技术进行研究,首先研究验证条件的确定问题即确认验证目标,本文主要是要确定保持原子性的关联变量集合,重点解决原子性关联变量和一般关联变量混淆的问题。其次,研究如何判断程序是否满足验证条件即验证过程的问题,本文采取根据程序可达状态来进行判断的策略,先从决定程序可达状态的控制依赖和数据依赖角度出发,分别研究了面向变量访问次序判别的图可达性问题和指针别名分析问题,然后在此基础上研究了可达状态约策略问题。在图可达性问题中,具体解决非树边传递闭包计算问题、环子图查询和非结构化区域解析问题。在别名分析问题中,具体解决按需策略下分析精度不足的问题。在可达状态约简策略问题中,重点改善了并行程序可达状态粒度过粗导致约简效率低的问题,提出了并行干扰插值结构和基于此的并行程序符号执行算法,重点提高可达程序状态间通过蕴含关系合并的可能性并完善轮询语句完备性分析,进而实现对多线程程序原子性的高效验证。首先,对于关联变量提取问题,在验证条件中的关联变量挖掘与提取方面,针对现有面向原子性验证的关联变量提取方法误报率高的问题,提出了基于程序依赖图约简的关联变量挖掘与提取算法。通过简化程序控制依赖图中控制流图信息来泛化变量间非依赖性顺序的关联关系,然后利用频繁子图挖掘算法挖掘关联变量候选集合,最终通过过滤策略提取需要保持原子性的关联变量集合。实验中经人工确认,与现有基于频繁项挖掘的提取方法相比,该方法具有更低的关联变量误报率。然后,在验证阶段的控制流图可达性判断研究方面:(1)对于一般图可达性分析,针对一般图可达性算法缺少对程序控制流图中非树边和循环体内有向环子图的优化与处理问题,提出了一种层次线性化编码索引模式,利用控制流图中区域结构所隐含的层次顺序关系,建立表达多重从属关系的可达性索引。该编码不仅能够避免计算有向图非生成树边的可达性传递闭包,而且整合了程序控制流图中有向环子图的编码与图可达性判断,进而提高可达性判断效率。(2)对于指针别名分析问题,针对当前程序控制流图结构化方法难以满足程序分析的流敏感精度要求的问题,提出了程序控制流图的虚拟区域结构。通过分析匹配分支节点列表和结构化区域的对应关系,提出了一种非结构化区域内虚拟区域的构造方法,该方法根据未匹配分支节点列表冲突来增加虚拟汇聚结点,进而构造非结构化区域内虚拟区域。该方法不仅能够恢复非结构区域内隐含的区域结构,而且还保留了非结构化区域中原有各语句间的相对位置关系,提高了结构化方法的流敏感分析精度。其次,在验证阶段的指针别名分析方面,针对当前基于上下文无关文法的按需别名分析方法只具有流不敏感精度的问题,提出了流敏感精度的按需别名分析算法,将别名关系查询问题统一转换为对特定变量赋值实例在控制流可达条件下赋值路径的搜索问题,以实现流敏感的按需别名分析。实验表明,与流不敏感的按需别名分析相比,该方法可以在保证查询效率的前提下,有效提高按需别名分析的精度。最后,在并行程序可达状态计算方面,针对当前基于干扰的有界模型检测中限制搜索踪迹长度导致的不完备性问题和严重的计算负担问题,提出了面向多线程程序原子性验证的符号执行方法,该方法以约束逻辑程序为实现基础,利用并行干扰插值结构对多线程程序可达状态空间进行搜索。该结构对全局线程间调度进行过估计(Over-Approximate)、局部线程内不可行踪迹泛化、并行可达状态泛化叁个层次递进的对并行线程间的交迭执行状态进行抽象,实现了快速的状态空间约简,缓解了处理循环体时对代表性踪迹的完全展开导致的严重计算负担问题,同时保证了并行验证的完备性。上述方法的提出,有效解决了多线程程序中关联变量原子性验证中的关键问题,为提高并行程序安全性验证的自动化程度、效率和准确性,以及提高并行软件质量奠定了理论基础。(本文来源于《哈尔滨工业大学》期刊2015-06-01)
周辉,张向利,张红梅[5](2014)在《基于ECDH密钥交换算法的电子商务协议原子性设计》一文中研究指出针对数字交易中商家收钱不发货和顾客收货不承认等货物传输的安全性问题,设计一种基于ECDH密钥交换算法的电子支付协议原子性方案,通过客户和商家共同协商产生数字货物。结果表明,所提方案有效地解决了电子商务中有关数字交易卖方不发货、发货不符合规定和买方收货却抵赖不承认的问题。(本文来源于《桂林电子科技大学学报》期刊2014年05期)
霍书全[6](2014)在《原子性原则和外延性原则》一文中研究指出逻辑原子主义主张把所有命题分析为原子命题,原子命题之间没有内涵关系,只具有外延关系,以原子命题为基本层次的语言能解决所有哲学问题。如果自然语言能够分析到确定的原子命题,那么逻辑原子主义的目的就能达到,它同时也给经典逻辑的符号系统提供了一个完美的语义解释。但是逻辑原子论者不能给出具体的原子命题,而且原子命题也不都具有相互独立性,维特根斯坦为此放弃了原子命题,而罗素和卡尔纳普也因此对原子性原则和外延性原则进行了弱化。但是,弱化的原子性原则在遇到自然语言的内涵命题时同样难以给出合理的分析。为经典逻辑提供更加合理的语义解释和发展符号逻辑,是分析哲学和逻辑学的后续任务。我们暂时还不能用符号语言来取代自然语言,也不能相反,而是应该把符号语言看做自然语言扩充和抽象的结果。(本文来源于《学术研究》期刊2014年09期)
王云飞,刘剑,马越[7](2014)在《基于锁信息的多线程软件原子性错误检测方法》一文中研究指出原子性错误是多线程软件开发中常见的并发错误之一。传统的静态分析方法存在误报的可能,动态方法由于利用的信息过少而存在运行效率低下的问题。针对以上问题,设计以动态方法为基础通过计算锁信息,根据锁信息判断是否可能发生原子性错误的方法,据此减少程序的回溯次数和运行时间。通过对一系列开源程序的测试,实验数据证明此方法可以大大提高原子性错误检测的效率。(本文来源于《计算机应用与软件》期刊2014年06期)
李潇,刘剑,易秋萍[8](2012)在《一种并发程序原子性错误的检测方法及工具》一文中研究指出原子性错误的检测对于多线程程序并发错误的分析有着重要意义,其检测难点在于从违反原子性的情况中识别出会导致程序出错的执行序列。为了解决这个问题,采用测试训练提取原子性迁移对集合以及模型检测方法,提出原子性错误自动检测算法MC-AVIO。基于MC-AVIO实现原子性错误检测工具AtomFinder,通过对多组开源软件的测试,证明MC-AVIO对原子性错误的检测是有效的。(本文来源于《计算机应用与软件》期刊2012年11期)
胡敏,陈雨亭[9](2012)在《基于距离挖掘的多变量原子性违例检测》一文中研究指出针对并发程序错误中涉及到的多变量原子性违例检测问题,提出一种动态检测算法。通过计算共享变量间的距离,推测变量之间的相关性,利用相关联的变量关系检测原子性违例错误,确定原子区域的挖掘方法。实验结果表明,该算法能有效挖掘程序中的相关变量,并检测程序中涉及到的多变量原子性违例错误。(本文来源于《计算机工程》期刊2012年13期)
胡敏[10](2012)在《对涉及到多变量的原子性违例错误的动态检测》一文中研究指出随着多核计算机系统的广泛应用,基于多核系统的并发程序的编写变得日益重要。相比单线程的顺序程序而言,分析和检测多线程并发程序中的错误不仅难度高,而且代价大。对于并发程序,因为线程的执行在很大程序上依赖于随机的线程调度机制,执行序列是不确定性的,所以并发程序,相同的输入条件产生的结果往往也是不确定性的。目前有许多静态或动态分析工具用来自动发现并发程序中的错误。由于其各自检测的错误类型和关注的问题点不同,所以工具分别在某个特定方面具有其代表性。原子性违例是一类常见的并发错误类型,许多相关工作对检测和预防此类错误做出重要贡献。而且,调研数据显示在实际错误中多变量的原子性违例错误占原子性违例错误中较大比例,例如在程序中某个对象的多个域需要不被打断地原子性被更新。而在缺乏程序原子性标识和文档说明时,仅仅简单通过程序的数据流与控制流很难检测出程序中涉及到多变量的原子性违例。在本文中,我们提出一种新颖的基于统计挖掘的方法来检测程序中涉及到多变量的原子性违例,在这种方法下,我们可以不要求在程序中提供相关的程序原子性标识和注释说明。这种方法的核心思想是通过共享变量的不同纬度的多种属性来计算共享变量之间的距离,通过变量间的距离来衡量共享变量的相关度。我们已将这种算法思想实现,并选择了一系列经典的Java并发基准程序对该工具进行实验评估。实验结果显示我们的方法可以通过动态分析程序的行为特征,有效自动地推测程序中共享变量的相关性,并且使用程序中挖掘到的具有潜藏原子语义的相关联变量对来检测并发程序中可能的多变量原子性违例这类并发错误。(本文来源于《上海交通大学》期刊2012-01-04)
原子性论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
Web应用是一种客户端(或用户界面)运行于一个Web浏览器上的软件应用。一个前端Web应用程序包括HTML页面、CSS样式文件以及相关的JavaScript脚本等。AJAX(Asynchronous Javascript And XML)是 Web 应用中异步调用的最普遍、最有效的实现,但异步调用的回调机制在增加客户端处理事务吞吐量的同时,会造成浏览器端和服务器端之间的并发缺陷。Web应用原子性违反是一类特殊的并发缺陷:原子区域被异步事件的回调机制打断的操作。异步事件的触发和回调执行在一个原子区域上的操作应该是连续的,而当这一连续的原子性操作间产生一个异步请求行为,使得当前异步事件和另一个异步事件的回调操作间的顺序变成不确定,最终影响输出结果,并可能造成商品超卖、系统崩溃等严重问题。现有研究通常采用静态分析方法进行Web应用原子性违反检测,具有高覆盖率的优点,但还存在精确度低、不能分析JavaScript动态特性等不足。为此,根据JavaScript的特性和动态分析框架Jalangi,我们实现了一种结合动态分析和约束求解的JavaScript原子性违反检测及定位工具AVChecker(Atomicity Violation Checker的缩写)。AVChecker包括5大模块:动态插桩、原子区域识别、原子性违反检测、事件建模和原子性违反定位,各部分功能如下:(1)动态插桩模块首先通过插桩记录数据流和控制流信息,然后提取Web应用程序中与JavaScript函数相关的一些元素信息,包括XHR对象、对应DOM调用的API、匿名回调函数等。(2)原子区域识别模块主要分析JavaScript函数的调用关系,包括回调函数的调用,然后识别出回调阶段完整的函数执行链,用于识别出叁种类型的原子区域:HTML,CSS 和 JavaScript。(3)原子性违反检测模块首先构造活动间事件约束,包括事件间的原子区域约束和事件内的函数约束,然后对约束进行重新编码,再将SMT求解器作为求解工具来检测是否存在原子性违反。(4)事件建模模块主要将收集到的Trace中信息转换为一个完整的事件模型Aevent,包括对XHR对象的建模、DOM元素的识别和提取以及JavaScript 回调函数的处理。(5)原子性违反定位模块实现了细粒度的并发缺陷定位,即首先采用有限状态自动机表达AJAX的周期,并根据动态事件模型Aevent,设计规则将Trace转换成基于Aevent的Trace,再依据检测到的原子性违反结果定位到造成违反的Aevent 事件对 TAP。实验中的网站选自Alexa-top500,我们从中选取了 22个包含稳定原子性违反的网站。实验结果表明:AVChecker可以有效检测出Web应用中基于AJAX的原子性违反,误报率较低(18%);准确率可达到81.96%,好于现有的检测工具EventRacer,并且能检测出更多DOM类型的问题(175个VS94个)。定位实验结果表明我们算法的定位成功率达到84.5%。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
原子性论文参考文献
[1].李兰英,孙建达,朱素霞.线程交互不变量的原子性违例错误并发检测[J].计算机科学与探索.2018
[2].王德智.基于AJAX的Web应用原子性违反检测及定位[D].南京大学.2017
[3].王继魁,董延华.Web服务组合中保证事务原子性需求的研究[J].吉林师范大学学报(自然科学版).2016
[4].逄龙.多线程程序中关联变量原子性验证关键技术研究[D].哈尔滨工业大学.2015
[5].周辉,张向利,张红梅.基于ECDH密钥交换算法的电子商务协议原子性设计[J].桂林电子科技大学学报.2014
[6].霍书全.原子性原则和外延性原则[J].学术研究.2014
[7].王云飞,刘剑,马越.基于锁信息的多线程软件原子性错误检测方法[J].计算机应用与软件.2014
[8].李潇,刘剑,易秋萍.一种并发程序原子性错误的检测方法及工具[J].计算机应用与软件.2012
[9].胡敏,陈雨亭.基于距离挖掘的多变量原子性违例检测[J].计算机工程.2012
[10].胡敏.对涉及到多变量的原子性违例错误的动态检测[D].上海交通大学.2012