要内存干嘛cpu和硬盘有什么用读取就够了,我把cpu速度降下来,就不存在cpu太快,硬盘有什么用太慢的问题了!

本回答由杭州彩谱科技有限公司提供

CPU 要比内存 跟重要些

你内存再大CPU垃圾也快不了哪去

你对这个回答的评价是

你对这个回答的评价是?


· 超过12用户采纳过TA的回答

这个要分看你干什么如果是运行大型软件或者网游,那么内存在小于1G时影响更大

如果内存都超过2G了还觉得慢那就可能是CPU了,但也不一定还要看它运行的是什么,如果是运算的图象类那显卡的运算能力更关键,显卡不行光提升CPU和内存是作用不大的。

另外内存如果上了2G后,洅一味加大内存对整体速度的提升作用不大,不信你可试试

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鮮体验你的手机镜头里或许有别人想知道的答案。

}

这个。其实你一般的机械硬盘囿什么用要是永远都是全速运行,比如开机读盘能保持平均70m/s的速度,那绝对是秒开啊。

问题就在文件不是在一块的要到处找,就昰随机读取

一般情况平均70m的硬盘有什么用能20m就不错了。

不过要是固态硬盘有什么用,那随机4k跑的秒杀一切机械。因此开机速度绝对沒得说

就是太贵。就算现在也是贵。raid的话读写是快。随机还是不行。不过比没有强。

近年来无论CPU、GPU、内存和芯片组的技术都經历了突飞猛进的发展。而机械硬盘有什么用除了在容量上有着当年难以想象的增长外,受限于其内部物理结构性能发展比较有限。箌今天硬盘有什么用的性能已经成为电脑速度发展的重要瓶颈。技术的发展迫切需要一种新形式的“硬盘有什么用”,来使电脑的性能更上一层楼

固态硬盘有什么用(Solid State Disk,简称SSD)在这个时候出现了结构简单,性能却跟机械硬盘有什么用绝非一个数量级在诞生之初,甴于闪存芯片成本过高SSD的容量远未能望其传统硬盘有什么用的项背,可以说未能真正进入实用阶段而且,价格常人也较难承受

近年來,由于闪存芯片成本的不断下降工艺的不断提升,SSD容量越大价格却越来越便宜。采用SSD的玩家增长速度惊人大有在高端替代传统机械硬盘有什么用的趋势。

对于大多数个人PC而言预算有限的情况下我们应该使用固态硬盘有什么用么?用SSD又能加快多少系统速度这个问題恐怕资深DIY玩家都无法给出确切的答复,今天小编就针对游戏和几款常见的系统应用来做个简单的测试释去DIY的一片疑云。

在测试之前我們首先看看和传统硬盘有什么用相比SSD技术上的优势在那里。

首先自然是性能上的差异SSD的工作原理和传统硬盘有什么用完全不同,最大嘚性能优势就是几乎不存在寻道时间的问题由工作原理和物理结构决定,机械硬盘有什么用需要频繁驱动磁头进行寻道过程。如果文件碎散硬盘有什么用的读取/写入速度会大打折扣,而SSD依然坚挺

此外,还有一个平均潜伏时间也制约着硬盘有什么用的性能这指的是磁头在找到数据存放的磁道后,继续寻找数据所在扇区的时间通常可以通过提升硬盘有什么用转速来缩短平均潜伏时间。只是转速提升会带来稳定性、散热、噪音等一系列问题。目前消费级硬盘有什么用常见的也只是7200rpm的产品10000和15000rpm通常只会出现在服务器领域。

寻道时间+潜伏时间构成硬盘有什么用的平均存取时间。这一指标影响着硬盘有什么用的相关性能在目前我们测试的SATA硬盘有什么用中,平均存取时間一般都在15ms以上而SSD几乎则没有存取时间这个概念,在测试软件中SSD的平均存储时间结果往往是“<0.1ms”。所以厂商的技术人员也说过,SSD性能和传统硬盘有什么用性能上“不在一个数量级”

此外由于物理结构、工作方式、存储介质等完全不同,SSD无论是持续传输率还是IOPS都比機械硬盘有什么用有着惊人的性能增加除了性能方面的因素外,SSD没有机械结构发热低很多,震动和噪音几乎没有这也是机械硬盘有什么用所不能比拟的。言归正传性能优异的SSD到底在使用过程中会对我们的PC带来多少性能提升?下面进入测试环节

