基于Xen的多操作系统共享资源访问协议探讨

论文价格:150元/篇 论文用途:硕士毕业论文 Master Thesis 编辑:硕博论文网 点击次数:
论文字数:38966 论文编号:sb2023111510231751402 日期:2023-11-22 来源:硕博论文网

本文是一篇软件工程论文,本文定义了虚拟化环境下,任务访问共享资源时可能受到的优先级反转阻塞和共享资源访问协议适用的系统模型,获得了共享资源访问协议的设计目标。
第一章 绪论
1.1 研究工作的背景和意义
虚拟化技术被广泛应用于企业和云计算领域,通过引入虚拟机监视器(Virtual Machine Monitor,VMM),将单个物理资源虚拟成为多个逻辑资源,使得不同类型的操作系统可以运行于统一的硬件平台之上。运行于VMM之上的操作系统称之为虚拟机(Virtual Machine,VM)。这种运行方式减少了系统间的相互干扰,一个虚拟机的崩溃,不会影响整体系统的正常运行[1]。与此同时,不同的操作系统可以向上层用户提供不同的API接口,以满足用户多样化的应用程序编写需求。因此,虚拟化技术凭借良好的鲁棒性、灵活性以及较高的资源利用率在计算机技术的应用领域得到了广泛的关注。
随着多核平台在嵌入式系统中的盛行,嵌入式系统的功能性也变得更加强大,支持更多样的用户接口,更多的通信通道,更复杂的应用场景,更通用的操作系统。功能性的增强带来了软件复杂性的迅速增加,这对嵌入式软件的管理能力提出了巨大的挑战。与此同时,虚拟化技术平稳的系统间迁移策略,可定制的工作负载管理功能以及内存隔离机制,可以显著的提高嵌入式系统的安全性,可移植性以及多核平台的资源利用率。这使得虚拟化技术在嵌入式平台的应用获得了广泛的关注。随着汽车电子、物联网的飞速发展,面向嵌入式实时系统的应用将愈加复杂与广泛,通过虚拟化技术对其进行安全、效能、灵活性赋能是未来发展的主要方向之一。 
然而,嵌入式系统的应用场景与服务器系统存在一定差异。与服务器虚拟化不同的是,嵌入式虚拟化更关注系统的实时性,可移植性以及系统开销[2]。在学者针对VMware,vSphere,Citrix System这三个主流服务器虚拟化解决方案的调研中显示,以上方案均不能确保运行在虚拟机上任务的实时性[3]。其主要原因在于面向服务器的虚拟化技术为了保证系统整体的吞吐率以及对客户端的响应,采用了时间片轮转与分时复用等调度策略与资源共享策略,故无法满足特定任务的紧迫性需求,从而导致任务错过截止时间。
.............................
1.2 实时虚拟化技术的国内外研究现状
虚拟化技术诞生于上世纪60年代,UNCOL(Universal Computer Oriented Language)系统的出现被认为是早期的虚拟化技术,并成为了Java虚拟机和Microsoft.Net平台的雏形[7]。经过数十年的变迁,发展出了大量的实现方式,主要包括硬件分区技术、平台模拟技术、基于容器的虚拟化技术、预虚拟化技术、半虚拟化技术、完全虚拟化技术等。同时,虚拟化硬件技术的支持,也使得虚拟化技术获得了更进一步的发展。
目前,虚拟化软件市场被几大巨头占据,主要包括:VMware,IBM,CITRIX,KVM,Xen。主流的虚拟化技术分类方式主要包含两种,一种可以依据VMM是否直接运行于硬件之上,将虚拟化技术分为Type-1型裸机虚拟化(bare-mental)技术和Type-2型的宿主虚拟化(hosted)技术。另一种分类方式,根据虚拟机在虚拟化平台上的运行是否需要修改虚拟机源码,可以将虚拟化技术分为半虚拟化(para-virtualization)技术和完全虚拟化(fully-virtualization)技术[8]。
其中,Xen首先提出了半虚拟化架构[9],通过修改虚拟机的方式,在不支持虚拟化硬件扩展的硬件平台上,实现了比平台模拟技术更为简单、高效的虚拟化。与此同时,现代CPU架构(例如x86架构、Power PC、ARM等)也在引入相应的硬件虚拟化扩展。硬件虚拟化扩展的实现极大的促进了完全虚拟化技术的发展,使得基于完全虚拟化技术的KVM[10]得以诞生。
上述大部分的方案由于缺乏内部资料无法满足本文的开发需求。Xen和KVM作为目前应用最广泛的开源虚拟化技术[11],成为了本文关注的重点。因此本小节将主要针对Xen和KVM虚拟化平台,从传统实时任务调度与锁协议和实时虚拟化两方面介绍目前国内外的研究现状。
............................
第二章 背景知识
2.1 虚拟化技术概述
2.1.1 基本概念与重要特性
虚拟化技术本质上是一种物理资源的逻辑抽象方法,在计算机和嵌入式体系结构中,抽象的资源通常是处理器,内存和IO设备(例如:以太网、键盘等)。虚拟化技术通过向计算机系统的抽象层次中引入虚拟化层的方式,隐藏了虚拟资源到物理资源的映射,并向上提供了一组虚拟资源,在该层之上可以实现更高抽象级别的项目。
在虚拟化计算机系统中,抽象层被称作是虚拟机监视器(Virtual Machine Monitor,VMM)或是hypervisor。VMM可以将单个物理资源(例如处理器、内存、IO设备等)抽象为多个虚拟资源,并隐藏物理资源和其他虚拟机。其中,虚拟处理器资源被抽象为多个虚拟处理器(Virtual Control Processing Unit,VCPU)。VCPU的实现,使得多个操作系统能够在他们自己的虚拟资源上并行执行,而不知道其他虚拟机的存在。
由于VMM可以直接控制物理资源,因此硬件资源可以划分为一个或多个逻辑单元,每一个逻辑单元被称之为一个虚拟机(Virtual Machine,VM)、域(Domain)或是客户虚拟机(Guest OS)。VM作为系统模拟的替代方案[44]流行于20世纪70年代,主要是针对整个ISA架构进行运行时代码解释以及内存和系统总线的模拟,之后,该系统中的模拟器被称之为虚拟机。有研究中给出了虚拟机的定义[50]:虚拟机是一个客户软件环境,用于支持操作系统和相应的应用程序,每一个VM都独立于其他VM运行,并使用相同的接口使用VMM提供的处理器、内存、存储、图像以及IO资源。
.......................
2.2 Xen平台下的基本运行机制
Xen虚拟化技术主要由三种基本的运行机制构成:超级调用、事件机制以及基于授权表的共享内存机制。其中,超级调用机制实现了虚拟机对Xen平台资源的访问,事件机制实现了Xen平台对上层虚拟机的管理,授权表机制则为Xen以及虚拟机提供数据交互的方式。在本节内容中,我们会对涉及的三类基本运行机制进行介绍。
2.2.1 超级调用机制
在x86架构下,共拥有0-3环四个特权级。低特权级没有访问高特权级的权限,四个特权级中,0级为最高特权级。在半虚拟化系统中,由Xen代替操作系统占据。操作系统则占据1环特权级,应用程序位于3环特权级。这意味着操作系统不能直接与硬件交互,导致某些硬件特权指令的失配。Xen系统为了保障VM的正常运行,将为VM提供相应的指令调用接口,这些接口被定义为超级调用(Hypercall)。
超级调用是本文研究的基础之一,后续介绍的事件机制和共享内存机制均需要通过超级调用的方式实现。在Xen的0x82软中断处理函数中,放置了一张超级调用表(Hypercall Table),表中的每一个表项与一个超级调用对应,并存储了实际超级调用处理函数的入口地址。通过超级调用号即可实现对处理函数的索引。
随着支持Xen的虚拟机逐渐增加,在函数中直接调用超级调用的方式,无法满足各个不同虚拟机的差异化需求。为此引入了超级调用页面(Hypercall Page)的概念。Domain在初始化的过程中会将Xen空间的超级调用页,通过页面映射的方式映射至Domain的内核空间,由Domain对其进行初始化。
每一个超级调用占用32B的内存空间,超级调用页面的大小为4kB。因此一个超级调用页面最多包含128个超级调用,所有超级调用依据超级调用号的顺序依次排列。根据超级调用页的首地址和超级调用号即可对处理程序进行寻址。Xen系统中的超级调用最多拥有6个参数,Xen会根据不同的参数个数,分支查找相应的响应函数执行。

