龙芯多核处理器多线程故障恢复系统设计与实现
发布时间:2017-03-16 19:07
本文关键词:龙芯多核处理器多线程故障恢复系统设计与实现,,由笔耕文化传播整理发布。
【摘要】:目前,大数据和物联网进入了高速发展时代,离不开的一个背景就是多核处理器与多线程技术的越发成熟。这也对多核处理器环境下多线程程序运行的稳定性和健壮性提出越来越高的要求。但在实际应用环境中,设备程序在运行阶段不可避免的总会遇见设计之初不曾考虑到的故障。其中,瞬态故障是导致程序不能正常运行的最常见原因。由于实际环境的复杂性,要完全避免瞬态故障的出现需要及其高昂的成本代价。因此,在目前技术基础之上,及时的故障恢复技术变得极具研究价值。本文针对多核处理器多线程故障恢复技术展开研究。首先对现存的故障恢复技术进行了介绍以及分析,接着对内核进程的实现以及多线程的实现机制进行了分析,确定了为实现完整的故障恢复功能需要对多线程程序进行保存的信息,包括寄存器、内存、信号、文件等。通过以上研究分析,本文设计了一种基于检查点的操作体统级的故障恢复系统,即在正常运行阶段对多线程程序设定检查点文件,一旦故障出现就可以根据检查点文件对多线程程序进行恢复。该系统在对程序信息进行保存与恢复过程中对应用层程序透明。关于检查点设置,寄存器、内存地址、当前工作目录、文件等数据可直接保存到设定的数据结构中,然后以页为单位写入内核缓冲区中。而对于内存中的数据,则需要拷贝物理内存页框中的数据。内核缓冲区中的数据由内核线程负责写入非易失磁盘中。另外,针对检查点设置的时间,本文提出了一种新的思路,即通过对包含数据传输的系统调用进行计数来决定检查点设置的时间,而不再采取时间间隔的方式。在进行故障恢复的时候,对于文件、内存等共享信息只需在一个线程中进行恢复,而线程寄存器、信号等私有信息则需要在所有线程中进行恢复。最后,对实验环境和编译方法进行了说明,对系统的基本功能进行了测试,并在线程数量、数据规模和时间间隔三个方面选择不同的测试程序对系统性能进行了测试,实验结果表明线程数量和时间间隔更能引起性能损失的变化,而数据规模对性能损失的变化影响较小。
【关键词】:故障恢复 多线程 检查点 操作系统级 内核
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP332
【目录】:
- 摘要4-5
- ABSTRACT5-8
- 第1章 绪论8-14
- 1.1 课题来源及研究的背景和意义8-9
- 1.1.1 课题来源8
- 1.1.2 课题研究的背景和意义8-9
- 1.2 国内外研究现状9-13
- 1.2.1 检查点系统研究现状10-12
- 1.2.2 故障恢复关键技术研究现状12-13
- 1.3 本文的主要研究内容13-14
- 第2章 多线程及检查点相关技术14-26
- 2.1 进程机制14-19
- 2.1.1 进程描述符14-15
- 2.1.2 进程状态15-16
- 2.1.3 进程上下文16-17
- 2.1.4 进程地址空间17-18
- 2.1.5 信号处理机制18-19
- 2.2 多线程机制19-21
- 2.3 虚拟地址到物理地址的转换21-22
- 2.4 内核空间与用户空间信息交互方式22-23
- 2.5 内核模块与字符设备驱动23-25
- 2.6 本章小结25-26
- 第3章 多线程故障恢复系统设计与实现26-45
- 3.1 系统特点与总体结构26-27
- 3.2 服务守护进程27-28
- 3.3 虚拟字符设备实现信息交互28-30
- 3.4 检查点设置30-39
- 3.4.1 检查点头信息32-33
- 3.4.2 寄存器信息33
- 3.4.3 进程内存映像信息33-35
- 3.4.4 信号相关信息35-36
- 3.4.5 文件相关信息36-37
- 3.4.6 内核缓冲区设计37-39
- 3.5 基于系统调用的检查点间隔控制39-41
- 3.6 故障恢复41-43
- 3.7 本章小结43-45
- 第4章 系统测试与结果分析45-55
- 4.1 实验环境45
- 4.2 内核模块编译45
- 4.3 故障恢复功能测试45-49
- 4.4 性能测试与结果分析49-54
- 4.4.1 线程数量50-51
- 4.4.2 数据规模51-52
- 4.4.3 时间间隔52-54
- 4.5 本章小结54-55
- 结论55-57
- 参考文献57-61
- 攻读硕士学位期间发表的论文及其它成果61-63
- 致谢63
本文关键词:龙芯多核处理器多线程故障恢复系统设计与实现,由笔耕文化传播整理发布。
本文编号:252202
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/252202.html