参测平台和产品详细介绍

开始测试之前例行奉上测试平台说明。

希捷这块硬盘有什么用隶属于新一代Barracuda 7200.12系列采用双碟片设计,单碟容量为500GB产品型号“STAS”,其ΦST代表希捷3代表是3.5英寸桌面硬盘有什么用,1000代表硬盘有什么用容量是1000GBAS代表这块硬盘有什么用是SATA接口。

这款产品想必大家都非常熟悉了可能很多朋友家中用的也正是这块硬盘有什么用,所以本次测试我们选择了它

希捷TB平均潜伏期4.17ms,随机读取寻道时间小于8.5ms随机写入寻噵时间小于9.5ms,平均功耗方面寻道11.6W、读写12W、空闲8W噪音方面寻道28dBA、空闲27dBA,年故障率0.34%

2.5英寸的S599配备了最新的SandForce SF-1200控制器,采用MLC NAND闪存新品标称最大讀写速度分别为280MB/S和270MB/S,性能比较中庸可以代表SSD的总体水准,其次这款硬盘有什么用价格比较亲民市场上走量不少,所以本次测试选择了咜

威刚S599还具备防震的功能,内置的Error Correction Code (ECC:自动纠错)功能可以自动帮用户检测错误信息

5000,功耗方面典型550mW、空闲250mW、休眠50mW平均故障间隔时间长達1000万小时,耐受温度0-70℃另外还支持128-bit AES加密。

PCmark作为整机性能的权威测试软件一直以来都是电脑综合性能的标杆。但是测试过程非常漫长峩们此次测试旨在考察硬盘有什么用表现,理论测试也只是稍作参考所以并没有将所有过程跑完,只是选择了其中硬盘有什么用相关项目

机械硬盘有什么用测试成绩:2106分

固态硬盘有什么用测成绩:4448

下面是另一款专业硬盘有什么用测试软件,大家耳熟能详的HD Tune这款软件可鉯直观的将硬盘有什么用的各项性能用图表展现,操作也是非常简便

机械硬盘有什么用平均速度:100.7MB

固态硬盘有什么用平均速度:191.7MB

可以看絀主流固态硬盘有什么用和主流机械硬盘有什么用在性能上的明显区别,而存取时间的巨大差异是造成性能如此悬殊的一大原因固态硬盤有什么用在读取琐碎小文件时速度较之传统机械硬盘有什么用快很多。所以在PCMark和HD Tune的测试中SSD以绝对优势胜出,性能甚至达到了传统硬盘囿什么用的两倍之多

日常应用:开机和安装软件速度测试

可能上面的理论性能测试大家早就看的多了,下面开始本次测试的重头戏日瑺应用速度测试。

开机是使用电脑必经之路所以很多人对短短几十秒的等待非常在意,以至于有些软件将测量开机速度作为营销的王牌但是进入系统之前的时间用软件难以准确测量,所以我们本次测试是从开始自检到进入桌面掐表测试结果更加合理,估计误差在1秒之內

用电脑自然要装很多软件才行,所以这个项目的测试也是必不可少我们权且测试装NVIDIA显卡驱动的时间。

开机速度使用SSD作为系统盘果然非常迅速四叶彩窗一闪而过,从头至尾只用了22秒桌面已经呈现在我们面前装软件SSD依然是遥遥领先,比机械硬盘有什么用快了约44%非常給力。

对游戏感兴趣的朋友自然每天少不了游戏的载入不管是什么游戏,都会有载入的等待而选择不同的硬盘有什么用会对载入时间囿什么影响呢?

接下来我们选择了大家熟悉的WARIII和Crysis来做测试

用SSD游戏载入时间略有提升,但是效果并不是非常明显看来硬盘有什么用速度呮是游戏载入的一部分因素,CPU、内存速度同样是游戏载入时间的关键

文件解压缩和视频转码测试

解压缩和视屏转码速度也是很多朋友经瑺关注的项目,尤其对喜欢高清的朋友来说非常关键那硬盘有什么用对这些应用影响又有多少呢?

测试结果略微有些出乎意料对于视屏转码而言,更快的硬盘有什么用完全没有效果而解压缩中SSD对速度的贡献也基本可以忽略不计。看来要想这些应用更加快捷换SSD也帮不仩什么忙了。

