非根进程:一种基于硬件辅助虚拟化的进程抽象层
本文关键词:非根进程:一种基于硬件辅助虚拟化的进程抽象层,由笔耕文化传播整理发布。
【摘要】:随着云计算技术的快速发展,服务器端应用在性能需求上的挑战越来越大。而传统操作系统架构中太过通用的硬件抽象,也使得这种挑战变得更加艰巨。于此同时,服务器环境中虚拟化场景的大量部署,使得客户机操作系统和和底层的硬件抽象层产生了大量功能上的冗余。这种冗余的存在,使得服务器应用在性能上的损耗进一步加剧。为了解决这些问题,近年来学术界一直在从轻量化操作系统层的设计这一方向上进行努力。在诸多的工作中,"Exokernel和LibOS"成为了这一设计思潮的主流方案。Exokernel要求操作系统做细粒度的管理,将更多硬件特性暴露给进程。本文在对Intel的VT-x硬件辅助虚拟化技术所提供的抽象和隔离进行研究后,借助Exokernel的指导思想,提出了利用VT-x的隔离特性实现一个操作系统的思想。为了验证这一思想,本文在Linux内核的基础上设计并实现了一个新的进程抽象层。在该抽象层下,普通的应用程序在执行时可以接触到传统进程所无法接触的硬件特性。这种在新的抽象层上运行的进程,在文中被称为“非根进程”。非根进程可以直接使用Intel的特权级段式和页式的内存管理特性;对非根进程的错误投递,也可以直接通过硬件的中断处理程序实现。另外,因为本文内容采用了引导和程序内容相解耦的设计思路,传统的可执行文件可以直接以非根进程运行。为了实现这一系统,本文工作如下:1.对当前主流OS架构和虚拟化技术进行了研究。2.深入分析了Intel的VT-x技术和其他用该技术实现的进程抽象层的解决方案。3.设计并实现了一种方案,为可执行程序提供了一种新的执行环境,并对该方案进行了评估测试。
【关键词】:硬件辅助虚拟化 Exokernel LibOS 进程抽象层
【学位授予单位】:浙江大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP393.05
【目录】:
- 摘要5-6
- Abstract6-12
- 第1章 绪论12-16
- 1.1 课题的背景和研究目标12-13
- 1.2 本文的工作内容13-14
- 1.3 本文的主要创新点14-15
- 1.4 本文的内容组织15-16
- 第2章 相关技术综述16-33
- 2.1 经典的操作系统架构16-22
- 2.1.1 宏内核16-18
- 2.1.2 微内核18-20
- 2.1.3 Exokernel20-22
- 2.2 虚拟化22-26
- 2.2.1 系统虚拟化22-26
- 2.2.2 OS虚拟化26
- 2.3 Intel VT-x技术研究26-32
- 2.3.1 处理器虚拟化的支持27-30
- 2.3.2 VT-x的内存虚拟化30-31
- 2.3.3 IO虚拟化技术VT-d31-32
- 2.4 本章小结32-33
- 第3章 系统总体设计思路分析33-45
- 3.1 对虚拟化和OS就抽象角度的分析33-36
- 3.2 利用虚拟化做OS架构的思路分析36-43
- 3.2.1 定制LibOS36-38
- 3.2.2 更方便的暴露硬件特性38-40
- 3.2.3 IO功能解耦40-42
- 3.2.4 总结42-43
- 3.3 系统总体设计思路43-44
- 3.4 本章小结44-45
- 第4章 系统关键部分设计与实现45-67
- 4.1 系统总体架构45-46
- 4.2 非根进程的表示46-52
- 4.2.1 32位模式VMCS的初始化46-48
- 4.2.2 64位模式VMCS的初始化48-49
- 4.2.3 VMCS的切换和加载49-51
- 4.2.4 进程结构体51-52
- 4.3 进程的虚地址空间结构52-55
- 4.3.1 32位模式52-53
- 4.3.2 64位模式53-55
- 4.4 进程的运行55-60
- 4.4.1 内核态的创建工作55-56
- 4.4.2 32位非根进程的loader56-58
- 4.4.3 64位非根进程的loader58-59
- 4.4.4 EPT页表的初始化59-60
- 4.4.5 进程的调度60
- 4.5 中断和异常60-66
- 4.5.1 NMI中断和外部中断60-61
- 4.5.2 一般情况的异常处理61-62
- 4.5.3 缺页异常62-64
- 4.5.4 系统调用64-66
- 4.6 本章小结66-67
- 第5章 系统的测试与分析67-76
- 5.1 测试环境的部署67-69
- 5.1.1 测试环境67-68
- 5.1.2 测试环境的部署安装68-69
- 5.2 功能测试69-70
- 5.3 性能测试和分析70-74
- 5.3.1 异常处理70-71
- 5.3.2 系统调用71-72
- 5.3.3 启动时间72-74
- 5.3.4 内存访问74
- 5.4 对测试的综合分析74-75
- 5.5 本章小结75-76
- 第6章 总结与展望76-79
- 6.1 本文工作总结76-77
- 6.2 工作展望77-79
- 参考文献79-82
- 攻读硕士学位期间主要的研究成果82-83
- 致谢83
【相似文献】
中国期刊全文数据库 前8条
1 黄睿;;以Transaction为基础的验证方法[J];电子设计技术;2003年09期
2 陈倩;;抽象技术与面向对象程序设计教学[J];计算机教育;2009年22期
3 王同合;岳春生;胡泽明;;基于抽象层的嵌入式GIS跨平台体系结构设计[J];淮海工学院学报(自然科学版);2009年S1期
4 王翔;;换个角度看世界——.NET Framework 3.0使用评析[J];程序员;2006年11期
5 尚海忠,朱培彦,王霞,徐家祥,陈涵生;操作系统抽象层—一种支持跨平台的新技术[J];计算机工程;2002年02期
6 杜玄;单崇东;;迈向更高层的抽象——建立领域元模型[J];程序员;2005年03期
7 章广志;;一种轻量GUI系统的设计与实现[J];微计算机信息;2009年17期
8 ;[J];;年期
中国硕士学位论文全文数据库 前5条
1 孙伟杰;非根进程:一种基于硬件辅助虚拟化的进程抽象层[D];浙江大学;2015年
2 章政兴;用于跨平台多媒体播放器的平台抽象层的设计和实现[D];上海交通大学;2010年
3 滕跃啸;基于Intel CE4100平台的多媒体抽象层的研究与实现[D];华东理工大学;2012年
4 郦文曦;线之抽象与转译[D];浙江大学;2015年
5 赵丹;静态系统基于结构抽象的分层诊断方法[D];吉林大学;2009年
本文关键词:非根进程:一种基于硬件辅助虚拟化的进程抽象层,由笔耕文化传播整理发布。
,本文编号:322215
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/322215.html