一、多线程应用程序竞争状态的安全性研究(论文文献综述)
杨豪[1](2021)在《基于Pthreads的线程级推测机制的研究》文中研究说明随着摩尔定律的发展,处理器进入了多核时代。串行程序的并行化迎来了全新的挑战,传统的并行技术需要确保不同的并行线程之间不存在依赖关系,并行策略比较保守,在程序加速方面遇到瓶颈。线程级推测(TLS)作为一种自动化并行技术,以一种激进地方式挖掘程序在运行时的内在并行性,它将具有数据依赖性的串行程序划分为多线程程序,并在多核平台上并行执行。然而,现有的TLS模型会产生额外的开销,甚至在频繁地违反数据依赖关系时,可能会抵消掉TLS带来的性能收益。针对上述问题,本文提出了一种基于Pthreads(POSIX线程库)的线程级推测机制,主要工作如下:(1)提出基于Pthread的TLS线程执行模型。针对线程级推测执行模型在进行冲突检测时产生大量的回滚开销问题,根据推测执行时子线程执行阶段的不同,本文将其分为空闲态、推测态、可提交态,并基于这三种状态之间的相互转换关系,对主线程与子线程的推测执行流程进行了设计。同时使用Pthreads编程模型对所提执行模型的推测初始化过程、子线程激活以及提交操作等工作机制进行了设计与实现,为串行程序的推测并行提供理论支撑与平台支持。(2)设计基于共享栈的推测变量管理机制。针对多线程执行时程序间依赖变量的推测操作问题,为每个子线程分配了一个线程本地存储变量,用以记录子线程对推测变量的操作以及推测值。同时,为每个推测变量设置了一个共享存储变量,用于多线程版本推测变量的冲突依赖检测以及提交操作,实现线程对推测变量的读写操作并确保多线程间对同一推测变量的数据安全。之后,定义了一组推测变量API,用于简化线程级推测编程难度和提高推测并行编程效率。为验证本文所提基于Pthreads的线程级推测机制的加速比性能,本文选取了三个基准测试程序从线程可扩展性、程序输入规模、推测执行时间以及方法对比四个方面进行实验验证以及结果分析。在线程可扩展性实验中,实验数据表明本研究在随着子线程数的增加时,具有良好且稳定的推测并行收益;输入集对比实验表明随着输入数据规模的增加,推测多线程所获得的并行收益也会随之增加;通过剖析程序的推测执行时间可知,本研究可以在获得并行收益的同时减少误推测执行;最后通过与AIPM方法进行比较,本文所提出的基于Pthreads的线程级推测机制具有较高的加速比性能,可使推测加速比性能提升约5.19%。
张玉琢[2](2020)在《列控安全计算机分区软件的形式化建模与验证方法研究》文中研究表明随着通信技术、控制技术和计算机技术在铁路领域的飞速进步和应用,列车运行控制系统(简称“列控系统”)不断向着综合化、模块化的方向发展。安全计算机作为列控系统的核心部件,承载其大部分的安全功能,是一个典型的安全苛求系统。现代安全计算机正由传统的电子机械密集型向着软件密集型逐步过渡,软件所占比例逐步上升,规模也越来越大,由此产生了模块化的概念。为了实现安全计算机的高容错能力,采用分区的方式实现不同分组的软件在时间和空间上互不影响,独立运行。由于分区软件具有并发性和共享性的特征,对系统安全性和可靠性带来了挑战。而形式化方法以形式或逻辑系统为基础,能够支持对计算机系统进行严格的建模和验证,在系统设计开发过程能够分析、处理、证明系统性质,提高和保障其可信性。论文阐述了列控安全计算机综合模块化的发展趋势、分区软件结构特性及管理机制,对列控安全计算机分区软件形式化研究作了梳理,根据安全计算机的建模需求,归纳总结了分区管理需要解决的安全性、实时性和可调度性三方面的研究重点。为了对这些指标进行定性和定量分析,本文从以下几个方面开展了研究:(1)论文针对并行程序安全性的问题,设计了基于事务内存的并发安全控制机制,利用并发分离逻辑设计了推理抽象机,并制订了推理规则。之后采用不变式证明方法对安全机制的可靠性进行推理验证,证明了该机制能保障并行程序的正确性。随后搭建了2乘2取2安全计算机平台,对并行应用操作共享内存的过程进行了安全性测试,验证了该安全控制机制可以保证并发安全地访问共享资源。(2)论文针对实时性的问题,对传统的时间Petri网进行拓展,考虑到非马尔科夫时间参数,提出了基于随机时间Petri网的建模方法,突破了列控系统Petri网模型要求时间参数为指数分布的限制。通过随机时间Petri网的定义和相关参数的引入,能够对非马尔科夫时间参数中的确定性分布、Erlang分布、超指数分布进行区分处理。为了利用随机时间Petri网模型进行实时性验证,提出了基于随机状态类的瞬态分析算法,通过随机状态树的构建和马尔科夫再生点的计算,对含有一般性分布的时间参数的模型进行瞬态分析。之后搭建了分区通信的随机时间Petri网模型,利用所提出的算法进行了实时性分析验证,对过程数据、消息数据和监督数据分别采用不同调度算法的时延进行了分析。随后利用2乘2取2安全计算机平台,结合开源实时以太网技术POWERLINK,对分区通信实时性能进行测试。(3)论文针对可调度性的问题,同样对传统的时间Petri网进行了拓展,提出了带有优先级时间Petri网的建模方法。针对时分多路复用全局调度和抢占固定优先级局部调度策略,克服了非确定性的执行时间和局部资源共享的难题,对包含有周期、偶发、抖动任务的双层调度机制进行了建模。并且提出了基于状态空间枚举的分析算法,识别从任务释放开始到任务结束的所有路径,提取最优完成时间和最差完成时间,检验任务截止时间是否满足,从而实现模型的可调度性分析。随后在2乘2取2安全计算机平台上,利用Vxworks的根任务调度实现了分区软件的调度,并对分区调度时刻信息进行了测试。最后在对全文工作和创新点总结的基础上,提出了下一步需要改进的地方和继续研究的问题。图37幅,表18个,参考文献116篇。
刘欢[3](2020)在《基于上下文敏感分析的数据竞争检测方法研究》文中研究指明随着计算机硬件的迅速发展,系统对软件的要求也越来越高,并发程序的应用越来越广泛。并发程序更好地发挥了多核处理器的性能优势,同时也提高了开发人员的编程效率,然而并发程序内部具有并发性和不确定性,使得开发人员在编程过程中容易引入并发错误,严重的并发问题会导致程序崩溃,因此对并发问题的检测和修复尤为重要。在这些并发问题中,数据竞争占有较大比例,因此,对数据竞争检测是有必要的。数据竞争是最常见的并发缺陷之一,已有的工具在检测数据竞争过程中会出现较多的误报和漏报。为了提高数据竞争检测过程的准确性,采用了一种基于上下文敏感分析的数据竞争检测方法,该方法首先使用控制流分析构建上下文敏感的调用图,通过具有敏感性的调用图收集变量的访问信息。然后采用逃逸分析查找出可能发生数据竞争的线程逃逸对象,排除不会发生数据竞争的局部变量,以缩小检测空间。其次进行上下文敏感的别名分析,分别对变量和变量所持有的锁集进行别名判断,以减少误报和漏报。最后,利用发生序关系分析判断可能数据竞争对中两个访问事件之间是否存在偏序关系,从而减少因存在发生序关系而不会发生数据竞争的误报。根据所提出的数据竞争检测算法,在WALA软件分析框架实现了一个静态数据竞争检测工具ConRacer。ConRacer是基于Eclipse平台实现的自动检测数据竞争的插件工具,为了验证ConRacer的有效性,选取了基准测试程序对其进行测试。在实验中,分别选取了Pingpong,Moldyn,Montecarlo和Lusearch等10个基准测试程序对ConRacer进行了评估,并与现有的检测工具SRD、RVPredict和Said进行了比较,实验结果表明,ConRacer不仅可以有效的检测数据竞争,而且与对比工具相比可以有效的减少数据竞争检测过程中的误报和漏报。
张雪萍[4](2020)在《基于Petri网展开的OSEK/VDX应用程序验证方法研究》文中指出OSEK/VDX作为分布式实时系统的标准,已被汽车电子行业广泛采用。为提高汽车的整体性能,应用程序的设计趋于并行和复杂化,OSEK/VDX程序的正确性验证得到了越来越多的关注。车载OSEK/VDX应用程序的验证方法目前主要是测试和模型检验。然而,由于并行程序在运行过程中存在的高度不确定性及交互复杂性,传统验证方法存在测试不完备与状态爆炸等问题。针对上述问题,本文提出一种基于Petri网及其展开的OSEK/VDX程序建模与验证方法。主要研究内容如下:(1)给出一种基于颜色Petri网的OSEK/VDX关键组件与应用程序建模方法,可根据具体的应用程序构建相应的Petri网模型;(2)提出颜色Petri网的展开与反向展开方法,给出了具体的展开与反向展开算法。进而,将系统中并发任务安全性验证问题转换为Petri网目标标识的可覆盖性问题,并借助所提出的反向展开技术实现了 OSEK/VDX应用程序部分安全性问题的验证。相比传统的验证方法,本方法可以有效缩小需搜索的状态空间、缓解状态爆炸问题。(3)时间因素是影响OSEK/VDX应用程序安全性的一个重要指标,传统基于Petri网的程序验证方法往往忽略时间属性。本文将时间要素引入基于Petri网的OSEK/VDX应用程序建模方法中,给出考虑时间因素后的OSEK/VDX程序正确性验证问题。在此基础上,借助颜色Petri网的展开与反向展开技术对程序的死锁、任务安全性与任务同步等问题进行了分析。
李梦珂[5](2020)在《多线程程序的动态数据竞争检测技术研究》文中研究指明随着多核硬件的广泛普及,多线程编程技术也被应用到计算机领域的各个方面,多线程编程技术能够更加充分的利用多核众核设备的超强计算能力,在同一时间执行多项任务,还可成倍加速某些任务,特别适用于某些需要快速响应用户操作的任务。但多线程程序在执行过程中会产生大量可能的交错,执行顺序具有极大的不确定性,导致严重的并发错误,数据竞争是一种具有高度破坏性的并发错误。数据竞争会导致数据损坏、内存泄漏、程序崩溃或不正确的执行等现象。当多个线程同时访问同一共享变量,至少存在一次写访问操作时,会引发数据竞争。由于无序的线程交错,在调试过程中数据竞争会随机出现或消失,查找和重现它们异常困难。因此,检测出数据竞争错误是提高并发软件可靠性和安全性急需解决的问题。国内外研究人员已经提出了许多静态和动态程序分析技术来检测数据竞争。然而,在检测开销、精度、覆盖率、速度等方面还有改进的空间。文中提出一种基于优化的FastTrack算法和锁模式相结合的动态混合数据竞争检测算法AsampleLock。该算法利用采样技术,监控同一时刻同时运行的来自并发线程的函数对;通过预竞争检测获得真正涉及数据竞争的内存访问对;为了降低算法受线程调度的影响,AsampleLock算法采用nolock-hb关系来判断访问事件的并发关系;采用map记录所有共享变量的读写信息,并结合锁模式进行动态数据竞争检测,在减小竞争检测分析开销的同时减少漏报率和误报率。基于上述方法实现了数据竞争检测系统AsampleLock,选择基准测试集PARSEC进行评估此系统,并与FastTrack、LiteRace、MultilockHB工具进行对比分析,实验结果表明AsampleLock的时间开销与FastTrack相比,整体平均降低了7%,文中系统数据竞争检测率与LiteRace和FastTrack相比分别增加了38%和23%。
吴卿蓉[6](2020)在《面向协议栈软件高并发无锁调度算法的研究与实现》文中研究表明传统的多线程机制性能较差,数据同步方式是基于线程锁来避免资源竞争,在并发的环境下,线程锁可以保护共享数据,使得计算机系统中有限的资源可以被安全有序的访问。目前,协议栈软件多个线程通信和同步的主流的方法就是使用各类线程锁来进行数据同步。但是,基于锁的同步往往伴随着严重的缺陷,具体表现在线程锁会带来高度的资源竞争,在抢占资源的时候具有排他性,某一时刻只有一个线程具有使用某临界区资源的权限,这种串行等待资源运行的方式使得程序运行效率非常低,甚至会出现所有线程互相等待系统中其他线程所占用的资源而任何一个线程都不会主动放弃占用资源的死锁现象。针对传统协议栈软件系统的多线程通信机制下时延开销大,从而引起其运行效率低的问题,本论文提出一种适配协议栈软件N-BASE平台的安全高效的无锁数据结构,并且提出一种在无锁机制下的优化调度策略的方案,实现了协议栈软件在高并发状态下性能的极大提升。文章主要论述了:(1)对比分析了不同无锁数据结构的优点、缺点,结合协议栈软件的特点,提出一种全新的无锁并发数据结构,具体分析了其算法原理和工作机制,并且证明了算法的正确性。(2)针对无锁机制下数据同步问题,结合空间局部性原理和环形动态数组的思想,充分利用了N-BASE平台调度处理IPS时充足的内存资源,适配并发数据结构的高效无锁通信机制,避免了多线程环境下访问共享队列时引起的互斥开销。(3)提出一种无锁机制下N-BASE平台调度策略的优化方案,从系统层面阐述了多个线程在无锁机制下高效有序地完成线程通信的算法实现从而达到系统性能的大幅度提升。
孙国傲[7](2020)在《GP-VPP:基于多线程应用的VPP用户态协议栈优化研究》文中研究指明近些年,工业界和学术界为了避免内核网络协议栈在网络IO方面的局限性,在用户空间设计实现了高性能的网络协议栈和数据包处理框架。在这些用户空间网络协议栈和快速数据包处理解决方案中,矢量包处理器(Vector Packet Processor)是一个典型的高效数据处理框架,它集成了高效的绕过内核技术以实现高性能的I/O;同时也通过向后兼容的通信库向应用层提供基于共享内存的核间通信方式。但是,当在多核系统上扩展多线程应用程序的性能时,本文发现了一个增加VPP用户态协议栈不稳定性的功能限制和两个导致协议栈性能不同程度地下降的瓶颈:(1)关键控制事件和I/O事件之间的干扰破坏了有状态传输协议的正确性,原因是VPP数据包处理图机制下矢量之间的队列延迟使得部分关键控制事件失去时效性;(2)协议栈会话层服务模型可抽象为多生产者-单消费者模型,该模型降低了多线程处理的并行度,不利于在多核系统上实现高性能扩展;(3)LD_PRELOAD库中基于锁的会话共享机制会导致相当大的应用线程间锁竞争开销。为了消除上述VPP协议栈的局限性,本文提出了分组分区矢量包处理器协议栈(Grouping Partition Vector Packet Processor),它基于现有的VPP框架设计增加了一些针对上述局限的优化模块,使VPP协议栈的数据包处理路径更适合网络密集型多线程应用。GP-VPP利用智能丢包策略解决了传输协议层中由于VPP图节点间队列延迟导致的控制/IO事件干扰问题;在多个VPP协议栈线程上对应用工作线程进行分组和分区,从而提高多线程处理并行性;以绕过带锁会话层的方式避免特定多线程应用场景下的锁竞争开销。通过实验验证和分析,在多线程模式下,在使用VPP协议栈为启动八个工作线程(对应有八个工作进程)的NGINX提供轻量TCP数据流服务时,GP-VPP协议栈的处理性能比原VPP协议栈在最优情况下高出两倍。
刘慎明[8](2019)在《系统软件并行与安全的关键技术研究》文中研究表明目前,计算机系统已经进入了并行计算的时代。大量的并行计算体系架构的出现为计算机的发展带来了重大的机遇和挑战。多核处理器作为并行计算的体系架构中最重要的架构之一,也是目前使用最为广泛的并行体系架构。在并行体系架构的环境下,如何有效地提高系统软件的并行性能和资源的利用率为系统软件开发者和研究者带来巨大的挑战。另一方面,计算机系统软件的安全问题也日益严峻。随着大型软件复杂度不断提高,越来越多的软件缺陷也随着产生。如何保障系统软件,特别是作为系统软件栈最底层的基础软件和可信基的操作系统软件的安全性具有重要的研究意义。本文的研究工作集中在两个方面的问题,一方面是并行环境下系统软件的资源利用率和伸缩性问题,另一方面是系统软件的安全性问题。首先,本文针对多核平台的核利用率不足的问题进行了研究。核利用率不足的问题在服务提供商的集群的节点上尤为突出,由于有对延迟敏感的服务存在,服务提供商通常会采取为这类服务预留充分的核资源,以及禁用同步多线程技术这类较为保守的资源分配策略,从而确保延迟敏感服务的服务质量。然而,这样的策略会导致系统中核资源利用率较低。本文在Linux系统上提出了一个用户态资源管理中间层软件Hermes,它通过两个方面来提升节点的核利用率,并保证延迟敏感服务的服务质量:(1)动态地调节延迟敏感服务独占的处理核资源的数量使之恰好能够保证服务质量,同时其他处理核的资源能够被其他工作负载充分利用;(2)在延迟敏感服务同其他工作负载之间进行协作式的线程调度,以充分发挥出同步多线程技术带来的核资源利用率的提升。通过实验评估,本文的提出的用户态资源管理中间层软件能够在不影响延迟敏感服务的服务等级目标的同时,极大地提升节点的核资源利用率。接着,本文以Linux内核的进程地址空间为代表,研究了多核环境下操作系统软件的伸缩性问题。目前Linux内核的进程地址空间管理采用了集中式的设计思想,即使用全局的红黑树管理进程地址空间中的所有线性区。对于共享地址空间的多线程应用程序来说,频繁地获取/释放锁会造成很大的系统性能开销。为了解决多核环境下进程地址空间的伸缩性问题,本文设计并实现了一种新型的可伸缩的进程地址空间ScaleVM,将进程地址空间中根据系统核数划分到不同的内存区间,并且对于每一个内存区间采用一种高并发的无锁跳跃表的数据结构来组织其中所有的线性区。实验结果表明,基于去中心化的思想设计的进程地址空间ScaleVM有效地避免了传统的进程地址空间设计带来的共享资源竞争的瓶颈,相比于同类方法,ScaleVM在多核环境下表现出了非常好的伸缩性。最后,本文研究了文件系统的安全性问题。由于文件系统本身具有巨大的代码量,功能语义与运行时状态非常复杂,因此文件系统的代码缺陷检查技术与形式化验证技术还无法有效地应用到主流的商业文件系统中。而宏内核操作系统在生产环境中的应用已经非常广泛,围绕着宏内核架构已经有不计其数的软件被开发出来,因此研究如何提升宏内核的安全性有很强的实用价值。之前的工作表明,内存错误导致的漏洞是在文件系统中最广泛存在的漏洞类型,影响了文件系统和内核运行时的安全性,因此本文设计并实现了一种利用地址空间隔离技术来将内核的文件系统进行隔离的方案。本文通过实验验证了文件系统隔离方案的有效性,该方案能够有效地防御典型的利用文件系统的内存漏洞进行攻击的模式,从而达到提升操作系统安全性的目的。本工作对于在其他大型宏内核架构上进行文件系统的地址空间隔离具有重要的参考价值。
陈鲍孜[9](2019)在《面向MPSoC虚拟化体系结构的操作系统关键技术》文中进行了进一步梳理集成电路制造工艺的发展与人们对计算性能的不断追求,使得MPSoC成为从移动计算到高性能计算硬件平台上的主流发展方向。随着越来越多的计算单元被集成到单一芯片上,如何更有效地使用单芯片上的资源从而获得良好的系统伸缩性成为摆在系统软件设计者前面的重要问题。在MPSoC系统上部署虚拟化技术是解决该问题的一种有效的解决方式。同时,虚拟化也带来了保障虚拟机的安全和提高虚拟机系统性能的挑战。针对面向MPSoC虚拟化体系结构的操作系统技术进行研究,可为未来基于多核处理器芯片的系统软件设计与实现提供良好的理论与技术基础,具有重要的理论意义与应用价值。本文针对面向MPSoC虚拟化体系结构的操作系统关键技术中的虚拟化系统结构、边信道安全隔离机制、网络I/O虚拟化的扩展性性能优化等方面展开了一系列的研究。文章首先对开源虚拟化平台与体系结构、虚拟机安全与I/O虚拟化技术进行了综述,然后介绍了基于飞腾硬件虚拟化技术的的操作系统设计,对虚拟化体系结构的边信道安全与高可伸缩MPSoC网络I/O的虚拟化技术进行了研究,最后实现了飞腾平台下基于硬件分区的虚拟机监控器并完成了系统性能测试。具体贡献包括:1)针对飞腾平台的体系结构特点,设计了基于飞腾硬件虚拟化技术的操作系统。文章分析了飞腾平台所提供的CPU虚拟化、内存虚拟化、中断虚拟化以及计时器虚拟化的硬件机制,讨论了飞腾平台下虚拟化系统设计中触发自陷的敏感操作、虚拟机上下文切换、两阶段地址转换机制、中断注入方式以及计时系统,完成了面向飞腾平台虚拟化系统的软件设计。此外,文章分别从CPU虚拟化支持、上下文切换方式、内存虚拟化机制、计时器虚拟化机制、中断以及中断注入分析对比了飞腾平台硬件虚拟化机制与Intel x86平台的异同。2)针对虚拟化体系结构下的边信道安全,提出了一种针对熔断漏洞主动切断隐蔽信道的防护方法。该方法在检测到异常时将噪声注入边信道或对微体系结构状态进行复位,实现了针对熔断漏洞的按需隔离。相比现有的KAISER,该方法还可以用于防御针对系统寄存器的信息泄露(熔断漏洞变种II)。由于噪声注入或状态复位的操作仅出现在异常处理路径上,因此大部分普通应用程序的性能几乎不受到影响。根据测试,该方法引入的系统性能折损率不超过1%。此外,本文针对幽灵漏洞的Retpoline防护方案进行了性能分析,提出了利用用户态网络的性能优化方案,使其网络I/O性能折损率从6.67%降低至1.27%。3)针对多核虚拟机的可扩展性问题,设计实现了基于飞腾体系结构的多队列虚拟网络I/O机制。根据实验观测,当网络I/O并发度逐步提高时,飞腾平台下虚拟机系统性能出现了明显的性能回退,增加虚拟CPU数量反而会降低系统性能。基于飞腾硬件中断虚拟化技术,本文使用虚拟MSI实现了多队列虚拟网络I/O。该机制提高了飞腾平台下虚拟机的中断处理性能,增强了虚拟机网络报文处理在多核系统上的可扩展性。实验表明,当虚拟机的CPU核心数设置为12时,相对优化前设计,虚拟网络I/O的并发请求处理吞吐率在Linux网桥、Macvlan以及Open vSwitch三种配置下分别提高了53.03%、59.78%与71.26%。4)实现了基于飞腾平台的硬件分区虚拟机监控器,解决了由飞腾平台缓存特性引入的模拟设备实现问题。相比x86架构,飞腾平台将页面高速缓存的一部分管理工作暴露给软件系统。对于飞腾平台下模拟I/O设备的实现,系统软件需要显式地介入高速缓存系统,以保证系统正常运行所需的缓存一致性。本文对飞腾平台高速缓存一致性特点进行深入分析后,改进了虚拟化平台下客户操作系统内核的加载流程,解决了飞腾平台下模拟设备的缓存不一致问题。
于斌[10](2019)在《MSVL程序的高效运行时验证方法研究》文中研究表明建模仿真验证语言(Modeling,Simulation and Verification Language,简称MSVL)是一种时序逻辑程序设计语言,是投影时序逻辑(Projection Temporal Logic,简称PTL)的可执行子集,其包含丰富的数据结构、函数调用以及同步和异步通信机制,已成功应用于并发系统、反应式系统和嵌入式实时系统的模型描述、路径仿真和形式化验证。作为PTL的命题形式,命题投影时序逻辑(Propositional PTL,简称PPTL)具有完全正则表达能力,能够方便地对顺序、并行、区间相关和周期重复的性质进行描述。基于统一的PTL逻辑框架,现有的方法已经实现了对MSVL程序的运行时验证,用于检测程序的动态执行轨迹是否满足期望的PPTL性质。然而,目前的验证方法存在一些不足:首先,针对单条执行路径的时序逻辑性质验证,没有充分利用当前已经广泛普及的多核设备和分布式网络,导致验证效率不高;其次,针对程序执行中分配的内存区域,没有进行动态追踪,使得程序中存在的内存泄漏问题无法被及时发现;最后,针对含有分支路径的时序逻辑性质验证,不能保证发现的反例是所有路径中最短的,导致验证过程需要探索更多的状态空间。为了解决以上问题,本文围绕MSVL程序的高效运行时验证展开,主要工作概括如下:首先,提出了基于单机多核系统的MSVL程序并行运行时验证方法。该方法将程序执行生成的状态序列分为若干个被同时验证的片段,每个片段由一个线程池负责,线程池中的多个线程同时对一个片段进行验证,当一定数目的片段被验证后,这些片段的验证结果会被及时汇总以检测能否得到最终的验证结果。基于LLVM平台,开发了验证器PPTLCheck,实验结果表明相较于目前的验证工具,PPTLCheck的验证效率更高,并适用于大规模程序的完全正则性质的验证。作为验证实例,研究了多线程程序中多个子线程是否正确交替执行的验证问题,在对问题进行建模和性质描述后,使用PPTLCheck工具对多线程程序的动态执行进行验证。然后,提出了基于分布式网络的MSVL程序并行运行时验证方法。该方法利用分布式网络中性能各异的多核机器对程序执行产生的状态序列片段同时进行验证,在每台机器中,一个片段进而又被分为若干个能够被并行验证的子片段。为了多台机器高效合作,建立了用于消息传递的通信机制和任务分配的调度机制,并给出了一种自适应算法以自动调节不同机器中验证线程的数量。开发了基于局域网的PPTLCheck+工具,实验结果表明,PPTLCheck+比PPTLCheck具有更高的验证效率。作为验证实例,研究了SQLite3数据库提供的API在调用过程中是否符合规范的验证问题,为此,开发了SQLite3Check工具,其通过分析网页上描述的API调用规范,得到相应的PPTL公式描述后,使用PPTLCheck+对调用SQLite3数据库API的程序进行检测。进而,提出了针对MSVL程序内存泄漏的运行时检测方法。该方法采用动态符号执行技术尽可能多地运行程序的不同路径,在每条路径的执行过程中,后端检测器跟踪每个被访问的动态分配的内存块,计算指向每个内存块的指针数量,判断其是否发生泄露,并记录内存泄露位置和指向每个泄露内存块的变量变化情况,在程序执行后,将相应的内存释放语句添加到代码合适位置。基于KLEE工具和MSVL编译器,开发了DEF LEAK工具,实验结果表明,DEF LEAK能够发现更多的内存泄露,并更有效地帮助开发人员理解泄露发生的原因以安全修复内存泄露。最后,提出了含有非确定选择语句的MSVL程序的统一限界运行时验证方法。该方法基于MSVL的统一运行时验证方法和PPTL限界语义,构造深度递增的有界带标记的范式图(Bounded Labeled Normal Form Graph,简称BLNFG),以发现所有分支上违反性质的最短前缀,在资源有限或者不要求整个路径满足性质的情况下,该方法可用于说明在一定的搜索深度内,程序中不存在反例路径。以经典的互斥问题、哲学家就餐问题和银行家算法为案例,说明了所提验证方法对实际问题的有效性。
二、多线程应用程序竞争状态的安全性研究(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、多线程应用程序竞争状态的安全性研究(论文提纲范文)
(1)基于Pthreads的线程级推测机制的研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 TLS线程执行模型 |
1.2.2 推测变量管理机制 |
1.3 研究内容与技术路线 |
1.3.1 研究内容 |
1.3.2 技术路线 |
1.4 论文组织结构 |
第二章 相关技术简介 |
2.1 Pthreads |
2.1.1 Pthreads概述 |
2.1.2 Pthreads线程管理 |
2.1.3 Pthreads互斥变量 |
2.1.4 Pthreads条件变量 |
2.2 线程级推测技术 |
2.2.1 并行控制方式 |
2.2.2 数据版本管理方式 |
2.2.3 冲突检测方式 |
2.3 本章小结 |
第三章 基于Pthreads的 TLS线程执行模型 |
3.1 TLS线程执行模型设计 |
3.2 TLS线程执行模型实现 |
3.2.1 推测初始化 |
3.2.2 子线程激活 |
3.2.3 线程提交 |
3.2.4 线程重启 |
3.3 本章小结 |
第四章 基于共享栈的推测变量管理 |
4.1 存储模型设计 |
4.2 推测读写 |
4.3 推测执行实现 |
4.3.1 变量声明调整 |
4.3.2 推测并行化API |
4.4 程序运行实例 |
4.5 本章小结 |
第五章 实验结果与分析 |
5.1 实验环境与测试集 |
5.1.1 实验环境 |
5.1.2 测试集 |
5.2 实验方案 |
5.3 实验结果与分析 |
5.3.1 线程扩展性实验 |
5.3.2 输入集对比实验 |
5.3.3 推测执行时间分析 |
5.3.4 方法对比实验 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
致谢 |
个人简历 |
(2)列控安全计算机分区软件的形式化建模与验证方法研究(论文提纲范文)
致谢 |
摘要 |
ABSTRACT |
术语表 |
1 引言 |
1.1 研究背景 |
1.2 安全计算机的综合模块化 |
1.2.1 安全计算机简介 |
1.2.2 安全计算机发展趋势 |
1.2.3 分区的概念及意义 |
1.3 形式化方法 |
1.3.1 形式化方法分类 |
1.3.2 形式化方法选择 |
1.4 选题意义 |
1.5 论文结构与写作安排 |
2 列控安全计算机分区软件研究综述 |
2.1 安全计算机分区软件 |
2.1.1 分区软件结构 |
2.1.2 分区隔离机制 |
2.1.3 分区软件特性 |
2.2 分区软件形式化研究的需求 |
2.2.1 形式化研究的必要性 |
2.2.2 分区软件的建模和验证需求 |
2.3 研究现状 |
2.3.1 形式化证明 |
2.3.2 时间Petri网 |
2.4 存在的问题 |
2.2.1 安全性方面 |
2.2.2 实时性方面 |
2.2.3 可调度性方面 |
2.5 本章小结 |
3 基于并发分离逻辑的分区并行程序安全性验证 |
3.1 并行程序安全性 |
3.2 基于事务内存的安全机制设计 |
3.3 并行程序安全机制验证 |
3.3.1 不变式证明 |
3.3.2 并发分离逻辑 |
3.3.3 安全性的验证方法 |
3.4 抽象机模型设计 |
3.5 推理规则的定义 |
3.6 可靠性证明 |
3.7 实验验证 |
3.7.1 平台搭建 |
3.7.2 验证结果与分析 |
3.8 本章小结 |
4 基于随机时间Petri网的分区通信实时性验证 |
4.1 分区通信 |
4.1.1 通信网络 |
4.1.2 通信管理机制 |
4.1.3 时延分析 |
4.1.4 数据类型 |
4.2 随机时间Petri网 |
4.2.1 随机Petri网相关概念 |
4.2.2 连续时间马尔科夫链的求解 |
4.2.3 网络性能关键参数的求解 |
4.2.4 随机时间Petri的定义 |
4.3 随机时间Petri网瞬态分析算法 |
4.3.1 随机状态类的定义 |
4.3.2 通过枚举类的状态空间分析 |
4.3.3 基于马尔科夫再生理论的瞬态概率的计算 |
4.3.4 算法实例及验证 |
4.4 分区通信模型建立 |
4.5 分区通信模型分析 |
4.5.1 参数选取及量化指标 |
4.5.2 结果分析 |
4.6 实验验证 |
4.6.1 平台搭建 |
4.6.2 验证结果与分析 |
4.7 本章小结 |
5 基于带有优先级时间Petri网的分区可调度性验证 |
5.1 实时调度 |
5.1.1 实时系统及相关概念 |
5.1.2 实时调度算法 |
5.2 分区调度的时域模型 |
5.3 带有优先级时间Petri网 |
5.3.1 定义 |
5.3.2 基于状态空间枚举的分析算法 |
5.4 双层调度模型建立 |
5.5 双层调度模型分析 |
5.5.1 复杂度分析 |
5.5.2 验证结果 |
5.6 实验验证 |
5.6.1 平台搭建 |
5.6.2 验证结果与分析 |
5.7 本章小结 |
6 结论 |
6.1 论文工作总结 |
6.2 未来工作展望 |
参考文献 |
图索引 |
表索引 |
作者简历及攻读博士学位期间取得的研究成果 |
学位论文数据集 |
(3)基于上下文敏感分析的数据竞争检测方法研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 数据竞争静态检测 |
1.2.2 数据竞争动态检测 |
1.2.3 数据竞争动静混合检测 |
1.3 研究目的 |
1.4 研究内容 |
1.5 本文的结构安排 |
第2章 数据竞争检测理论基础 |
2.1 数据竞争的基本概念 |
2.1.1 数据竞争的定义 |
2.1.2 数据竞争产生条件 |
2.2 数据竞争检测的基本理论 |
2.2.1 软件测试技术 |
2.2.2 静态检测技术 |
2.3 数据竞争检测方法 |
2.4 本章小结 |
第3章 上下文敏感分析技术 |
3.1 上下文敏感分析技术的介绍 |
3.2 上下文的表示形式 |
3.3 上下文敏感分析技术的应用 |
3.4 本章小结 |
第4章 上下文敏感的数据竞争检测方法 |
4.1 研究动机 |
4.2 检测框架 |
4.3 控制流分析 |
4.4 逃逸分析 |
4.5 别名分析 |
4.6 发生序关系分析 |
4.7 算法描述 |
4.8 本章小结 |
第5章 数据竞争检测工具设计与实现 |
5.1 检测界面 |
5.1.1 检测界面设计 |
5.1.2 检测界面预览 |
5.2 测试环境与基准测试程序 |
5.3 实验结果与分析 |
5.4 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间所发表的论文 |
致谢 |
(4)基于Petri网展开的OSEK/VDX应用程序验证方法研究(论文提纲范文)
摘要 |
abstract |
变量注释表 |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.3 论文的主要贡献 |
1.4 论文的章节安排 |
2 相关工作 |
2.1 OSEK/VDX操作系统介绍 |
2.2 Petri网及其展开 |
2.3 本章小结 |
3 颜色Petri网的展开与反向展开 |
3.1 颜色Petri网的展开 |
3.2 颜色Petri网的反向展开 |
3.3 考虑时间因素的Petri网展开技术 |
3.4 相关工作比较 |
3.5 本章小结 |
4 基于Petri网的OSEK/VDX应用程序建模 |
4.1 OSEK/VDX应用程序介绍 |
4.2 CAN组件建模 |
4.3 简单任务建模 |
4.4 基于CAN通信的OSEK/VDX应用程序建模 |
4.5 OSEK/VDX同步任务应用程序建模 |
4.6 本章小结 |
5 基于Petri网展开技术的OSEK/VDX应用程序验证 |
5.1 基于Petri网展开的死锁检测 |
5.2 基于反向展开的多并发任务安全性验证 |
5.3 OSEK/VDX任务同步问题的验证 |
5.4 本章小结 |
6 总结与展望 |
6.1 工作总结 |
6.2 工作展望 |
参考文献 |
作者简历 |
致谢 |
学位论文数据集 |
(5)多线程程序的动态数据竞争检测技术研究(论文提纲范文)
摘要 |
abstract |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.3 课题来源 |
1.4 论文主要研究内容及目的 |
1.5 论文结构安排 |
2 多线程程序的动态数据竞争检测技术理论基础 |
2.1 数据竞争产生条件 |
2.2 动态二进制插桩工具 |
2.2.1 Intel Pin平台 |
2.2.2 Dynamo RIO平台 |
2.3 动态数据竞争检测算法 |
2.3.1 Happens-before关系和Vector Clocks |
2.3.2 Lockset算法 |
2.3.3 Fast Track算法 |
2.3.4 混合数据竞争检测算法 |
2.4 传统动态数据竞争检测工具存在的问题 |
2.5 小结 |
3 基于采样技术的动态混合数据竞争检测算法 |
3.1 Asample Lock算法整体框架 |
3.2 采样算法 |
3.3 预竞争检测 |
3.4 竞争检测 |
3.4.1 Nolock-hb关系 |
3.4.2 锁模式 |
3.4.3 优化Fasttrack算法 |
3.5 检测阶段算法描述 |
3.6 检测过程 |
3.7 小结 |
4 多线程程序的动态数据竞争检测系统 |
4.1 系统框架 |
4.2 系统相关类和函数介绍 |
4.3 插桩模块 |
4.3.1 访存指令插桩 |
4.3.2 同步指令插桩 |
4.4 检测模块 |
4.4.1 采样算法的实现 |
4.4.2 向量时钟的更新 |
4.5 小结 |
5 性能测试与结果分析 |
5.1 测试环境 |
5.2 测试对比工具及测试指标 |
5.3 实验结果与对比分析 |
5.3.1 时间开销测试 |
5.3.2 检测精度测试 |
5.3.3 采样测试 |
5.4 小结 |
6 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
附录 :攻读学位期间发表的学术论文及参与项目 |
致谢 |
(6)面向协议栈软件高并发无锁调度算法的研究与实现(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.3 本文研究内容和组织结构 |
2 协议栈软件概述 |
2.1 协议栈软件简介 |
2.2 协议栈软件发展 |
2.3 协议栈软件开发平台 |
2.3.1 N-BASE平台简介 |
2.3.2 N-BASE系统架构 |
2.3.3 原始N-BASE通信机制 |
2.4 本章小结 |
3 基于无锁队列的通信机制 |
3.1 数据同步问题 |
3.2 传统无锁队列 |
3.2.1 基于链表的无锁队列 |
3.2.2 基于数组的无锁队列 |
3.3 无锁队列设计与实现 |
3.4 无锁算法的正确性证明 |
3.4.1 安全性 |
3.4.2 线性化 |
3.4.3 无阻塞性 |
3.5 高效无锁通信机制 |
3.5.1 基于有锁队列的通信机制 |
3.5.2 基于无锁队列的通信机制 |
3.6 本章小结 |
4 N-BASE调度策略的优化 |
4.1 引言 |
4.2 N-BASE调度算法 |
4.3 算法分析 |
4.4 本章小结 |
5 无锁调度算法的实现及分析 |
5.1 测试环境 |
5.2 测试方法 |
5.3 性能对比分析 |
5.4 本章小结 |
6 总结与展望 |
参考文献 |
致谢 |
附录1 攻读硕士学位期间参与的项目和发表的论文 |
(7)GP-VPP:基于多线程应用的VPP用户态协议栈优化研究(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 研究目的与意义 |
1.2 网络协议栈研究现状 |
1.2.1 内核空间网络协议栈 |
1.2.2 用户空间网络协议栈 |
1.2.3 绕过内核技术总结 |
1.3 研究动机 |
1.4 章节布局 |
第二章 VPP架构和三大挑战 |
2.1 Vector Packet Processor |
2.1.1 VPP架构关键组成部分及运行机制 |
2.1.2 矢量批处理 |
2.1.3 可扩展数据包处理图 |
2.1.4 向后兼容的通信库 |
2.2 挑战一:传输协议层控制事件与IO事件干扰 |
2.3 挑战二:会话层多生产者单消费者模型 |
2.4 挑战三:基于锁的LDP通信库 |
2.5 本章小结 |
第三章 GP-VPP架构和新增模块设计实现 |
3.1 GP-VPP架构 |
3.1.1 模块对比 |
3.1.2 工作模式 |
3.2 模块一:传输协议层重传检测器 |
3.2.1 智能丢包策略 |
3.2.2 重传检测器的实现 |
3.3 模块二:会话层局部应用线程池 |
3.3.1 分组分区策略 |
3.3.2 局部应用线程池 |
3.4 模块三:无锁LDP通信库 |
3.4.1 无锁LDP通信库 |
3.4.2 LDP库优化机制 |
3.5 本章小结 |
第四章 性能测试与分析 |
4.1 服务端与客户端机器配置 |
4.2 Benchmark测试工具 |
4.2.1 ApacheBench工具 |
4.2.2 wrk工具 |
4.2.3 perf工具 |
4.2.4 htop工具 |
4.2.5 taskset命令 |
4.3 前沿协议栈性能对比 |
4.4 基于PDP策略的状态感知重传测试 |
4.5 分组分区策略性能提升 |
4.5.1 测试环境配置 |
4.5.2 测试结果对比 |
4.5.3 局部应用工作线程表的缺陷 |
4.6 无锁LDP通信库性能提升 |
4.6.1 测试环境配置 |
4.6.2 VLS热点函数 |
4.6.3 CPU资源节省 |
4.6.4 提升吞吐量 |
4.7 GP-VPP与VPP协议栈性能比较 |
4.7.1 测试环境配置 |
4.7.2 测试结果对比 |
4.8 本章小结 |
第五章 全文总结 |
5.1 主要研究内容和结论 |
5.2 研究展望 |
参考文献 |
致谢 |
攻读硕士学位期间申请的专利 |
(8)系统软件并行与安全的关键技术研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 选题背景与意义 |
1.2 本文工作 |
1.3 组织结构 |
2 相关工作 |
2.1 多核平台的核利用率的相关研究 |
2.1.1 工作负载的共栖技术 |
2.1.2 用户态线程管理 |
2.2 多核环境下进程地址空间的伸缩性的相关研究 |
2.2.1 伸缩性良好的锁 |
2.2.2 并发索引数据结构及安全内存回收 |
2.3 文件系统的地址空间隔离的相关研究 |
2.3.1 内存错误漏洞研究 |
2.3.2 文件系统安全技术 |
2.4 本章小结 |
3 利用共栖感知的运行时系统提升多核平台核利用率 |
3.1 背景介绍 |
3.2 问题分析 |
3.2.1 同步多线程的因素 |
3.2.2 共享高速缓存的因素 |
3.2.3 内核线程管理的因素 |
3.3 Hermes的方案设计与实现 |
3.3.1 Hermes整体架构 |
3.3.2 核代理者进程 |
3.3.3 延迟敏感服务的运行时系统 |
3.3.4 非延迟敏感服务的运行时系统 |
3.3.5 方案讨论 |
3.4 实验评估 |
3.4.1 实验环境与方法 |
3.4.1.1 Memcached修改方案 |
3.4.1.2 微基准测试程序 |
3.4.2 实验结果 |
3.5 本章小结 |
4 多核环境下进程地址空间的伸缩性能研究 |
4.1 背景介绍 |
4.2 可伸缩的进程地址空间ScaleVM |
4.2.1 ScaleVM整体架构 |
4.2.2 无锁跳跃表与安全内存回收 |
4.2.3 ScaleVM的系统层次 |
4.3 ScaleVM系统评估 |
4.3.1 实验环境与方法 |
4.3.2 实验结果与分析 |
4.3.2.1 微基准测试集实验测试结果 |
4.3.2.2 应用程序实验测试结果 |
4.3.2.3 系统设计思想实验评估 |
4.4 本章小结 |
5 文件系统的地址空间隔离技术研究 |
5.1 问题背景 |
5.2 文件系统隔离的方案设计与实现 |
5.2.1 研究目标与意义 |
5.2.2 文件系统隔离的核心挑战 |
5.2.3 XV6内核简介 |
5.2.4 代码与静态数据的隔离 |
5.2.4.1 文件系统的函数调用的处理 |
5.2.4.2 文件系统相关的中断处理 |
5.2.4.3 文件系统的静态数据 |
5.2.4.4 构建内核镜像 |
5.2.5 动态数据的隔离 |
5.2.6 构建文件系统页表 |
5.2.7 系统调用改造 |
5.2.7.1 消息通信机制 |
5.2.7.2 调度策略 |
5.2.8 启动流程改造 |
5.3 实验验证 |
5.3.1 功能性验证 |
5.3.1.1 文件系统的功能验证 |
5.3.1.2 代码和静态数据隔离的验证 |
5.3.1.3 动态数据隔离的验证 |
5.3.1.4 内核数据保护的验证 |
5.3.2 安全性验证 |
5.4 本章小结 |
6 总结与展望 |
参考文献 |
致谢 |
简历与科研成果 |
(9)面向MPSoC虚拟化体系结构的操作系统关键技术(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景与意义 |
1.2 相关技术与研究成果 |
1.2.1 开源虚拟化平台与体系结构 |
1.2.2 虚拟机安全 |
1.2.3 I/O虚拟化 |
1.3 研究内容与贡献 |
1.4 论文结构 |
第二章 面向飞腾平台的虚拟化操作系统设计 |
2.1 CPU虚拟化 |
2.1.1 硬件机制 |
2.1.2 软件设计 |
2.2 内存虚拟化 |
2.2.1 硬件机制 |
2.2.2 软件设计 |
2.3 中断虚拟化 |
2.3.1 硬件机制 |
2.3.2 软件设计 |
2.4 计时器虚拟化 |
2.4.1 硬件机制 |
2.4.2 软件设计 |
2.5 与Intel平台虚拟化技术的比较 |
第三章 虚拟化体系结构的边信道安全 |
3.1 现代超标量处理器上的边信道 |
3.1.1 硬件基础 |
3.1.2 边信道攻击策略 |
3.2 基于流水线动态执行的边信道攻击 |
3.2.1 幽灵漏洞攻击 |
3.2.2 熔断漏洞攻击 |
3.3 针对幽灵与熔断攻击的现有防护方法 |
3.3.1 针对幽灵漏洞攻击的防护 |
3.3.2 针对熔断漏洞攻击的防护 |
3.4 Retpoline防护方案下的系统性能优化 |
3.4.1 Retpoline防护方案对系统性能的影响 |
3.4.2 用户态网络I/O |
3.5 针对熔断漏洞的按需隔离机制 |
3.5.1 方案设计 |
3.5.2 实验与性能评估 |
3.5.3 讨论 |
3.6 本章小结 |
第四章 高可伸缩MPSoC网络I/O虚拟化技术 |
4.1 飞腾平台虚拟并发网络I/O性能折损的现象 |
4.2 多队列虚拟网卡设备的设计与实现 |
4.2.1 多队列半虚拟化网络I/O |
4.2.2 飞腾平台下虚拟多队列网络I/O中断的实现 |
4.3 性能评估方法 |
4.4 实验结果 |
4.4.1 总吞吐率 |
4.4.2 事务处理总时间 |
4.4.3 连接与等待时间 |
4.5 本章小结 |
第五章 飞腾平台虚拟化操作系统的实现与系统性能测试 |
5.1 基于硬件分区的虚拟机监控器实现 |
5.1.1 系统初始化 |
5.1.2 内存管理 |
5.1.3 域间通信 |
5.1.4 分区的创建 |
5.2 飞腾虚拟化平台下的高速缓存一致性 |
5.2.1 客户操作系统内核加载时的缓存一致性 |
5.2.2 模拟设备的缓存一致性 |
5.3 性能评测 |
5.3.1 系统级测试与评估 |
5.3.2 面向深度学习的测试与评估 |
5.3.3 面向高性能计算应用的测试与评估 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 工作总结 |
6.2 研究展望 |
致谢 |
参考文献 |
作者在学期间取得的学术成果 |
(10)MSVL程序的高效运行时验证方法研究(论文提纲范文)
摘要 |
ABSTRACT |
符号对照表 |
缩略语对照表 |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 时序逻辑的研究现状 |
1.2.2 时序逻辑编程的研究现状 |
1.2.3 运行时验证方法的研究现状 |
1.2.4 目前方法存在的问题 |
1.3 本文研究内容 |
1.4 论文组织结构 |
第二章 技术背景 |
2.1 投影时序逻辑 |
2.1.1 语法 |
2.1.2 语义 |
2.1.3 导出公式与逻辑规则 |
2.2 命题投影时序逻辑 |
2.3 MSVL及MSVL编译器 |
2.4 运行时验证方法 |
2.4.1 基本原理 |
2.4.2 运行时验证与其他验证方法的对比 |
2.4.3 运行时验证的应用范围 |
2.5 本章小结 |
第三章 基于单机多核系统的并行运行时验证方法 |
3.1 MSVL程序的传统运行时验证方法 |
3.2 基于单机多核系统的并行运行时验证方法 |
3.2.1 基本框架 |
3.2.2 插桩 |
3.2.3 验证任务分配和结果合并 |
3.2.4 验证模块中的相关算法 |
3.3 实现和评价 |
3.3.1 实现 |
3.3.2 验证效率评价 |
3.3.3 验证规模评价 |
3.3.4 并行机制对性能的提升 |
3.4 验证实例 |
3.4.1 问题背景 |
3.4.2 问题模型 |
3.4.3 性质描述 |
3.4.4 验证结果 |
3.5 本章小结 |
第四章 基于分布式网络的并行运行时验证方法 |
4.1 基于分布式网络的并行运行时验证方法 |
4.1.1 基本框架 |
4.1.2 调度算法 |
4.1.3 单个机器中序列片段的并行验证 |
4.2 实现和评价 |
4.2.1 实现 |
4.2.2 验证效率评价 |
4.3 验证实例 |
4.3.1 问题背景 |
4.3.2 违反SQLite3数据库API调用规范的实例 |
4.3.3 API调用序列规范的描述 |
4.3.4 实验结果 |
4.3.5 相关工作 |
4.4 本章小结 |
第五章 MSVL程序内存泄漏的运行时检测方法 |
5.1 泄露实例 |
5.2 MSVL程序内存泄漏的运行时检测方法 |
5.2.1 方法框架 |
5.2.2 插桩 |
5.2.3 内存泄露检测、消除和修复 |
5.2.4 动态符号执行 |
5.3 实验结果 |
5.3.1 针对单条执行路径DEF LEAK的性能 |
5.3.2 采用动态符号执行后DEF LEAK的性能 |
5.4 相关工作 |
5.4.1 静态内存泄漏检测方法 |
5.4.2 动态内存泄漏检测方法 |
5.5 本章小结 |
第六章 MSVL程序的统一限界运行时验证方法 |
6.1 MSVL程序的统一运行时验证方法 |
6.2 PPTL限界语义 |
6.3 MSVL程序的统一限界运行时验证方法 |
6.4 验证实例 |
6.4.1 互斥问题 |
6.4.2 哲学家就餐问题 |
6.4.3 银行家算法 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 工作总结 |
7.2 研究展望 |
参考文献 |
致谢 |
作者简介 |
四、多线程应用程序竞争状态的安全性研究(论文参考文献)
- [1]基于Pthreads的线程级推测机制的研究[D]. 杨豪. 西北农林科技大学, 2021
- [2]列控安全计算机分区软件的形式化建模与验证方法研究[D]. 张玉琢. 北京交通大学, 2020(02)
- [3]基于上下文敏感分析的数据竞争检测方法研究[D]. 刘欢. 河北科技大学, 2020(06)
- [4]基于Petri网展开的OSEK/VDX应用程序验证方法研究[D]. 张雪萍. 山东科技大学, 2020(06)
- [5]多线程程序的动态数据竞争检测技术研究[D]. 李梦珂. 中原工学院, 2020(01)
- [6]面向协议栈软件高并发无锁调度算法的研究与实现[D]. 吴卿蓉. 武汉邮电科学研究院, 2020(04)
- [7]GP-VPP:基于多线程应用的VPP用户态协议栈优化研究[D]. 孙国傲. 上海交通大学, 2020(01)
- [8]系统软件并行与安全的关键技术研究[D]. 刘慎明. 南京大学, 2019(07)
- [9]面向MPSoC虚拟化体系结构的操作系统关键技术[D]. 陈鲍孜. 国防科技大学, 2019(01)
- [10]MSVL程序的高效运行时验证方法研究[D]. 于斌. 西安电子科技大学, 2019(02)