验证带有线程动态创建和退出的多线程程序

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:guanhuaicn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机硬件平台运算能力的不断提升,计算机软件的规模及复杂度日益增长,同时软件安全性问题也日益突出。如何解决软件安全性,已然成为目前计算机工业领域与研究领域关注的热点问题。当前软件主要依靠安全的程序设计语言与软件测试来提高软件的可靠性。然而安全的程序设计语言,如Java、C#等提供的众多安全特性都依赖于其运行环境;软件测试则很大程度依赖于测试者的能力,且软件测试有着与生俱来的不完备性,测试用例很难覆盖软件使用时所遇到的全部情况,因此经过测试的软件依然可能存在着安全隐患。程序验证是计算机研究领域针对解决软件安全性问题,从而构建高可信软件提出的一种应对方案。程序验证中使用形式化的方法对软件进行验证,形式化的方法基于数学的特种技术,因此程序验证具有完备性和可靠性,经过程序验证为安全的软件,安全性具有极高的可信度。综上所述,为了提高软件的安全性和可靠性,使用程序验证的方法验证软件的安全性具有重要意义。   在目前的软件开发中,多线程技术大量应用,为研究如何验证应用多线程技术的软件的安全性,本文使用程序验证的方法对带有线程动态创建和退出操作的多线程程序的安全性进行验证。本文的工作使用基于携带证明的代码技术,使用Hoare逻辑的汇编语言级形式化程序验证方法(CAP),提出了一种验证带有线程动态创建和退出的多线程程序的验证框架。该验证框架包含抽象机模型、指令规范、逻辑推理系统、验证框架的可靠性定理及证明。本文的具体工作,包括验证框架的形式化定义以及验证框架的可靠性证明,是在计算机辅助定理证明工具Coq[4]中实现的,这些实现是计算机可检查的,从而保证了整个验证框架的严格性和可靠性。   通过验证工作,本文研究了多线程程序在线程的动态创建和退出中出现的问题,特别是内存划分的改变及内存的初始化和销毁。同时,本文还介绍了这些工作在计算机辅助定理证明工具Coq中的实现,包括如何在Coq中定义数据结构、机器指令等,以及Coq证明中的难点。   本文的工作是对原有的AIM验证框架的扩展,主要贡献和创新包括:1)通过对线程的动态创建和销毁机制进行研究,扩展框架在运行时系统及并发用户代码部分都形式化的给出了线程动态创建和销毁的规范,并在原框架中加入显式的内存推理机制,从而提出了一个推理带有线程动态创建和销毁机制多线程程序的方法;2)提出了对程序内存划分的显式的推理机制,该机制可用于验证底层程序的内存划分;3)使用计算机辅助定理证明工具Coq实现了框架的形式化定义及可靠性证明。   本文的工作是在原有工作基础上对证明操作系统做出的进一步尝试。操作系统包含虚拟存储,地址映射,硬件驱动等诸多机制,尽管本文的扩展框架模型与真实的操作系统内核还存在着差距,但是本文工作为验证操作系统内核提供了一种途径。同时,本文也为汇编语言及程序的形式验证,特别是为携带证明的代码的技术的应用积累了重要的理论和实践经验。
其他文献
学位
为促进中国非金属矿工业的发展,帮助企业招商、引资和进行技术、市场信息交流,中国非金属矿工业协会和中国非金属矿工业进出口公司定于1999年7月13—15日,在北京联合召开本世纪最后一次全
网格是一种新的信息基础设施。在网格计算中,系统资源具有动态性、异构性、通信延迟的不确定性,因此在网格环境里如何有效的管理资源就是网格计算成功与否的重要因素之一。网
一、十四大以来煤炭工业工作回顾党的十四大以来的五年,是煤炭工业发展史上不寻常的五年,是积极向市场经济体制转变并发生显著变化的五年,是艰苦奋斗实现国有重点煤矿总体扭亏为
相比于同构多核处理器,异构多核处理器上集成了不同粒度的处理器核心,使用结构复杂、功能强大、功耗高的大核挖掘串行程序的ILP,使用结构简单、占用面积小、功耗低的小核挖掘
无线传感器网络是由大量廉价的传感器节点组成的,而传感器节点以协作地方式来完成特定的任务,如环境监测、目标跟踪和医疗卫生等。传感器节点由电池供电,且通常部署于无人值守区
本文以视频增强技术在复杂天候下监视系统中的应用为背景,深入研究了影响视频质量下降的各种因素,并根据这些因素将降质视频分成两类,分别提出合适的方法进行处理。针对晚上
在移动机器人的相关技术研究中,导航技术是其核心技术之一。根据周围环境信息,检测道路区域是移动机器人导航技术研究的一个重要内容。在移动机器人行驶环境中,复杂的、未知
嘉兴是全国城乡一体化发展的先行之地,也是浙江省城乡综合配套改革试点城市。嘉兴广播电视台对农频率作为全国唯一的城市台为“三农”服务的专业频率,每天播出约17小时,通过
学位