新型非易失性内存技术最重要的包含了相变存储器PCM,英特尔公司的3D XPoint等。新型非易失性内存技术作为下一代内存存储系统的基础,目前得到了快速的发展。非易失性内存具有很多优秀的特点,比如低延时,高密度等。同时非易失性内存也同时伴随着一些缺点,比如较差的耐久性和易磨损性。非易失性内存技术给传统的操作系统栈带来了巨大的机遇和挑战。因此,大量的研究工作尝试利用非易失性内存来重新设计并实现操作系统的各个模块,从而增强操作系统的性能,可靠性等方面。
本文针对目前基于非易失性内存的操作系统研究工作进行了深入的调研和分析。首先,本文从系统总体设计的三个方面(系统抽象,故障一致性,系统可靠性)讨论了如何在非易失性内存上构建操作系统。然后,我们根据操作系统的具体模块将现有的研究工作划分为三个大类:存储栈,内存管理,用户库。然后针对每一类研究工作,我们总结了该方向内的研究热点,然后针对这些研究热点深入分析了现有的研究工作。最后,本文总结了现有的研究工作并且展望了基于非易失性内存系统架构上的新型操作系统。
摘要:编译器作为软件开发的基础设施,必须做到可信可依赖。在近年来,大量的测试技术被用于编译器测试,以确保编译器质量。如何在浩如烟海的文献中归纳分析现有编译器测试技术,是编译器研究者面临的一大挑战。本文中,我们采用一种文献分析框架来系统分析编译器测试领域的相关文献。首先,我们通过精准搜索方法采集了一批相关文献数据。在此基础上,我们分析了本领域的高产作者、高影响力文献以及常用的测试技术等。最后,我们利用关联规则和合作网络来挖掘合作伙伴关系以及研究热点。我们得知美国在本领域具备极高影响力,包括很多高影响力学者和机构。本领域最受欢迎的关键词是“随机测试”。另外,我们得知大多数学者在编译器测试领域有比较广泛的研究方向,并且集中在比较小的合作圈子里。
摘要:在开发片上系统(SoC)设计时,通常会构建一系列SystemC事务级模型(TLM)。在SoC开发流程的各阶段,同一系列中的TLM通常具有一些共性功能,但在时序、实现、配置和性能等方面有几率存在差异。在大多数情况下,必须验证一个族中所有TLM后,才能进行后续设计活动。在我们之前的工作中,称这种TLM系列为TLM产品线(TPL),并提出面向特征(FO)的设计方法,以实现高效的TPL开发。但是,TPL中,研发人员只能逐个验证一个系列中的TLM,由于TLM间的共性功能,这会导致大部分的验证开销是重复的。因此,面向特征的设计方法中,TPL的功能验证已成为瓶颈。本文提出了一种新的TPL验证方法。该方法中,对于给定的属性,能够最终靠识别哑特征模块(MFM)来指数地减少要验证的TLM数量,这将避免大量的重复验证。本文以形式化和非形式化的方式介绍该方法,并证明了该方法的正确性。在实际SoC设计上的理论分析和实验根据结果得出了该方法的正确性和高效性。
点击阅读文章精要:【FCS 软件专栏】SystemC事务级模型族的功能验证方法
摘要:计算机科学与软件工程专业的大学生要掌握高质量编程的技能。然而已有研究表明,高质量编程的教授和学习在大多数大学教育系统中面临挑战并存在不足。最近,持续检查方法已经被社交编程网站(如GitHub)上的开发者普遍的使用,来作为保证大量代码贡献的内部质量的重要方法。本文开展了一项将持续检查方法引入课堂教学用以提高学生编程质量的案例研究。在研究中,我们第一步为学生的协作项目设计了一个持续检查过程,并为该过程建立了一个实施环境。然后,我们对两个学年同一课程的48名学生开展了受控实验,以评估该过程怎么样影响他们的编程质量。我们的研究根据结果得出,持续检查能够在一定程度上帮助学生识别不良的编码习惯,掌握一组良好的编码规则,并明显降低代码中引入的代码质量上的问题密度。此外,我们讨论了研究过程中吸取的经验教训,并提出了复制和改进过程及其实施平台的建议。
点击阅读文章精要:【FCS 软件专栏】使用持续检查过程提高学生的编程质量:一种社交编程的视角
摘要:基于众包的软件工程是一个令人兴奋的研究领域,它具有缩短上市时间、生成多样化的解决方案、聘用专家、民主化的参与和在工作中学习等显著优势。当前,绝大多数的研究关注于激励机制设计、合作模型、任务推荐和成本估计。和传统的软件工程一样,软件质量也是基于众包的软件工程的最最要紧的麻烦之一。研究人员已经对软件众包中的质量上的问题进行了研究,而且绝大多数之前的研究工作着重于任务层面的质量保证,比如质量影响因素的研究、软件开发任务定价、激励机制设计和开发者推荐等。与他们的工作不同的是,在本工作中,我们尝试从项目层面而不是比赛或者任务层面去处理软件众包的质量上的问题。具体地,我们第一步定义了一个项目级别的质量指标,并且提出了一个多层级的软件众包质量评估框架。其次,我们提出了两个指标聚合模型(一个经过修改的 Squale 模型和一个基于聚类的模型)来计算项目级别的质量指标。最后,在基于竞争的软件众包平台TopCoder 上进行了实证研究和验证。实验根据结果得出:我们提出的项目层级的质量指标项目分数可拿来衡量基于竞争的软件众包开发项目的产品质量。还有,我们所提出的基于聚类的指标聚合模型表现最好。
摘要:自动软件缺陷定位技术现被大范围的应用于自动程序修复中来帮助定位到缺陷程序中的错误位置,其通常输出一个包含可能出错的程序位置的序列。给定这样的缺陷定位输出,当前的自动程序修复有两种策略选择其中的错误位置来实施补丁生成:基于可疑值精度的可疑值优先算法(SFA),和基于排序精度的排序优先算法(RFA)。这两种算法在指导程序修复探索搜索空间上各不相同,且可能对自动程序修复的修复有效性与效率造成不一样的影响。然而,目前尚未有相关工作研究二者对自动程序修复的影响。为此,本文通过将这2种算法和6种缺陷定位技术应用到当前先进的4个自动程序修复工具中,随后用这些修复工具去修复Defects4J缺陷数据集中的60个真实缺陷,来评估二者在自动程序修复中的表现。基于5万1千次的缺陷修复尝试收集到的数据,我们采用三个度量标准(NCP,补丁多样性,额外补丁个数)来全面度量这两种算法,根据结果得出:(1)在NCP度量下,排序优先算法在70.02%的案例中比可疑值优先算法更好,但后者在并行修复和补丁多样性上表现更好;(2)可疑值优先算法的在自动程序修复中的表现能够最终靠改进可疑值精度来提高;(3)引入了可疑值优先算法的修复工具SimFix成功修复了4个没有被原SimFix修复的补丁。这些发现为未来自动程序修复场景下进一步使用和改进缺陷定位提供了新的思路。
点击阅读文章精要:【FCS 软件专栏】自动程序修复中缺陷定位信息使用方法的实证评估
摘要:探索多线程程序的调度空间来有效检测并发缺陷是非常非常重要的,但同时因为调度空间包含巨量的线程调度,如何有效探索是非常很困难的。
本文提出了一种新颖的框架,将怎么样做线程调度(即线程调度生成器)进行分解,在这一框架下,线程调度生成器分为两部分:基础线程调度生成器和在“少量线程调度假设”下的扩展。
在此框架下,我们对已有的线程调度空间探索的研究工作进行了深入分析,并阐述了如何设计有效的线程调度生成器,以及阐明了未来可能的研究机会。
摘要:机器学习技术与算法已被大范围的应用到诸多领域中。像其他软件项目一样,缺陷在机器学习项目中也很常见。鉴于机器学习项目的流行性和使用的广泛性,即便是很小的缺陷也会导致严重的后果,进而影响到大量用户。
在此背景下,我们开展了经验研究,以深入理解机器学习项目中的缺陷修复特征,包括缺陷类型、缺陷修复模式、修复规模、修复周期与维护的类型。该研究手工分析了5个流行的机器学习框架中的939个缺陷,包括缺陷报告、评论信息、缺陷修复的代码提交信息等。通过研究之后发现:(1)机器学习项目中最重要的包含7种类型的缺陷;(2)存在12种常用的修复模式修复机器学习项目中的缺陷;(3)68.80%的缺陷修复是微小规模的修复;(4)66.77%的缺陷是在一个月内修复的;(5)45.9%的缺陷修复是改正性软件维护。
论文又进一步通过问卷调查的方法验证经验研究结果的有效性。通过问卷调查发现,经验研究的结果与问卷调查的反馈结果基本一致。经验研究的结果为研发人员和用户有效地检测和修复机器学习项目中的缺陷提供了有用的指导。
Frontiers of Computer Science (FCS)是由教育部主管、高等教育出版社和北京航空航天大学共同主办、SpringerNature 公司海外发行的英文学术期刊。本刊于 2007 年创刊,双月刊,全球发行。主要刊登计算机科学领域具有创新性的综述论文、研究论文等。本刊主编为周志华教授,共同主编为熊璋教授。编委会及青年 AE 团队由国内外知名学者及优秀青年学者组成。本刊被 SCI、Ei、DBLP、INSPEC、SCOPUS 和中国科学引文数据库(CSCD)核心库等收录,为 CCF 推荐期刊;两次入选“中国科技期刊国际影响力提升计划”;入选“第4届中国国际化精品科技期刊”;入选“中国科技期刊卓越行动计划项目”。
由教育部主管、高等教育出版社主办的《前沿》(Frontiers)系列英文学术期刊,于2006年正式创刊,以网络版和印刷版向全球发行。系列期刊包括基础科学、生命科学、工程技术和人文社会科学四个主题,是我国覆盖学科最广泛的英文学术期刊群,其中13种被SCI收录,其他也被A&HCI、Ei、MEDLINE或相应学科国际权威检索系统收录,具有一定的国际学术影响力。系列期刊采用在线优先出版方式,保证文章以最快速度发表。
高等教育出版社入选“中国科技期刊卓越行动计划”集群化项目。Frontier系列期刊中:13种被SCI收录;1种被A&HCI收录;6种被Ei收录;2种被MEDLINE收录;11种中国科技核心期刊;16种被CSCD收录。