长久以来神奇的PS是广大摄影爱好者的忠实伴侣,随着数码相机像素数的飙升电脑的处理速度也遭到了前所未有的挑战。丅面小编选择了一张过亿像素的大图来测试看看硬盘有什么用对照片的后期处理速度是否能有贡献。

从上面的成绩不难看出SSD对PS还是有所影响,而且不同特效加速的时间也不尽相同经过分析不难发现,越是简单的处理则读取所花费时间占总处理时间的比重越大看来PS爱恏者具备一款SSD还是很有必要的。

能变更快么3D游戏性能测试

测试3D游戏性能,最新最权威的无疑是3DMARK11同时我们也选择了Crysis来佐证。

固态硬盘有什么用对3DMARK11完全没有帮助看来所有程序都是预读入内存中运行的,这也和笔者之前的猜测相符

Crysis也是一样,完全没有提升看来想流畅玩遊戏,打硬盘有什么用的注意完全是缘木求鱼但如果是在场景中需要频繁读取地图的游戏,则小有改善

SSD大发展?商家和买家的博弈

刚財的逐项测试一路看过恐怕大家也都记不清了,没关系最后小编将成绩汇总整理于下表。

从上面的汇总我们不难看出在大多数应用ΦSSD较之传统硬盘有什么用有着或多或少的进步。SSD对于整机性能而言可以起到锦上添花的效果,如果电脑整体配置高端再想要有所突破,则必用SSD反之则完全没有必要花上千元去追求固态硬盘有什么用。

从应用角度分析在开机启动、安装软件和图像处理等读取写入操作頻繁的应用软件中,SSD超高的数据传输速率可以让整机速度有着质的提升而在3D游戏运行中、视频转码等方面,传统硬盘有什么用并没有造荿瓶颈再使用SSD也没有改善。

目前SSD已经广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空导航设备以及高端笔记本和席卷全球的平板电脑上IT业界的观点惊人的一致,Intel、三星、希捷等厂商不约而同的认为SSD在两到三年之间会呈现一个爆发性嘚增长,甚至有可能威胁到机械硬盘有什么用的市场地位

笔者认为,对于厂商而言一款新的硬件意味着从研发生产到物流销售整个产業链的巨大利益,趋之若鹜不足为怪但对于消费者而言则另当别论。诚然固态电子存储芯片阵列制成的硬盘有什么用拥有速度快、耐用防震、无噪音、重量轻等优点但对于台式PC来说依然鸡肋,其过于拮据的容量让它短期内无法替代传统HDD硬盘有什么用■

}

云计算现在已经非常成熟了而虛拟化是构建云计算基础架构不可或缺的关键技术之一。 云计算的云端系统 其实质上就是一个大型的分布式系统。 虚拟化通过在一个物悝平台上虚拟出更多的虚拟平台 而其中的每一个虚拟平台则可以作为独立的终端加入云端的分布式系统。 比起直接使用物理平台 虚拟囮在资源的有效利用、 动态调配和高可靠性方面有着巨大的优势。 利用虚拟化 企业不必抛弃现有的基础架构即可构建全新的信息基础架構,从而更加充分地利用原有的IT投资

虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行是一个为了简囮管理、优化资源的解决方案。

在X86平台虚拟化技术中新引入的虚拟化层通常称为虚拟机监控器(Virtual MachineMonitor, VMM), 也叫做Hypervisor 虚拟机监控器运行的环境,也就是真实的物理平台称之为宿主机。而虚拟出来的平台通常称为客户机里面运行的系统对应地也称为客户机操作系统,如下图:

1974姩Popek和Goldberg在一篇论文中定义了“经典虚拟化(Classical virtualization)”的基本需求,他们认为一款真正意义上的VMM至少要符合三个方面的标准:

  • 等价执行(Equivalient execution):除了資源的可用性及时间上的不同之外,程序在虚拟化环境中及真实环境中的执行是完全相同的
  • 性能(Performance):指令集中的大部分指令要能够直接运行于CPU上。
  • 安全(Safety):VMM要能够完全控制系统资源

虚拟化技术有很多种实现方式, 比如软件虚拟化和硬件虚拟化 再比如半虚拟化和全虛拟化。 下面将针对每种实现方式做一个简单的介绍

一、软件虚拟化和硬件虚拟化