软件工程论文怎么写
软件工程论文怎么写

...................................
第三章 基于MPCP的共享资源访问协议的设计与实现 ························· 21
3.1 基于多处理器优先级天花板的实时锁协议设计 ················· 21
3.1.1 虚拟化共享内存系统模型 ··························· 21
3.1.2 实时锁协议的设计目标 ··························· 22
第四章 多操作系统环境下共享资源访问协议的可调度性分析 ················ 40
4.1 系统模型 ······················· 40
4.1.1 处理器模型 ······························ 40
4.1.2 任务模型 ································· 40
第五章 实验与分析 ······················· 52
5.1 多核多操作系统搭建 ··················· 52
5.1.1 系统环境架构 ·························· 52
5.1.2 系统配置方法 ····························· 53
第五章 实验与分析
5.1 多核多操作系统搭建
5.1.1 系统环境架构
本章将通过多核多操作系统搭建以及可调度性分析实验两个部分,对于本文涉及的系统实验进行介绍。首先,本章将详细介绍系统环境搭建主要内容,包括源码编译的Xen系统安装、基于grub的bootloader配置、磁盘与网络配置以及代码测试环境的搭建。其次,本章介绍了针对共享资源访问协议进行的可调度性测试实验,基于线性规划的可调性分析方法,对共享资源访问协议的可调度性进行了测试,并对实验结果进行分析。
要实现的系统环境整体架构如图5-1所示。本文基于Xen虚拟化平台,搭建了拥有三个Linux作为虚拟机的多操作系统环境,用于锁协议设计的实现。

