摘 要
由于无人值守变电站越来越多,这对电力管理部门在技术和管理上都带来了新的挑战。无人值守变电站的自动化、智能化的程度越来越高,各种在线监控系统也越来越多,对于信息化管理的要求也更高。因此亟待需要一个统一监控平台将电气设备、环境、图像、各种报警装置全方位直观展现,以便管理操作人员能快速、直观、便捷的查看到所需的实时或历史数据。本项目即是针对以上所列出的无人值守变电站运行管理的新挑战,通过基于虚拟现实(VR)技术的变电站远程统一智能监控平台的应用研究,来提高无人值守变电站的运行管理水平。
【关键词】虚拟现实 电力 智能 监控平台
1 引言
随着电力自动化技术的快速发展,越来越多的常规变电站改造为无人值守变电站,无人值守变电站的电压等级和范围越来越广,成为未来发展的必然趋势。在常规变电站改造为无人值守变电站以后,它实现了变电站运行的自动化、精度化,确保了对变电站事故的处理效率和准确性,进一步保障了 系统安全 ,减少了人员的误操作,减少了大量的运行值班人员,提高了劳动生产率,降低了成本,带动了企业科技进步。
但是无人值守的模式无论是在技术上还是管理上都对原有的模式带来了新的挑战。无人变电站的电压等级各站有所不同,设备型号复杂,对于管理运行人员熟悉设备的运行、维护和操作的要求高。并且无人值守变电站的自动化、智能化的程度越来越高,各种在线监控系统也越来越多,对于信息化管理的要求也更高。因此亟待需要将不同监控系统按照设备的真实场景进行统一、整合、分析,电气设备、环境、图像、各种报警装置能全方位直观展现,以便管理操作人员能快速、直观、便捷的查看到所需的实时或历史数据。
2 项目内容
本项目即是针对以上所列出的无人值守变电站运行管理的新挑战,通过基于虚拟现实(VR)技术的变电站远程统一智能监控平台(以下简称“平台”)的应用研究,来提高无人值守变电站的运行管理水平,如图1所示。
2.1 平台的功能
2.1.1 真实三维再现变电站场景
直观再现变电站的建筑、主控室、开关室及环境场景; 直观显示电气一次部分以及电气部分的实际连接;直观显示开关柜的位置、外观 ; 直观显示辅控设备的现场安装位置。
2.1.2 集中展示设备工况
3D实景中沉浸、快速、便捷地查看任意电气设备的相关数据、数值、图像,并可进行历史变化趋势的对应分析、判断。
与Scada系统融合――实时展示电气设备的Scada遥测、遥信数据,并统计开关跳闸次数、变压器调档次数及瓦斯保护动作次数;
与图像监测系统融合――实时显示现场监测图像;
与在线测温系统融合――实时显示在线温度;
与现场巡检系统融合――展示设备巡检历史记录。
2.1.3 自动灵活查看实时图像
双击场景中的设备,图像设备自动进行转向、对焦,颠覆传统人工查找摄像机、转动云台、聚焦等一系列繁琐动作;无需查找图像设备,可快速、便捷、准确地进行对应设备的远程外观察看、拍照、热红外成像测温、热红外拍照等一系列动作,并智能生成人性化的记录、 报告 等。
2.1.4 设备异常告警
整个三维场景中,每个设备模型会随着实时采集来的数据,智能判断设备工作状态是否正常;对于出现异常的,三维场景会自动将设备渲染成告警模式并定位,不断提示操作人员及时排除故障;解警后,可在设备数据面板中查看历史告警记录。
2.1.5 远程巡视
设定所需巡检的设备点以及关注的数据量、视频图像外观、热红外成像等必要的巡检信息,系统自动生成巡检路径;巡视人员通过平台随机或定时进行远程巡检,当进入已设定的巡检设备点时,系统将相关的设备相关在线监测数据,进行集中展示;对实时巡检的结果、过去时间短的变化趋势等进行正常与否进行巡视、判定,形成远程综合分析巡检结果记录,如图2所示。
2.2 基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台的特点
2.2.1 直观逼真
虚拟现实是人们通过计算机对复杂数据进行可视化、操作以及实时交互的环境。本平台中将通过三维模型忠实逼真地再现了安阳市北郊变电站场景,产生了沉浸式的交互环境。
2.2.2 统一管理
基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台可融合各种平台系统,展示其相应数据或图像,如Scada电气数据(遥信、遥测数据)、在线测温数据、辅助监控系统的视频图像等。
2.2.3 智能监控
基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台融合数字视频监控、RFID无线识别、智能门禁、智能报警等多种监控方式:
整个三维场景中,每个设备模型会随着实时采集来的数据,智能判断设备工作状态是否正常。对于出现异常的,三维场景会自动将设备渲染成告警模式并定位,不断提示操作人员及时排除故障;
所有的图像、安防、消防、周界、门禁、温湿度、各种传感设备、三维一次电气设备及其附件的各种属性、数据、动作、变化规律,均可以作为告警条件,进行告警及组合告警触发。
2.2.4 智能远程巡检
优化目前传统的现场巡检模式,通过在该平台上设定巡检路线、巡检设备、巡检数据量、设备外观等不同巡检内容,巡视人员在定时或随机通过该平台上进行远程巡检,当进入巡检设备点时,系统将相关的设备相关在线监测数据,进行集中展示,并对实时巡检的结果、过去时间短的变化趋势等进行正常与否进行巡视、判定,形成综合分析结果记录,能远程、高效进行电气设备多系统、跨平台巡测,减少现场巡检频次,形成和现场巡检的高度互补、统一。
3 技术实现 3.1 3D建模技术
三维建模软件为3dMax,它是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件,它功能强大,扩展性好。它适合制作建筑模型、物体动画模型以及人物动画模型等,可利用系统自带的材质库,或自制的贴图,来达到逼真的效果。
3DMax还可以将模型文件导出多种格式的文件,可用于 Java3D开发的引擎平台加载,如obj文件、3ds文件、mdl文件和smd文件等。
本平台引擎所适用的模型有obj、3ds和ms3d。基本场景静止模型采用obj文件格式;刀闸开合、门开合的动画采用3ds格式;漫游人物动画采用ms3d格式。
3.2 平台引擎技术
由于本平台采用B/S架构,所以平台引擎选择用Java3D 来实现VR技术。Java 3D是Java语言在三维图形领域的扩展,是一组应用编程接口(API)。客户端只需要使用标准的Java虚拟机就可以浏览,因此具有不需要安装插件的优点。而且Java3D是基于Internet的软件开发平台,它能将图形功能与Internet很好地集成在一起,因此它非常适用于开发基于网络的VR系统。
本平台算法有如下创新点:
(1)创新采用双视野模式展示变电站复杂场景中的人物/眼睛视野模式;更加直观,沉浸地再现变电站复杂真实场景,实现变电站复杂场景及电气设备、屏柜等多视角三维展。
(2)针对三维变电站场景地形的复杂性,改进传统2D启发式搜索A*算法,大幅度提升变电站复杂三维场景自动寻径的消耗时间。
(3)改进了三维变电站复杂场景中地面高低的检测算法,创新地增加了多维射线,来检测路面的高度信息,提高检验的精确性。
(4)根据变电站场景的复杂性、电气设备的布局复杂以及空间局限性,改进传统的AABB碰撞检测算法,采用动态AABB碰撞检测算法,大幅度提高碰撞检测的准确性。
(5)在变电站三维复杂场景中人物平滑移动,摒弃传统的BSP树,采用椭球体算法并添加滑动公式,实现碰撞后的平滑移动及电力巡检人物碰撞后的椭球体滑动处理。
3.3 系统接口技术
本平台与 其它 所需展示的系统接口程序采用Web Service模式。它是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。Web Services 利用 SOAP(简单对象访问协议)和 XML(Extensible Markup Language可扩展标记语言 )对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。XML是用于标记电子文件使其具有结构性的标记语言,提供统一的 方法 来描述和交换独立于应用程序或供应商的结构化数据,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,非常适合 Web 传输。
本平台的一大功能是可以展示不同系统的实时参数,不同的系统有不同的编程方式,而且像Scada系统,数据量大,且实时性要求很高,接口程序需要设计的灵活、高效,扩展性好。
与Scada系统接口:Scada系统中有所有电力设备所有遥测、遥信数据,本平台需要快速、便捷的从如此庞大的数据量中检索出所需的数据是个难点
与变电站辅控系统接口:本平台需要从辅控系统中要快速便捷地检索出实时图像、及智能报警信号,而图像的文件一般比较大,快速流畅地在3D平台中展示是个难点。
预留与其它系统的接口:因为本平台可以融合其它多种系统平台的数据,所以要求它在扩展性上做到有足够的冗余设计。
4 结论
基于虚拟现实(VR)技术的统一监控平台三维系统采用先进的软硬件技术,在系统功能方面立足电力变电站智能化管理和安全运行的实际情况,解决了传统管理中很多人工难以解决的问题,同时面向变电站整体模块,克服过去各系统数据条块分割、人工关联的弊端,从变电站实际指挥、运行诊断、检修操作等实际使用的角度出发,实现变电运行设备数据准确及时的采集,电气设备、各种监控装置等真实位置场景及实时状态进行直观、立体、逼真的集中再现及变电站三维巡视的漫游、数据记录、外观记录、巡视分析报告录入等数据的直观、统一再现。规范了业务流程的管理,减少了人工和材料损耗,实现了信息数据及分析的自动生成,实现了变电运行的智能及集中化管理。
参考文献
[1]陈卓等.基于虚拟现实的变电站培训仿真巡视功能研究 [J].现代计算机(下半月版),2010(09).
[2]张照彦等.虚拟现实在变电站仿真中的应用 [J].计算机仿真,2008,25(2).
计算机网络技术专业毕业论文题目
你是不是在为选计算机网络技术专业毕业论文题目烦恼呢?以下是我为大家整理的关于计算机网络技术专业毕业论文题目,希望大家喜欢!
1. 基于移动互联网下服装品牌的推广及应用研究
2. 基于Spark平台的恶意流量监测分析系统
3. 基于MOOC翻转课堂教学模式的设计与应用研究
4. 一种数字货币系统P2P消息传输机制的设计与实现
5. 基于OpenStack开放云管理平台研究
6. 基于OpenFlow的软件定义网络路由技术研究
7. 未来互联网试验平台若干关键技术研究
8. 基于云计算的海量网络流量数据分析处理及关键算法研究
9. 基于网络化数据分析的社会计算关键问题研究
10. 基于Hadoop的网络流量分析系统的研究与应用
11. 基于支持向量机的移动互联网用户行为偏好研究
12. “网络技术应用”微课程设计与建设
13. 移动互联网环境下用户隐私关注的影响因素及隐私信息扩散规律研究
14. 未来互联网络资源负载均衡研究
15. 面向云数据中心的虚拟机调度机制研究
16. 基于OpenFlow的数据中心网络路由策略研究
17. 云计算环境下资源需求预测与优化配置方法研究
18. 基于多维属性的社会网络信息传播模型研究
19. 基于遗传算法的云计算任务调度算法研究
20. 基于OpenStack开源云平台的网络模型研究
21. SDN控制架构及应用开发的研究和设计
22. 云环境下的资源调度算法研究
23. 异构网络环境下多径并行传输若干关键技术研究
24. OpenFlow网络中QoS管理系统的研究与实现
25. 云协助文件共享与发布系统优化策略研究
26. 大规模数据中心可扩展交换与网络拓扑结构研究
27. 数据中心网络节能路由研究
28. Hadoop集群监控系统的设计与实现
29. 网络虚拟化映射算法研究
30. 软件定义网络分布式控制平台的研究与实现
31. 网络虚拟化资源管理及虚拟网络应用研究
32. 基于流聚类的网络业务识别关键技术研究
33. 基于自适应流抽样测量的网络异常检测技术研究
34. 未来网络虚拟化资源管理机制研究
35. 大规模社会网络中影响最大化问题高效处理技术研究
36. 数据中心网络的流量管理和优化问题研究
37. 云计算环境下基于虚拟网络的资源分配技术研究
38. 基于用户行为分析的精确营销系统设计与实现
39. P2P网络中基于博弈算法的优化技术研究
40. 基于灰色神经网络模型的网络流量预测算法研究
41. 基于KNN算法的Android应用异常检测技术研究
42. 基于macvlan的Docker容器网络系统的设计与实现
43. 基于容器云平台的网络资源管理与配置系统设计与实现
44. 基于OpenStack的SDN仿真网络的研究
45. 一个基于云平台的智慧校园数据中心的设计与实现
46. 基于SDN的数据中心网络流量调度与负载均衡研究
47. 软件定义网络(SDN)网络管理关键技术研究
48. 基于SDN的数据中心网络动态负载均衡研究
49. 基于移动智能终端的医疗服务系统设计与实现
50. 基于SDN的网络流量控制模型设计与研究
51. 《计算机网络》课程移动学习网站的设计与开发
52. 数据挖掘技术在网络教学中的应用研究
53. 移动互联网即时通讯产品的用户体验要素研究
54. 基于SDN的负载均衡节能技术研究
55. 基于SDN和OpenFlow的流量分析系统的研究与设计
56. 基于SDN的网络资源虚拟化的研究与设计
57. SDN中面向北向的`控制器关键技术的研究
58. 基于SDN的网络流量工程研究
59. 基于博弈论的云计算资源调度方法研究
60. 基于Hadoop的分布式网络爬虫系统的研究与实现
61. 一种基于SDN的IP骨干网流量调度方案的研究与实现
62. 基于软件定义网络的WLAN中DDoS攻击检测和防护
63. 基于SDN的集群控制器负载均衡的研究
64. 基于大数据的网络用户行为分析
65. 基于机器学习的P2P网络流分类研究
66. 移动互联网用户生成内容动机分析与质量评价研究
67. 基于大数据的网络恶意流量分析系统的设计与实现
68. 面向SDN的流量调度技术研究
69. 基于P2P的小额借贷融资平台的设计与实现
70. 基于移动互联网的智慧校园应用研究
71. 内容中心网络建模与内容放置问题研究
72. 分布式移动性管理架构下的资源优化机制研究
73. 基于模糊综合评价的P2P网络流量优化方法研究
74. 面向新型互联网架构的移动性管理关键技术研究
75. 虚拟网络映射策略与算法研究
76. 互联网流量特征智能提取关键技术研究
77. 云环境下基于随机优化的动态资源调度研究
78. OpenFlow网络中虚拟化机制的研究与实现
79. 基于时间相关的网络流量建模与预测研究
80. B2C电子商务物流网络优化技术的研究与实现
81. 基于SDN的信息网络的设计与实现
82. 基于网络编码的数据通信技术研究
83. 计算机网络可靠性分析与设计
84. 基于OpenFlow的分布式网络中负载均衡路由的研究
85. 城市电子商务物流网络优化设计与系统实现
86. 基于分形的网络流量分析及异常检测技术研究
87. 网络虚拟化环境下的网络资源分配与故障诊断技术
88. 基于中国互联网的P2P-VoIP系统网络域若干关键技术研究
89. 网络流量模型化与拥塞控制研究
90. 计算机网络脆弱性评估方法研究
91. Hadoop云平台下调度算法的研究
92. 网络虚拟化环境下资源管理关键技术研究
93. 高性能网络虚拟化技术研究
94. 互联网流量识别技术研究
95. 虚拟网络映射机制与算法研究
96. 基于业务体验的无线资源管理策略研究
97. 移动互联网络安全认证及安全应用中若干关键技术研究
98. 基于DHT的分布式网络中负载均衡机制及其安全性的研究
99. 高速复杂网络环境下异常流量检测技术研究
100. 基于移动互联网技术的移动图书馆系统研建
101. 基于连接度量的社区发现研究
102. 面向可信计算的分布式故障检测系统研究
103. 社会化媒体内容关注度分析与建模方法研究
104. P2P资源共享系统中的资源定位研究
105. 基于Flash的三维WebGIS可视化研究
106. P2P应用中的用户行为与系统性能研究
107. 基于MongoDB的云监控设计与应用
108. 基于流量监测的网络用户行为分析
109. 移动社交网络平台的研究与实现
110. 基于 Android 系统的 Camera 模块设计和实现
111. 基于Android定制的Lephone系统设计与实现
112. 云计算环境下资源负载均衡调度算法研究
113. 集群负载均衡关键技术研究
114. 云环境下作业调度算法研究与实现
115. 移动互联网终端界面设计研究
116. 云计算中的网络拓扑设计和Hadoop平台研究
117. pc集群作业调度算法研究
118. 内容中心网络网内缓存策略研究
119. 内容中心网络的路由转发机制研究
120. 学习分析技术在网络课程学习中的应用实践研究
学术堂整理了一份2000字的计算机毕业论文范文,供大家进行参考:
论文题目:《计算机教育过程中的信息安全问题》
【摘 要】随着科学技术的不断发展,计算机网络技术得到飞速发展和应用,而在计算机教育过程中存在着很多的不安全因素,因此计算机网络安全越来越受到人们的高度关注.本文通过介绍计算机教育的发展现状,分析在计算机教育过程中的信息安全存在的问题,并针对计算机信息安全问题提出相应的防范措施,对今后计算机教育的信息安全研究具有重要的参考价值.
【关键词】计算机教育 信息安全 存在问题 防范措施 发展现状
一、计算机教育发展现状
计算机网络技术的不断普及,给人们的生活带来很多的便利,但也存在着极大的安全隐患,即计算机网络信息安全问题.而计算机信息系统安全包括有计算机安全、网络安全和信息安全,而一般提到的就是信息安全,它在计算机教育系统中发挥着非常重要的作用,贯穿着计算机教育的全过程.正是由于计算机信息安全在人们的生产生活中充当着极其重要的作用,因此要探讨计算机教育过程面临着怎样的信息安全问题,这值得我们加强对计算机教育过程中信息安全问题的防范,以此营造健康安全的计算机网络环境.
计算机教育信息系统是个复杂的系统性安全问题,它包含计算机系统中的硬件、软件、计算机运作系统以及计算机的查毒系统,更甚于有计算机的病毒等.而计算机教育过程中存在的信息安全问题一般包含有硬件破坏、软件错误、感染病毒、电磁辐射、管理不当以及病毒的恶意侵犯等问题都有可能威胁到计算机的信息安全问题.计算机网络系统是教育过程中一门重要的跨多个学科的综合性科学,在我国的教育教学中逐渐被广泛地应用起来,也同时受到社会各方面的高度关注.但计算机教育过程中存在很多的信息安全因素,需要我们加强对计算机教育信息安全的关注.
二、计算机教育过程中的信息安全存在的问题
(一)计算机病毒的危害
计算机病毒在我国颁布的计算机有关保护条例中明确将计算机病毒列为能干扰计算机功能或者破坏计算机数据,并影响计算机的正常使用的一种信息安全病毒.当前计算机容易受到很多病毒的侵害,如木马、火焰、网络蠕虫等,这些计算机病毒的危害极大,传播速度极快,影响范围极广,而且传播形式多种多样,后期的清除难度也更大,目前是计算机教育过程中信息安全面临的最主要的问题.
(二)IP地址被盗用
在计算机教育过程中,往往会出现许多的IP地址被盗用的问题,使用户无法正常地使用网络.IP地址被盗用一般更多地会发生在计算机IP地址权限比较高的用户中间,盗用者会通过网络隐藏其身份对高级用户进行干扰和破坏,导致用户无法正常使用计算机,可能带来较为严重的影响,甚至威胁到用户的信息安全和合法权益.
(三)网络攻击
网络是是指攻击者通过网络对用户的信息进行非法访问及破坏,而这其中包含有很多的形式,这完全取决于的个人主观动机.有些出于非常恶意的态度而对计算机信息安全进行破坏,这其中包括有对用户的的信息安全进行有意泄漏,对用户造成许多负面影响,还有些的行为较为严重,他们会窃取国家政治军事机密,损害国家的形象;非法盗用他人账号提取他人银行存款;对用户进行网络勒索或诈骗,这些的行为将对我国的计算机信息安全造成极大的破坏和攻击.
(四)计算机网络安全管理不健全
计算机网络安全管理中往往存在很多的问题,如计算机网络安全管理体制不健全,管理人员职责分工不明确,缺乏一定的网络安全管理机制,缺乏一定的计算机网络安全管理意识,这些使得计算机网络信息安全的风险更加严重,逐渐威胁计算机网络的信息安全.
三、针对计算机信息安全问题提出相应的防范措施
(一)计算机病毒的防范
计算机病毒应该采取的措施以防御为主,然后再加强对病毒的防范和管理.应该在计算机硬件或软件上安装全方位的防病毒查杀软件,定期地对计算机系统进行升级,从而保证计算机教育系统的信息安全.
(二)防技术
随着科学技术的不断进步,人们对身份的鉴别也有了一定的认识,人们也逐渐认识到身份认证的重要作用,因此用户应该做的是定期地修改用户账户和.而目前我国采用的最常见的防技术就是防火墙技术,防火墙技术可以对网络安全进行实时地监控,有效地防止了地干扰和破坏.
(三)提高计算机网络安全意识
计算机网络信息安全在很大程度上是由于人们对计算机信息安全的保护意识不强而引起的安全问题,计算机网络信息安全是一项综合性较强且复杂的项目,因此应该加强对计算机信息安全人员的技术培训,增强用户的计算机网络安全意识,从而发挥计算机技术的更大的优势.
四、结束语
计算机网络信息安全与我们的生活息息相关,计算机教育网络信息系统需要大家的共同维护,因此在建立健康安全的计算机信息技术平台环境,需要做的不仅仅是要建立安全的防护体系,更要做的是加强人们对计算机信息安全的防范意识,才可以建立一个通用安全的网络环境.
参考文献
[1]高瑞.浅议计算机教育过程中的信息安全问题[J].电子制作,2015,(8)15,58-69.
[2]张大宇.计算机教育过程中的信息安全问题探讨[J].中小企业管理与科技(下旬刊),2014,(6)25,45-53.
信息安全论文参考资料:
计算机信息安全论文
信息安全论文
信息网络安全杂志
网络信息安全论文
移动信息期刊
食品安全论文2000字
结论:计算机教育过程中的信息安全问题为关于对不知道怎么写信息安全论文范文课题研究的大学硕士、相关本科毕业论文信息安全论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
1997年,斯坦福的Mendel Rosenblum带着Edouard Bugnion, Scott
Devine在SOSP上发了篇论文,叫做Disco: running commodity operating systems on
scalable multiprocessors ()。发了之后,我想他们应该是觉得这个主意太好了,就开了家公司,名叫VMWare。
这篇论文起名叫Disco(迪士高)是因为虚拟机本身不是一个新的东西,大概在上世纪70年代就有了。作者们为了表示敬意,或者是显示这是一个复古的东西,就把这个项目取名为disco。这篇论文介绍了虚拟机关键技术,用来回答这个问题再合适不过了。(多年之后,OSDI上的另一篇论文(Memory
Resource Management in VMware ESX Server)介绍了一些VMWare的改进。近年来论文越来越多。)
当初他们为什么要做虚拟机?简单说就是,新硬件层出不穷,但是OS赶不上。当初,他们想在Stanford的ccNUMA机器上跑IRIX(一个操作系统)。可是IRIX跑不起来。他们觉得修改OS或者写一个新的OS太难了(因为一个操作系统从出生到成熟要很长的时间,无数BUG要FIX,无数的新功能要增加。。。那样人家博士要怎么毕业。。)。所以,他们决定用虚拟机。
对于他们的项目,虚拟机大致有下面这些好处:
只要对商业OS做简单地修改,就能让他们在多个VM(Virtual Machine)间共享内存。
Flexible。除了论文里的IRIX,实际上其他的OS也能跑。
扩展性好。系统可以以虚拟机为单位扩展。
fault-containment。每一个VM都是一个几乎独立的个体,一个坏了,不影响另一个。
新老软件可共存。比如,新的软件只能在Linux-3.15跑。你可以用两个VM,一个是Linux2.6,一个是Linux-3.15。
这篇文章回答下面这几个实现虚拟技术的关键问题:
VMM(Virtual Machine Monitor, 或者叫hypervisor)是怎么管住Guest OS的?或者说,皇上(VMM)是怎么防止大臣(OS)夺权的?
有那么多个操作系统一起运行,内存是怎么管理的?
多个VM之间是怎么分享资源的?或者说,1GB内存怎么当2GB用?
VMM(Virtual Machine Monitor, 或者叫hypervisor)是怎么管住Guest OS的?或者说,皇上(VMM)是怎么防止大臣(OS)夺权的?
要理解VMM是怎么工作的,我们得先了解没有VMM的时候,系统是怎么工作的。在没有VMM的时候,计算机系统中的”应用”可分为用户进程(比如VIM)和操作系统。他们分别运行在不同的模式中(mode)。我们用一个类比来解释系统中的模式(mode)。模式这个机制是用来限制一段指令所在的环境的权限的,它是需要处理器的支持的。MIPS结构当时有三个模式:用户模式(user
mode),长官模式(supervisor mode,原谅我的翻译…)和内核模式(kernel
mode)。这三种模式分别对应于人类社会里的民宅、官衙和金銮殿。显而易见,在金銮殿里的人拥有的权限最高,民宅里的最低。我们可以说,在没有VMM时,用户进程住在民宅里,县衙空着,OS住在金銮殿里(如图)。用户可以直接做一些不用什么特权的事情(unprivileged
instructions),比如计算1+1。做这些事情不经过OS。但是,有些要特权才能做的事情,一定要经过OS。比如保存正在编辑的文档到硬盘。访问硬盘是特权操作是因为硬盘是共享的资源,要有人管着,不能让人乱来。试想,要是人人都能读写档案馆的档案,那不就乱套了。
VIM(用户进程)不能直接写磁盘上的文件。VIM必须请求在金銮殿里的操作系统来做。怎么请求呢?通过系统调用(system
call)。系统调用的过程是这样的:比如要调用的是write(fd, buf, len, off),首先把fd, buf, len,
off放到stack里,然后再把一个write()函数对应的号码(system call
number)放到stack里,最后调用一个特殊的指令使CPU进入内核模式(图中的圈1)。在x86结构中,这个指令是int(中断)。在MIPS结构中,这个指令是trap。这个指令会引导CPU执行一段代码(trap
handler),依照stack里的system call number
找到对应的函数(在这里是write()的实现),然后调用这个函数(函数的参数在刚才的stack里)。在这里函数里,操作系统调用文件所在的文件系统里的write()实现,文件系统使用磁盘的驱动来最终实现。所以文件的操作完成后,操作系统调用与trap功能相反的一个指令,回到VIM程序的指令里(图中的圈2)。
操作系统维护自己的特权的过程大概就是这样。但是这个特权等级到底是怎么实现的呢?我们可以想像CPU里有一个特权状态(privileged
state
bit)。状态为开(On)的时候,CPU的特权等级高,你可以做任何事,包括转到低特权状态。关(Off)的时候,你所能做的事情就所限了。那怎么从off状态转到on状态呢?你必须到执行CPU的特殊指令,这个指令会把你带到一个特定的地方执行操作系统的指令,检查你是不是有进入高特权状态的权限。这就像是在机场,你可以很容易地从登机口到售票大厅,可是你要从售票大厅到登机口,你就得过安检。另外,为什么操作系统就能有高特权呢?Hmm…因为操作系统一开始就把那占了,之后运行的应用程序就只能听它使唤了。
现在,终于要说VMM(virtual machine monitor, 或者叫hypervisor)是怎么实现的了。如下图:
现在VMM进了金銮殿,有了最高的特权。操作系统被放到了官衙里(但是它自己并不知道)。用户进程还是在民宅里住着。比如,现在用户进程VIM调用write(),会发生什么?用户进程会trap到VMM(拥有kernel
mode)里去。但是,VMM并不知道如何处理write()。所以,VMM接下来会调用OS的里对应的trap
handler,这个handler会执行文件系统的write(),然后用驱动来写磁盘。这一切的操作都在VMM的监视下进行。怎么监视?操作系统实际上是在虚拟CPU(Virtual
CPU)上运行的。VCPU有一套自己的(假的)寄存器。VMM盯着这些寄存器。在操作系统的trap
handler完成之后,它会调用trap的反操作(想返回user
mode)。但是,这个操作实际上回使CPU回到VMM,由VMM最后返回到用户进程。
为什么VMM能够知道操作系统的trap
handler在哪?系统中先有VMM。当你在VMM上安装操作系统的时候,操作系统会尝试调用特权指令安装trap
handler。因为有最高特权的VMM实际上是监视着这一切的,所以它可以记录下trap handler的位置就行了。
总的说来,虚拟机占据了CPU的最高特权,使得在更低特权等级的操作系统无法进行有害操作。
有那么多个操作系统一起运行,内存是怎么管理的?
在没有VMM的时候,系统中有两种内存地址:虚拟地址(virtual address)和物理地址(physical
address)。从虚拟地址到物理地址的转换有两种方式。方式一:在TLB(translate lookside
buffer,硬件实现)查找。方式二:在页表(page table)中查找,找到之后把结果放到TLB中去。系统会先尝试方式一,要是找不到(TLB
miss),就用方式二。
在有了VMM之后,系统中有三种内存地址:虚拟地址(virtual address),物理地址(physical address)和机器地址(machine address)。机器地址才是真正与内存条上的地址一一对应的。物理地址只是操作系统认为的物理地址。
当操作系统试着要使用特权指令来完成一个虚拟地址到物理地址的转换时(TLB
miss),VMM就介入了(VMM监视着所有对特权寄存器的操作)。VMM会先使用操作系统内的代码来先完成虚拟地址到物理地址的转化(因为VMM并不知道这个映射关系)。然后,操作系统认为自己已经完成了转化,尝试去更新TLB(特权操作)。这个时候,VMM会介入,用一个叫个pmap的映射表找到物理地址对应的机器地址,用机器地址替换掉物理地址,然后把TLB更新为虚拟地址到机器地址的映射。之后,所有对这个虚拟地址的访问都会被转换为对相应机器地址的访问。
多个VM之间是怎么分享资源的?或者说,1GB内存怎么当2GB用?
我们知道,每一个虚拟机都要占用大量的内存空间。在内存有限的情况下,怎么在一台机器运行更多的虚拟机?幸运的是,不用的虚拟机之间在内存中数据可能会完全一致(比如,系统文件在内存中的缓存)。如要我们可以只在内存中保留一份数据,我们就行节省很多空间。Disco使用虚拟IO设备和虚拟网络设备来节省内存空间。
虚拟IO设备:当两个虚拟机从同一个磁盘上读同一个文件时,VMM会intercept
DMA,然后就会发现这两个VM在使用同样的数据。这份数据只需要在机器内存里保存一份,然后修改pmap,使得两个VM的物理地址指向同一个机器地址就可以了。当任何一个VM更新这份数据,VMM会给它一份新的拷贝,原来的那份不做更改(copy
on write机制)。
虚拟网络设备:当使用NFS从VM1向VM2复制文件时,文件并没有被真正地复制。虚拟网络设备会更新VM2上的pmap,使之指向在内存中的文件,使得VM2上的操作系统认为自己已经有了这个文件。