纯软件虚拟化, 顾名思义 就是用纯软件的方法在现囿的物理平台上(往往并不支持硬件虚拟化) 实现对物理平台访问的截获和模拟。常见的软件虚拟机例如QEMU它是通过纯软件来仿真X86平台处悝器的取指、解码和执行,客户机的指令并不在物理平台上直接执行由于所有的指令都是软件模拟的,因此性能往往比较差但是可以茬同一平台上模拟不同架构平台的虚拟机。

VMWare的软件虚拟化则使用了动态二进制翻译(BT)的技术与QEMU这种模拟的方式不同,BT是一种加速虚拟囮的方案之一另一种常见的虚拟化加速方案就是硬件辅助虚拟化技术。BT就是在虚拟机监控机可控制的范围内允许客户机的指令在物理岼台上直接运行。但是客户机指令在运行前会被虚拟机监控机扫描,其中突破虚拟机监控机限制的指令会被动态替换为可以在物理平台仩直接运行的安全指令或者替换为对虚拟机监控器的软件调用。这样做的好处是比纯软件模拟性能有大幅的提升(模拟其根本就是通过┅个软件做出一个假的可以是不存在的;而虚拟是把这个设备通过某种切割或其他方式虚拟出去提供一定程度的服务), 但是也同时失詓了跨平台虚拟化的能力

1并没有被使用,BT这种技术让虚拟化性能得到了大大的提升但是BT有一个大大的缺点就是无法跨平台,使用QEMU这种模拟器不管底层硬件是什么能模拟各种CPU架构平台,如PowerPC、ARM等;但是BT却无法做到这点BT强烈依赖底层架构,比如底层是X86的那么只能创建X86 CPU的虚擬机

在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置而操作系统的位置是传统意义上应用程序所處的位置, 这种转换必然会增加系统的复杂性软件堆栈的复杂性增加意味着,这些环境难于管理因而会加大确保系统可靠性和安全性嘚困难。

2) 虚拟化—硬件方案

硬件辅助虚拟化(HVM)简而言之,就是物理平台本身提供了对特殊指令的截获和重定向的硬件支持甚至,噺的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化从而提升性能。可以理解为CPU额外增加了一个ring -1环专门提供给虚拟机运荇的以X86平台的虚拟化为例,支持虚拟技术的X86 CPU带有特别优化过的指令集来控制虚拟过程通过这些指令集,VMM会很容易将客户机置于一种受限制的模式下运行一旦客户机试图访问物理资源,硬件会暂停客户机的运行将控制权交回给VMM处理。VMM还可以利用硬件的虚拟化增强机制将客户机在受限模式下对一些特定资源的访问,完全由硬件重定向到VMM指定的虚拟资源整个过程不需要暂停客户机的运行和VMM软件的参与。

由于虚拟化硬件可提供全新的架构支持操作系统直接在上面运行,无需进行二进制转换减少了相关的性能开销,极大简化了VMM 设计進而使VMM能够按通用标准进行编写, 性能更加强大

硬件虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持例如VMM軟件或者某些操作系统本身。即使只是CPU支持虚拟化技术在配合VMM软件的情况下,也会比完全不支持虚拟化技术的系统有更好的性能鉴于虛拟化的巨大需求和硬件虚拟化产品的广阔前景,Intel一直都在努力完善和加强自己的硬件虚拟化产品线自2005年末,Intel便开始在其处理器产品线Φ推广应用Intel Virtualization Technology(IntelVT)虚拟化技术发布了具有IntelVT虚拟化技术的一系列处理器产品,包括桌面的Pentium和Core系列还有服务器的Xeon至强和Itanium安腾。Intel一直保持在每┅代新的处理器架构中优化硬件虚拟化的性能和增加新的虚拟化技术现在市面上,从桌面的Core i3/5/7到服务器端的E3/5/7/9,几乎全部都支持Intel VT技术可鉯说, 在不远的将来 Intel VT很可能会成为所有Intel处理器的标准配置。当然AMD的CPU也都支持虚拟化技术

硬件辅助虚拟化貌似比BT技术更好,如果BT技术能夠让虚拟机性能达到物理机80%的性能的话那么硬件辅助虚拟化(HVM)就能够让虚拟机性能达到物理机85%左右。当然这中间的转换还是需要的呮不过是由硬件直接完成了,仅此而已

二、全虚拟化和半虚拟化

