Transcript 可信软件
可信软件与多核计算 报告人:冯新宇 研究背景 • 处理能力越来越强 • 多核、众核、GPU … • 问题规模越来越大 • 网络、云计算、大数据… • 安全性需求越来越高 • 软件应用越来越广、计算环境日益复杂 Heartbleed: SSL buffer overflow bug 研究方向 • 如何算的“快”? • 如何充分利用多核(众核)计算资源,解决计算问题? • 新的算法、操作系统、编程语言和模型等 • 如何算的“对”? • 软件的正确性、可靠性、安全性等 • 高可信软件:如何开发没有bug的软件? • 如何服务于新兴的计算需求? • 如何从性能和可靠性两个方面为新兴应用提供支持? • 应用:嵌入式和移动系统、网络、云计算、大数据 研究团队 卲中(耶鲁) 张昱 冯新宇 华蓓 郭宇 李兆鹏 陈意 云 付明 可信软件 构造没有Bug的软件系统 • 计算机科学家的最高理想之一 • 1960年代开始提出 • 取得众多突破性进展,但仍然面临巨大挑战 • 有巨大的经济需求 • 软件bug每年给美国经济带来596亿美元的损失 • 2002年美国NIST的研究结果 • “Null References: The Billion Dollar Mistake” - Tony Hoare 用形式化验证技术严格证明底层操作系统 不会崩溃 防崩溃代码 (Crash-Proof Code) 主要研究方向 • 可信防崩溃系统软件构造 • 以形式化程序验证为手段,确保操作系统内核的可靠性、 正确性、安全性 • 形式化程序验证 • 将程序及其行为刻画为数学对象 • 将正确性需求刻画为该数学对象上的数学性质 • 采用数学的办法,严格证明这个数学对象满足我们的正 确性需求 – 比测试有更严格的保证 常见正确性性质举例: “程序永远不会有内存访问错误:空指针引用、下标越界、内存泄漏等” “排序函数正确的完成了对数组的排序” “程序不会进入无限循环” 可信软件:主要课题 • 实时嵌入式操作系统uC/OS-II内核的验证 • 约6000行代码 • 广泛应用于各类嵌入式系统 • 项目进行中 Parrot Drone 冯新宇 可信软件:主要课题 • CertiKOS虚拟机(Hypervisor)的验证 • 将CertiKOS部署在 无人驾驶汽车(LandShark)上 • 项目进行中 Zhong Shao (耶鲁) 可信软件:主要课题 • C程序验证器和可信编译 • C程序的自动验证 • 编译后自动生成关于二进制程序的证明 • 无需相信编译器的正确性 陈意云 多核计算 多核计算:主要挑战 • 并发程序开发及正确性 • 大量的不确定性 • 难以编程、易出错、难测试/调试 多核计算:主要挑战 • 并发程序开发及正确性 • 大量的不确定性 • 难以编程、易出错、难测试/调试 • 计算资源的充分利用 • 并行化:如何把任务分配到 不同的处理器上? 如何有效协调存在 依赖关系的任务? • Cache对性能的影响? CPU 和 GPU 的协同? 多核计算:主要课题 • 确定性并行编程模型和操作系统 • 确定性操作系统Dlinux • 确定性共享虚存模型: 不同读写特征的内存区域 张昱 • 只读、单生产者-多消费者模型、DiffMerge • 进程/线程的动态管理、I/O的确定性并行 • 确定性并行编程模型的设计和实现 Reducor(是否可交换) Dynamic Scheduler Load Balancer … 多核计算:主要课题 • 基于多核/众核处理器的高速网络算法/系统 • 基本思路 华蓓 • 利用通用多核服务器构建高速网络系统 • 研究突破网络系统瓶颈的关键技术 • 基于多核服务器的高速网络流量监视系统 • 关键技术突破:用于核间通信的单生产者-单消费者并发无锁队列、 大规模TCP查找算法(已实际应用) • 由合作企业完成成果转化(万兆级数据中心服务性能监视系统) • 新型计算架构上的网络系统:CPU+独立GPU,APU • 基于GPU的算法加速 • 异常检测,数据压缩,数据流加密,...... 多核计算:主要课题 • 无锁并发算法的验证 • 栈、队列、集合等并发对象的验证 • 部分算法来自于java.util.concurrency包 冯新宇 • 并发垃圾收集算法的验证 • 算法在Java虚拟中使用 • 发现了外科手术机器人控制程序中并发算法的bug 对新兴应用领域的支持 可信软件 关键应用 多核计算 关键应用 • 大数据分析平台及关键技术 华蓓 冯新宇 • 集海量数据存储、查询、分析功能于一体的数据平台 • 基于对非关系数据库MongoDB的改造 • 高效的大数据索引技术 • 网络流量大数据分析 • 数据分析的隐私保护以及编程语言支持 • 软件定义网络(SDN):最有前途的新型网络架构 • 以视频多播和网络编码应用为切入点,研究SDN的 关键技术,并在CENI平台上验证。 • 新型的编程语言支持 • 网络程序的分析和验证 研究团队 卲中(耶鲁) 张昱 冯新宇 华蓓 郭宇 李兆鹏 陈意 云 付明 基础研究为主 主要平台 交换学生、 教师互访等 中国科大-耶鲁高可信 软件联合研究中心 软件安全课题组 多核计算课题组 耶鲁方合作者: 卲中 Richard Yang Bryan Ford 主要平台 基础研究与产业化相结合 软件安全课题组 多核计算课题组 科大提供技术,国创提供资 金(1000万)和市场需求 中国科大-国创高可信 软件工程中心 主要平台 中国科大-耶鲁高可信 软件联合研究中心 软件安全课题组 多核计算课题组 中国科大-国创高可信 软件工程中心 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 多核、软件定义网络(SDN)、大数据等 • 当前研究热点,有广泛的应用 • 可信软件 • 最基础:是计算机领域的一项基础性研究 • 无bug软件是计算机科学家的最高理想之一 • 此领域出过近20名图灵奖得主 • 仍然有丰富的理论问题,具有很高的研究价值 • 丰富的应用价值和经济价值 • 596亿美元的市场? • 新一轮研究热点:2011十大新兴技术之一 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 站在领域最前沿,从事国际一流的研究 • 我们的多项研究处于国际领先地位 • 邵中:近年来Certified Software概念的主要倡导者之 一 [CACM 2010] 防崩溃代码的主要 MIT出版的Technology Review对十大新兴 研究人员 技术之一——防崩溃代码的报道 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 站在领域最前沿,从事国际一流的研究 • 我们的多项研究处于国际领先地位 • 邵中:近年来Certified Software概念的主要倡导者之一 [CACM 2010] • 冯新宇和邵中被列为国际上防崩溃代码的主要研究人员 • 多篇顶级期刊和会议文章 • TOPLAS、POPL、PLDI、PPoPP、SIGCOMM 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 站在领域最前沿,从事国际一流的研究 • 广泛的国际交流机会 • 博士生4年级去耶鲁大学访问1-2年 • 目前已有10名研究生访问耶鲁 • 也很容易建立跟其他学校的交流 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 站在领域最前沿,从事国际一流的研究 • 广泛的国际交流机会 • 广阔的发挥个人兴趣的空间 • 两个研究/工程中心: 提供基础研究和应用型研究的选择 • 充分尊重学生自己的想法和思路 加入我们的5点原因 • 选择最基础,同时又最热门的研究方向 • 站在领域最前沿,从事国际一流的研究 • 广泛的国际交流机会 • 广阔的发挥个人兴趣的空间 • 良好的学习和生活环境 • 合肥和苏州,可以选择 欢迎你们的加入! • 跟我们联系: • 冯新宇:[email protected] , 15895437185 • 华蓓: [email protected] , 0551-63607043 • 张昱: [email protected], 0551-63603804 • 中科大-耶鲁高可信软件联合研究中心主页 • http://kyhcs.ustcsz.edu.cn 谢 谢! 主要平台 • 软件安全课题组和多核计算课题组 • 中科大 – 耶鲁高可信软件联合研究中心 • 基础研究为主 • 交换学生和教师互访等 • 与耶鲁大学的多位教授合作开展研究 • Zhong Shao(我校大师讲席教授), Richard Yang, Bryan Ford 卲中 Richard Yang Bryan Ford 主要平台 • 软件安全课题组和多核计算课题组 • 中科大 – 耶鲁高可信软件联合研究中心 • 基础研究为主 • 交换学生和教师互访等 • 与耶鲁大学的多位教授合作开展研究 • Zhong Shao(我校大师讲席教授), Richard Yang, Bryan Ford • 中科大 – 国创高可信软件工程中心 • 基础研究与产业化相结合 • 科大提供技术,科大国创公司提供资金(1000万) 和市场需求 • 嵌入式操作系统内核的验证、程序验证器的开发等 1.5h 2.5h 0.5h 主要研究方向 • 可信防崩溃系统软件 • 以形式化程序验证为手段,确保操作系统内核的可靠性、 正确性、安全性 程序(数学模型) 严格保证程序相对于其 规约没有bug 规约(数学描述) 验证 内存安全性、功能正确性、 终止性、实时性等 证明(可靠性证据) 主要研究方向 • 可信防崩溃系统软件 • 以形式化验证为手段,确保操作系统内核的可靠性、正 确性、安全性 • 研究各种相关的理论、程序设计语言和工具的支持 • 操作系统中断处理和多任务调度的验证、自动定理证明、可信 编译器的开发 …