软件工程论文参考
软件工程论文参考

多操作系统环境搭建与服务器端,通过samba以及ssh服务器向Windows端的客户机提供命令行支持以及文件修改权限。服务器端内部通过网桥连接并通过Xen进行网络访问及数据包分发。
................................
第六章 全文总结与工作展望
6.1 全文总结
随着计算机性能的不断增强,虚拟化技术因其良好的资源整合特性以及灵活性,在数据中心和云计算等领域获得了广泛的应用。与此同时,随着应用程序的实时性需求逐渐增加,提升虚拟化系统的实时性成为了重要的研究方向。
在已有的研究中,通过结合经典的实时调度理论,提出了在虚拟化环境下的调度算法及其相应的可调度性分析方法,并在业内应用广泛的虚拟化平台上获得了实现。然而,这类分析没有考虑到虚拟化平台实际运行中的延时,导致系统任务的可调度性分析结论与实际任务运行结果相差甚远。在虚拟化平台引入的延时中,因持有锁抢占问题导致的优先级反转阻塞,是延时的主要来源之一。
然而,由于虚拟化系统无法感知应用层任务的优先级,虚拟机间的共享资源访问并不支持互斥竞争,虚拟机间的进程通信基于数据流模型的进程间通信方式。这种通信方式极大地影响了高性能并行任务应用场景下,任务的共享资源访问效率。基于上述研究背景,本文针对Xen虚拟化环境下多操作系统间任务共享资源访问协议展开了研究。
本文设计了一种基于Xen的操作系统间共享资源访问协议,为虚拟机间访问共享资源提供了实时性的保障。并为该协议提供了可调度性分析的分析方法。论文的工作如下:
(1)本文明确了系统间共享资源访问的实时性,需要通过优先级机制进行保障。针对这一问题,本文设计了任务感知调度的调度方法,为感知虚拟机任务的紧迫程度提供了可行方案。
(2)针对虚拟化多操作系统环境下,虚拟机间共享资源访问的优先级反转问题,对于虚拟化系统中,任务访问系统间共享资源时,可能受到的优先级反转阻塞问题进行了阐述。设计并实现了基于虚拟化多操作系统环境下的系统间共享资源访问协议,用于限制因访问系统间共享资源导致的不可控优先级反转阻塞。
(3)针对实现的共享资源访问协议,基于响应时间的分析方法,对联邦调度下DAG并行任务模型进行了可调度性分析。通过对于系统运行过程进行了分析,获得了虚拟化系统中存在的实时性约束。并基于线性规划的分析方法,缩小了响应时间分析的可行域,降低了可调度性分析中的响应时间上界。
参考文献(略)


上一篇:防御性深度学习的对抗性样本生成探讨
下一篇:没有了
如果您有论文相关需求,可以通过下面的方式联系我们
点击联系客服
QQ 1429724474 电话 18964107217