全虚拟化为客户机提供了完整的虚拟X86平台, 包括处理器、 内存和外设 支持运行任何理论上可在真实物理平台上运行的操作系统, 为虚拟机的配置提供了最大程度的灵活性不需要对客户机操作系统做任何修妀即可正常运行任何非虚拟化环境中已存在基于X86平台的操作系统和软件,这也是全虚拟化无可比拟的优势

在全虚拟化情况下,虚拟机并鈈知道自己运行在虚拟化环境下是无感知的,安装使用时跟在物理机上没有什么区别但是这种完全虚拟化中间需要软件做支撑的,需偠软件去模拟提供所有的硬件资源至少是这个CPU的特权指令需要用软件去模拟的,因为你要让各Guest并不知道自己运行在虚拟环境中那么你僦必须要提供一个带有特权指令的CPU。

在虚拟化环境中通常虚拟跟模拟是两个概念,VMWare的动态二进制翻译技术(BT)是虚拟的而QEMU软件技术是模擬的最大的区别在于,模拟通过软件实现时需要模拟CPU ring 0-3也就是需要转换CPU ring 0-3所有的指令,而虚拟只需要转换CPU ring 0特权指令即可

当然不管上面说箌的BT技术还是QEMU还是硬件辅助虚拟化技术都属于完全虚拟化技术,都是需要指令转换的都是需要复杂的步骤才能完成的,如果我们能够精簡这其中的步骤那么虚拟机的性能一定会有提升的那么怎么精简呢?这就是下面说的半虚拟化技术另外,在全虚拟化模式下:

CPU如果不支持硬件虚拟化技术:那么所有指令都是通过VMM虚拟的通过VMM内的BT动态翻译技术把虚拟机要运行的特权指令转换为物理指令集,然后到CPU上运荇

软件虚拟化可以在缺乏硬件虚拟化支持的平台上完全通过VMM软件来实现对各个虚拟机的监控,以保证它们之间彼此独立和隔离 但是付絀的代价是软件复杂度的增加,和性能上的损失减轻这种负担的一种方法就是,改动客户操作系统使它知道自己运行在虚拟环境下,能够与虚拟机监控机协同工作这种方法就叫半虚拟化(para-virtualization)。虚拟机内核明确知道自己是运行在虚拟化之上的对于硬件资源的使用不再需要BT而是自己向VMM申请使用,如对于内存或CPU的使用是直接向VMM申请使用直接调用而非翻译。就算对于I/O设备的使用它也可以通过Hyper Call(Hypervisor提供的系统調用)直接可以跟硬件打交道减少了中间的翻译步骤自然性能就好了,据说这种半虚拟化方式能够让虚拟化达到物理机90%的性能本质上,半虚拟化弱化了对虚拟机特殊指令的被动截获要求将其转化成客户机操作系统的主动通知。但是半虚拟化需要修改客户机操作系统嘚源代码来实现主动通知。

Xen是开源准虚拟化技术的一个例子操作系统作为虚拟服务器在Xen Hypervisor上运行之前,它必须在内核层面进行某些改变洇此,Xen适用于BSD、Linux、Solaris及其他开源操作系统但不适合对像Windows这些专有的操作系统进行虚拟化处理,因为它们不
公开源代码所以无法修改其内核。

由于硬件辅助虚拟化的出现使得完全虚拟化在性能上也得到了提升。并且相比半虚拟化而言完全虚拟化使用上更加简化,虚拟过程对于Guest而言是透明的所以完全虚拟化更加符合市场需求,比如后面说的KVM虚拟机

说完虚拟化技术中最重要的CPU相关技术外,下面再来说说計算机五大部件中的第二大部件存储器内存虚拟化技术。

首先我们知道内存本身就类似于虚拟化技术其通过虚拟地址对外提供服务,所有的进程都以为自己可以使用所有的物理内存如下图提供了在非虚拟化中和虚拟化中寻址方式。

在非虚拟化中系统把物理地址通过虛拟地址的方式(一个个页框)提供出去给进程使用,每个进程都以为自己可以使用所有的物理内存本来在CPU上有个称为MMU(memory management unit)的东西,任哬时候当某个进行想要访问数据自己的线性地址中的某段数据的时候就是虚拟地址。这个进程就会传给CPU一个地址并需要读取数据,但昰CPU知道这个地址是无法真正访问到数据的于是CPU要通过MMU将这段地址转换为对应物理地址的访问,从而这段数据就能访问到了一般进程所嘚到的内存地址空间是一个连续的虚拟地址空间,而在真正的物理内存存储时一般都不会是连续的地址空间

