您的常用邮箱:*
您的手机号码:*
问题描述:
关键词: 并发程序 数据结构 可线性化错误 定位检测 粗粒度 细粒度
摘要: 随着多核技术的发展,多线程并发程序在现代软件应用中发挥着越来越重要的作用。与传统的顺序程序相比,并发程序将任务分配到多个线程之上并发执行,提高了程序执行效率,也充分发挥了多核技术所带来的优势。\n 然而,并发程序的执行具有不确定性,即,相同的程序多次执行所得到的输出往往是不同的。这种性质使得程序的错误不容易被检测,并且即使被检测到也不容易重现以及定位。\n 可线性化是一种重要的并发程序正确性的标准。当前,已有的工作主要致力于基于粗粒度迹模型对并发执行历史的可线性化性质进行检测。然而,这些工作无法进一步对可线性化错误进行分析,进而确定引发错误的根本原因。而基于细粒度模型的错误定位工作不适合应用于大规模测试用例,且这些工作主要针对于一般的并发错误而非可线性化错误。\n 本文针对并发数据结构可线性化错误的定位问题,设计了一个包含粗粒度与细粒度两个层面的解决方案。\n 在粗粒度层面,我们的目的是构造一个包含操作数量较少,但足够引发可线性化错误的测试用例。这个工作分为两个阶段:首先,获取一条不可线性化的并发执行历史;然后,在这条执行历史中定位至引发这个可线性化错误的并发操作集合,从而构造目标测试用例。我们还提出了一系列优化措施,以提高错误定位的能力与效率。\n 在细粒度层面,我们的目的是找出对可线性化错误的产生有着决定性作用的数据竞争。基于细粒度迹模型,我们提出了关键数据竞争序列的概念来刻画程序错误,并构建了一种交叉树模型,其中包含了并发程序所有可能的细粒度执行,每个结点对应一个数据竞争。我们根据每条路径的可线性化性质来标记各个结点,然后说明了如何在其中识别关键数据竞争序列。\n 基于以上工作,我们开发了两个原型工具,CGVT与FGVT,分别用于粗粒度及细粒度的错误定位。实验结果证明,它们能够对实际的Java程序进行检测及定位,并且有着良好的效率。
关键词: 内核 Linux 数据结构 内核链表 List
摘要: Linux内核代码博大精深,《深入理解linux内核》译者曾在译者序中把它形容为"覆压三百余里,隔离天日"、"廊腰缦回,檐牙高啄;各抱地势,钩心斗角。"[1],可见其内容之丰富、结构之庞杂。Linux内核经过这么多年的发展,而这个内核双向链表却依旧存在,足以体现出内核链表运行的稳定性,就连Linux社区的黑客们也都为这个链表的设计感到自豪。
关键词: 可视化系统 设计系统 电网 技术结构 可视化技术 数据结构 电力系统 整合资源
摘要: 以电网综合展现可视化系统的设计系统为基础,重点从总体结构,技术结构,数据结构等方面阚述系统的具体运用情况。当前,部分研究学者根据电网的实际情况,展开了对电网综合展现可视化技术的多方面研究,但从实践结果来看,其主要为解决电力系统的某一特定问题,且技术的先进性仍不够,很难实现在不同系统中的应用。为进一步整合资源,
关键词: 数据结构 互联网 形成性成绩 改革
摘要: 所谓形成性评价,是指在活动的运行过程中,为使活动效果更好而修正其本身轨道所进行的评价。随着我国素质教育改革步伐的推进,形成性成绩评定已经成为各高校学生考核改革的方向,本文针对形成性成绩评价在数据结构课程的具体实施方法进行了详细介绍。
关键词: 数据库 数据查询 IO通量 资源分配 数据结构
摘要: 面对快速增长的海量数据,传统的关系型数据库已经不能满足现有应用高扩展性,高可靠性等需求。具有高可扩展性,高可靠性,高并发性的NoSQL应运而生,典型代表有Google BigTable、Apache HBase和Apache Cassandra等系统。Apache HBase采用日志合并树(LS M-tree)数据结构,其先将数据写入内存,在达到一定阂值之后再异步地刷写到磁盘文件中,由于内存的缓冲作用,使得HBase具有优秀的数据写入性能;与之相对,HBase查询性能就比较逊色,这是因为所有的查询都需要从磁盘读取数据,因此查询性能受限于磁盘的IO通量。\n 为了提高查询性能,基于LSM-tree数据结构的系统,使用compaction操作来加速数据查询性能,其将多个小文件合并成大文件,减少磁盘的读取次数,降低查询延迟,提高查询性能。已经出现了许多针对compaction操作的优化手段,它们各有各的优缺点和适用的场景,目前集中在文件选择策略,减少compaction操作频率,加速compaction操作速度的方式上。但是这些方法没有考虑compaction操作本身对系统的正常业务服务尾延迟的影响。\n 本文在仔细研究基于LSM-tree的HBase的存储原理和结构的基础上,提出一种动态资源分配技术——Throttle Compaction(TCompaction)技术,该资源分配技术获取上层操作的类别以及数据请求等信息,动态分配IO资源。通过合理分配资源给compaction操作,减少compaction操作对读写操作的影响,达到降低尾延迟,稳定系统服务的效果。\n TCompaction主要关注两个方面,一个方面是获得上层操作的类别以及数据请求等信息;另一个方面是设计能动态实时合理调整的IO资源分配模型:基于负反馈的动态调整模型——Negative Feedback Based Dynamic Adjustment Model(NFDAM)。\n 依照TCompaction的设计,在Apache HBase以及Apache Hadoop的基础上实现了TCompaction系统。通过对比实验,测试了TCompaction系统的性能。TCompaction系统比原生的系统查询平均延迟降低35%,插入平均延迟降低23.8%,查询延迟99%累积分布值比原生系统降低了77.5%,插入延迟99%累积分布值比原生系统降低了74%。
关键词: 数据结构 优先队列 堆式队列 算法效率
摘要: 数据结构的组织形式在算法实现中占有重要地位。探讨了优先队列中的数据结构组织问题,给出一种高效的堆式队列数据组织结构,阐明了该数据结构的基本操作,理论上分析了其时间和空间性能,通过实验和应用实例验证了堆式队列数据结构动态存取效率的高效性、存储空间的自适应性以及实现上的简单性。实验结果表明,堆式优先队列数据结构可有效地提高各类仿真系统的性能,也可用于组合优化等多种应用问题的解决。
关键词: 并发数据结构 适应式主动测试 错误发现能力 检测效率
摘要: 并发数据结构可以支持多线程并发访问。为了支持并发的访问,并发数据结构必须具有协调同时来自不同线程的读、写请求的能力。如何对并发数据结构进行测试是近些年的一个被不断研究的难题。首先,由于并发程序难以穷举的线程交互空间,如果不在测试的过程中加入主动的导向和控制,并发程序很难通过自身运行来触发一些潜在的并发错误。其次,因为并发数据结构并非一个完整的可以直接编译运行的程序,所以需要生成一个调用这个待测的并发数据结构的并发测试程序,然后通过编译并且执行这个并发测试程序来发现并发数据结构的潜在的错误。本文的主要研究工作及贡献如下:\n 第一,针对待测的C/C++并发数据结构,我们提出了并发测试程序自适应随机生成方法,并实现了相应的并发测试用例自动生成工具Mars。这些并发测试程序构成并发数据结构的测试用例。\n 第二,我们提出面向并发数据结构的适应式主动测试方法。这些适应式主动测试方法通过遴选最优测试用例对并发数据结构进行主动测试。\n 第三,我们通过对九个实际并发数据结构的实现进行测试,分析了我们提出的适应式主动测试方法的测试效率和错误发现能力。具体分析指标包括:完成完整的测试所需要的时间开销、完成完整测试所需要的主动测试的次数、发现潜在并发错误的能力,以及发现第一个并发错误所需要的时间。与Maple主动测试方法相比,我们提出的三种适应式主动测试方法只需执行更少的主动测试次数,能够在较大程度上缩短完整测试所需的时间开销,还可以发现更多的线程交错实例。
关键词: 教育发展规律 教学范式 教育改革 数据报表 数据结构 应用研究 数据技术 中学数学教学 特色发展之路 个性化教学
摘要: 梅村高中创办于1913年,是江苏省首批重点中学、江苏省首批四星级高中、国家级示范高中.著名科学家钱伟长之父钱挚和一代国学大师钱穆曾在校任教.著名力学家、资深两院院士钱令希也从这所校园走出.
关键词: Postgre SQL数据库 CSG模型参数 数据结构 数据管理接口
摘要: 针对CSG模型参数存储管理的问题,研究Postgre SQL数据库特性及CSG模型参数格式的特点,建立存储CSG模型参数的数据库和数据表,编写连接数据库和参数入库出库管理的接口,成功实现Postgre SQL数据库对CSG模型参数的管理,解决了传统文件式管理文件繁多、占据存储空间人及管理困难等问题,为CSG模型的进一步分析处理应用奠定了基础。
关键词: 数据结构 C程序设计 计算机教学
摘要: 作为计算机及相关专业的核心课程之一,"数据结构"的教学一直得到了广大教师的高度关注和重视。文章分析了"数据结构"与其先修课程"C程序设计"间的关系,指出"C程序设计"对"数据结构"课程的教学效果具有重要影响,从专业的课程体系结构出发,认真梳理了两门课程的知识体系,建议应合理组织和优化"C程序设计"课程的教学内容,加强实验教学环节,为"数据结构"等后续课程的顺利开设奠定基础。