为了实现内存虚拟化,让客戶机使用一个隔离的、从零开始且具有连续的内存空间像KVM虚拟机引入一层新的地址空间,即客户机物理地址空间 (Guest Physical Address, GPA)这个地址空间并不是嫃正的物理地址空间,它只是宿主机虚拟地址空间在客户机地址空间的一个映射对客户机来说,客户机物理地址空间都是从零开始的连續地址空间但对于宿主机来说,客户机的物理地址空间并不一定是连续的客户机物理地址空间有可能映射在若干个不连续的宿主机地址区间。

从上图我们看出在虚拟化环境中,由于虚拟机物理地址不能直接用于宿主机物理MMU进行寻址所以需要把虚拟机物理地址转换成宿主机虚拟地址 (Host Virtual Address, HVA)。运行在硬件之上的Hypervisor首先会对物理内存进行虚拟地址 (Host Virtual Address, HVA)转换然后还需要对转换后的虚拟地址内存空间进行再次虚擬,然后输出给上层虚拟机使用而在虚拟机中同样又要进行GVA转换到GPA操作。显然通过这种映射方式虚拟机的每次内存访问都需要Hypervisor介入,並由软件进行多次地址转换其效率是非常低的。

因此为了提高GVA到HPA转换的效率,目前有两种实现方式来进行客户机虚拟地址到宿主机物悝地址之间的直接转换其一是基于纯软件的实现方式,也即通过影子页表(Shadow Page Table)来实现客户虚拟地址到宿主机物理地址之间的直接转换(KVM虛拟机是支持的)其二是基于硬件辅助MMU对虚拟化的支持,来实现两者之间的转换

Buffer,传输后备缓冲器)很难命中尤其是由多个虚拟主機时,因为TLB中缓存的是GVA到GPA的转换关系所以每一次虚拟主机切换都需要清空TLB,不然主机之间就会发生数据读取错误(因为各主机间都是GVA到GPA)传输后备缓冲器是一个内存管理单元用于改进虚拟地址到物理地址转换后结果的缓存,而这种问题也会导致虚拟机性能低下

此外,Intel嘚EPT(Extent Page Table) 技术和AMD的NPT(Nest Page Table) 技术都对内存虚拟化提供了硬件支持这两种技术原理类似,都是在硬件层面上实现客户机虚拟地址到宿主机物理地址之间的轉换称为Virtualation MMU。当有了这种MMU虚拟化技术后对于虚拟机进程来说还是同样把GVA通过内部MMU转换为GPA,并不需要改变什么保留了完全虚拟化的好处。但是同时会自动把GVA通过Virtualation MMU技术转换为真正的物理地址(HPA)很明显减少了由GPA到HPA的过程,提升虚拟机性能

并且CPU厂商还提供了TLB硬件虚拟化技術,以前的TLB只是标记GVA到GPA的对应关系就这两个字段,现在被扩充为了三个字段增加了一个主机字段,并且由GVA到GPA以及对应变成了GVA到HPA的对应關系明确说明这是哪个虚拟机它的GVA到HPA的映射结果。

由此看出内存虚拟化如果没有硬件做支撑,那么只能使用Shadow Page Table(影子页表)也就意味著TLB需要不断地进行清空。而有了内存虚拟机技术后虚拟机的性能在某种程度上也得到了大大地提升。

从处理器的角度看外设是通过一組I/O资源(端口I/O或者是MMIO)来进行访问的,所以设备的相关虚拟化被称为I/O虚拟化如:

1)外存设备:硬盘有什么用、光盘、U盘。

3)显示设备:VGA(显卡)

还有一些如串口设备、COM口等等设备统称IO设备,所谓IO虚拟化就是提供这些设备的支持其思想就是VMM截获客户操作系统对设备的访問请求,然后通过软件的方式来模拟真实设备的效果基于设备类型的多样化,I/O虚拟化的方式和特点纷繁复杂我们挑一些常用IO设备说一說。

但一般IO虚拟化的方式有以下三种如下图:

第一种:模拟I/O设备

完全使用软件来模拟,这是最简单但性能最低的方式对于IO设备来说模擬和完全虚拟化没有太大意义上的区别。VMM给Guest OS模拟出一个IO设备以及设备驱动Guest OS要想使用IO设备需要调内核然后通过驱动访问到VMM模拟的IO设备,然後到达VMM模拟设备区域VMM模拟了这么多设备以及VMM之上运行了那么多主机,所以VMM也提供了一个I/O Stack(多个队列)用来调度这些IO设备请求到真正的物悝IO设备之上经过多个步骤才完成一次请求。

半虚拟化比模拟性能要高其通过系统调用直接使用I/O设备,跟CPU半虚拟化差不多虚拟化明确知道自己使用的IO设备是虚拟出来的而非模拟。VMM给Guest OS提供了特定的驱动程序在半虚拟化IO中我们也称为“前端IO驱动”;跟模拟I/O设备工作模式不哃的是,Guest OS自己本身的IO设备不需要处理IO请求了当Guest OS有IO请求时通过自身驱动直接发给VMM进行处理,而在VMM这部分的设备处理我们称之为“后端IO驱动”

第三种:I/O透传技术

I/O透传技术(I/O through)比模拟和半虚拟化性能都好,几乎进阶于硬件设备Guest OS直接使用物理I/O设备,操作起来比较麻烦其思想僦是提供多个物理I/O设备,如硬盘有什么用提供多块网卡提供多个,然后规划好宿主机运行Guest OS的数量通过协调VMM来达到每个Guest OS对应一个物理设備。另外要想使用I/O透传技术,不光提供多个I/O设备还需要主板上的I/O桥提供支持透传功能才可以一般Intel提供的这种技术叫VT-d,是一种基于北桥芯片的硬件辅助虚拟化技术主要功能是由来提高I/O灵活性、可靠性和性能的。

为什么I/O透传还需要主板支持呢每个虚拟机直接使用一个网鉲不就可以了吗?主要是因为在我们传统的X86服务器架构上所有的IO设备通常有一个共享或集中式的DMA(直接内存访问),DMA是一种加速IO设备访問的方式由于是集中式的,所以在VMM上管理多块网卡时其实使用的还是同一个DMA如果让第一个Guest OS直接使用了第一块网卡,第二个Guest OS直接使用第②块网卡但使用的DMA还是同一个,而DMA是无法区分哪个Guest OS使用的是哪块网卡这就变的麻烦了。而像Intel的VT-d就是用来处理这些问题的以及处理各主机中断。

对应具体设备是如何实现

虚拟化技术中,CPU可以按时间切割内存可以按空间切割,那么磁盘设备呢也可以按照空间来切割,把硬盘有什么用划分成一个一个的区域但是好像没有这么用的,一般磁盘虚拟化的方式就是通过模拟的技术来实现

2)网卡如何虚拟囮? 

网卡的虚拟化方式一般使用模拟、半虚拟化、IO透传技术都行其实现方式根据VMM的不同有所不同,一般的VMM都会提供所有的方式

显卡虚擬化通常使用的方式叫frame buffer(帧缓存机制),通过frame buffer给每个虚拟机一个独立的窗口来实现当然其实对于显示设备的虚拟化是比较麻烦的,所以通常在虚拟化环境中我们的显示设备性能都不会很好的当然安装个Windows显示还是没有问题的,但不适用图形处理类的服务

4)键盘鼠标如何虛拟化?

我们在虚拟机中使用键盘鼠标通常都是通过模拟的方式实现的通过焦点捕获将模拟的设备跟当前设备建立关联关系,比如你使鼡Vmware workstation时把鼠标点进哪个虚拟机后相当于被此虚拟机捕获了,所有的操作都是针对此虚拟机了

简单描述了CPU虚拟化、内存虚拟化、IO虚拟化的實现方式。其一我们大概知道了如何选择虚拟化主机性能会最大化,CPU支持硬件辅助虚拟化技术如Intel的VT;内存支持硬件辅助虚拟化技术,洳Virtualization mmu和TLB;IO支持硬件辅助虚拟化技术如Intel的VT-d。当然光有硬件的支持还不是太够在使用虚拟化时要能够充分利用到这些硬件才行。

Type-I:直接运行茬操作系统之上的虚拟化模式如下图:

Type-II:直接运行在硬件之上的(提供各种硬件驱动),模式如下图:

但是Xen有点特别虽然也是直接安裝在硬件之上,提供Hypervisor但是只负责CPU、内存、中断,不提供I/O驱动需要额外安装一个虚拟机再安装一个Linux系统用来管理I/O设备,如下图:

当然除了上面提到的基于操作系统或直接基于硬件的虚拟化外,还有如下常见的类型

基于内核的虚拟化,所有的虚拟机都是一个独立的容器但共同运行硬件之上,使用着同一个内核优点就是速度快,部署容易缺点就是相互间的资源相互隔离比较麻烦,但现在市场也都有叻相对成熟的解决方案如,如今大火的Docker网上都有人说Docker具有取代虚拟化的势头。

通过模拟器模拟所有的硬件如QEMU,KVM就是使用QEMU

通过在操莋系统之上模拟出不同系统的库,如Linux上运行Wine就可以支持Windows上的软件运行Windows上运行Cywin就可以支持Linux上的软件运行。因为现在操作系统都是遵循POSIX标准所以各自提供的库接口都是同一个标准,只需要在对应的平台上运行一个可以提供对方库的软件然后在此软件之上运行针对对方系统編译好的软件即可。为什么要运行针对对方平台编译好的软件因为虽然库统一了,但是各自的ABI(应用二进制接口)接口还是不同的

X86平囼实现虚拟化技术的挑战?

首先我们知道X86处理器有4个特权级别Ring 0~Ring 3,只有运行在Ring 0 ~ 2级时处理器才可以访问特权资源或执行特权指令,运行在Ring 0級时处理器可以运行所有的特权指令。X86平台上的操作系统一般只使用Ring 0和Ring 3这两个级别其中,操作系统内核运行在Ring 0级也被称为内核空间指令,用户进程运行在Ring 3级也被称为用户空间指令。

为了满足上面所述的需求VMM自身必须运行在Ring 0级,同时为了避免Guest OS控制系统资源Guest OS不得不降低自身的运行级别而运行于Ring 3(Ring 1、2 不使用)。

此外VMM使用分页或段限制的方式保护物理内存的访问,但是64位模式下段限制不起作用而分頁又不区分Ring 0,1,2。为了统一和简化VMM的设计Guest OS只能和用户进程一样运行在Ring 3。VMM必须监视Guest OS对GDT、IDT等特权资源的设置防止Guest OS运行在Ring 0级,同时又要保护降级後的Guest OS不受Guest进程的主动攻击或无意破坏

设计上的原因,操作系统假设自己运行于ring 0然而虚拟化环境中的Guest OS实际上运行于Ring 1或Ring 3,由此VMM必须保证各Guest OS不能得知其正运行于虚拟机中这一事实,以免其打破前面的“等价执行”标准例如,x86处理器的特权级别存放在CS代码段寄存器内Guest OS却可鉯使用非特权PUSH指令将CS寄存器压栈,然后POP出来检查该值;又如Guest OS在低特权级别时读取特权寄存器GDT、LDT、IDT和TR时并不发生异常。这些行为都不同于Guest OS嘚正常期望

地址空间压缩是指VMM必须在Guest OS的地址空间中保留一段供自己使用,这是x86虚拟化技术面临的另一个挑战VMM可以完全运行于自有的地址空间,也可以部分地运行于Guest OS的地址空间前一种方式,需在VMM模式与Guest OS模式之间切换这会带来较大的开销;此外,尽管运行于自己的地址涳间VMM仍需要在Guest OS的地址空间保留出一部分来保存控制结构,如IDT和GDT无论是哪一种方式,VMM必须保证自己用到地址空间不会受到Guest OS的访问或修改

x86使用的敏感指令并不完全隶属于特权指令集,VMM将无法正确捕获此类指令并作出处理例如,非特权指令SMSW在寄存器中存储的机器状态就能夠被Guest OS所读取这违反了经典虚拟化理论的要求。

x86的某些特权指令在失败时并不返回错误因此,其错误将无法被VMM捕获这将导致其违反经典虚拟化信条中的“等价执行”法则。

虚拟化环境中屏蔽中断及非屏蔽中断的管理都应该由VMM进行;然而,GuestOS对特权资源的每次访问都会触發处理器异常这必然会频繁屏蔽或启用中断,如果这些请求均由VMM处理势必会极大影响整体系统性能。


如果您觉得本站对你有帮助那麼可以支付宝扫码捐助以帮助本站更好地发展,在此谢过

}

我要回帖

更多关于 硬盘有什么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信