虛擬機和主機是一個ip地址嗎(虛擬機和主機的性能差多少)

發(fā)布時間:2024-03-20
本文為大家介紹虛擬機和主機是一個ip地址嗎(虛擬機和主機的性能差多少),下面和小編一起看看詳細內(nèi)容吧。
vps、虛擬機器、云主機,這三個到底有什么區(qū)別?
vps、虛擬機、云主機,這三者有什么區(qū)別?
80分,我給你解釋一下
虛擬機——指虛擬出很多用戶供人使用的服務(wù)器,最早由需求觸發(fā)
原方案在實際使用中存在很多問題
vps——是一個加強的虛擬機,從用戶隔離、內(nèi)存分配、帶寬控制上解決了很多
虛擬機實際使用的問題,但是還是受限于很多底層技術(shù),很多需求不能
實現(xiàn)如cpu使用率的真實分配,用戶資源的擴展包等。
云主機——事實上,云的概念已經(jīng)發(fā)展出多種應(yīng)用。如果云主機是云,那么
所以一個虛擬機vps就是一個蛋糕,2塊云可以合成1個大云,2塊蛋糕拼起來還是2塊
蛋糕這是一個概念問題
對用戶來說,資源利用率高,與底層完全隔離,可隨時任意擴展包
vps虛擬機的資源每臺機器必須有5%-10%的資源用于執(zhí)行底層系統(tǒng)和
資源分配軟件和云主機,一個云需要一臺機器5%的資源進行資源分配
就是這樣,資源利用率高達99%
區(qū)別方法更不用說虛擬機了。 vps是可以擁有獨立ip的虛擬機。云主機最大的特點
即套件可以無限擴展,配置可以任意選擇。嗯,如果你能選擇16個以上的cpu,那你肯定是云高手了。
機器
國內(nèi)市場還沒有真正意義上的云主機。目前只有西門子和騰訊的部分游戲服務(wù)器。
內(nèi)部使用
托管云托管虛擬空間虛擬托管有什么區(qū)別?
虛擬主機是“共享主機”,即一臺服務(wù)器上有很多網(wǎng)站,大家共享這臺服務(wù)器的硬件和帶寬。
“云主機”(cloud hosting)可以看作是新一代的共享主機。首先,主機公司將其硬件和網(wǎng)絡(luò)線路形成一個“云”,然后提供一些通向這個“云”的網(wǎng)絡(luò)接口api,供客戶使用。這時候,每個客戶不再共享特定的服務(wù)器,而是云中的所有服務(wù)器。如果要買云虛擬主機,國內(nèi)最好的是timesinternet。
新網(wǎng)的vps和云主機有什么區(qū)別?
哈哈,選我!現(xiàn)在我們即將進入云服務(wù)器時代!國內(nèi)太平洋震云做的不錯!為您對比云服務(wù)器與傳統(tǒng)服務(wù)器的區(qū)別!
1、從技術(shù)上看:云服務(wù)器采用了云計算技術(shù),云計算技術(shù)集成了計算、網(wǎng)絡(luò)、存儲等各種軟硬件技術(shù)。單機服務(wù)器是獨立的,不會整合這些資源。
2、安全方面:云服務(wù)器天然抗arp攻擊和mac欺騙,快照備份,數(shù)據(jù)永不丟失。獨立服務(wù)器沒有此功能;
3、可靠性方面:云服務(wù)器基于服務(wù)器集群,硬件冗余度高,故障率低;而獨立服務(wù)器的硬件冗余相對較少,故障率較高;
4、靈活性方面:用戶可以在線實時添加自己的配置,可擴展套件空間大;而獨立服務(wù)器在這方面有局限性,如果有新的應(yīng)用,只能再買一個stage。
5、從性能上看:云服務(wù)器是同配置獨立服務(wù)器的4倍計算能力,可以滿足高性能計算的要求;
6、從穩(wěn)定性的角度來看,云服務(wù)器可以在發(fā)生故障時自動遷移,也就是說如果一臺云服務(wù)器發(fā)生故障,其上的應(yīng)用會自動遷移到其他云服務(wù)器上。獨立服務(wù)器不存在該功能,宕機就宕機。
7、從節(jié)能的角度來看,云服務(wù)器是基于云計算的自動遷移技術(shù),也就是說在晚上,物理服務(wù)器的利用率不高,自動遷移技術(shù)會把應(yīng)用集中在幾臺物理服務(wù)器,其他物理服務(wù)器的設(shè)備可以進入休眠狀態(tài),這樣可以節(jié)省能源。
云主機、虛擬主機、vps有什么區(qū)別
虛擬主機是服務(wù)器劃分的一塊存儲空間,只能存儲和訪問資源
云主機與其他常見主機的基本概念相同,即云主機是新一代的主機租賃服務(wù)。它集成了高性能服務(wù)器和優(yōu)質(zhì)網(wǎng)絡(luò)帶寬,有效解決了傳統(tǒng)主機租賃價格高、服務(wù)質(zhì)量參差不齊的問題。和其他缺點
vps是服務(wù)器的一部分,但是有獨立的操作系統(tǒng),可以理解為一臺小電腦
vps和虛擬機主機有什么區(qū)別
vps是獨立主機,它有獨立的ip
虛擬機就是一臺主機,開幾個web服務(wù)器,共享一個ip
虛擬主機和vps主機、云主機有什么區(qū)別?
你好。讓我回答你的問題。
vps和云主機是兩個類似的東西。它們是具有獨立ip、內(nèi)存、硬盤、帶寬等的虛擬服務(wù)器,功能和使用與服務(wù)器完全一樣。用戶可以登錄遠程管理。還可以執(zhí)行各種軟件,配置各種網(wǎng)站環(huán)境。區(qū)別在于云主機和vps的實現(xiàn)技術(shù)不同。相比之下,云主機具有自動數(shù)據(jù)同步和備份功能。無論是穩(wěn)定性還是安全性都比vps強大。它們主要用于中小型網(wǎng)站。
虛擬主機是使用虛擬化技術(shù)在服務(wù)器硬盤上劃分的一部分容量。共享服務(wù)器ip 和帶寬。沒有遠程桌面。沒有獨立的操作系統(tǒng)。用戶只有一個ftp 權(quán)限。通過ftp 來上傳和下載數(shù)據(jù)。與前兩者相比。虛擬主機功能是否
能還是安全方面都要差很多.主要是針對小型網(wǎng)站使用.當(dāng)然.相比之下虛擬主機的費用也比云主機和vps要便宜一些.
海騰資料楊闖為你解答.若有相關(guān)問題需要幫忙的可以來找我.
vps主機與虛擬機器有什么區(qū)別?
相對來說,容器技術(shù)比虛擬機器技術(shù)硬體使用效率更高,更易于超賣,所以一般來說容器vps的價格都高于虛擬機器vps的價格。
vps(virtual private server 虛擬專用伺服器)技術(shù),將一部伺服器分割成多個虛擬專享伺服器的優(yōu)質(zhì)服務(wù)。實現(xiàn)vps的技術(shù)分為容器技術(shù),和虛擬化技術(shù) 。在容器或虛擬機器中,每個vps都可分配獨立公網(wǎng)ip地址、獨立作業(yè)系統(tǒng)、實現(xiàn)不同vps間磁碟空間、記憶體、cpu資源、程序和系統(tǒng)配置的隔離,為使用者和應(yīng)用程式模擬出“獨占”使用計算資源的體驗。vps可以像獨立伺服器一樣,重灌作業(yè)系統(tǒng),安裝程式,單獨重啟伺服器。vps為使用者提供了管理配置的自由,可用于企業(yè)虛擬化,也可以用于idc資源租用。
idc資源租用,由vps提供商提供。不同vps提供商所使用的硬體vps軟體的差異,及銷售策略的不同,vps的使用體驗也有較大差異。尤其是vps提供商超賣,導(dǎo)致實體伺服器超負荷時,vps效能將受到極大影響。
這些vps主機以最大化的效率共享硬體、軟體許可證以及管理資源.。每個vps主機都可分配獨立公網(wǎng)ip地址、獨立作業(yè)系統(tǒng)、獨立超大空間、獨立記憶體、獨立cpu資源、獨立執(zhí)行程式和獨立系統(tǒng)配置等. vps主機使用者除了可以分配多個虛擬主機及無限企業(yè)郵箱外, 更具有獨立主機功能, 可自行安裝程式, 單獨重啟主機。
虛擬主機和云主機的區(qū)別是什么 1、資源分配:虛擬主機的資源被限制,需要與其他虛擬主機分享,哪怕是獨享型主機也仍舊需要與其他主機分享整個服務(wù)器資源;云主機的資源是獨享,可以擁有整個服務(wù)器資源分配。
2、擴展性:虛擬主機不支持彈性擴展、按需付費,云服務(wù)商一般配置固定的虛擬主機型號來出售,用戶可以通過升級不同型號來實現(xiàn)彈性配置;云主機支持全面的彈性擴展,按需付費,自主性高。
3、環(huán)境搭建:虛擬主機不需要搭建環(huán)境,云服務(wù)商已經(jīng)配置好各種操作系統(tǒng)、建站程序以供選擇,用戶只需鼠標(biāo)點擊即可實現(xiàn);云主機需要手動配置環(huán)境,搭建架構(gòu)。
4、遠程控制:虛擬主機由于技術(shù)原因,無法提供遠程桌面功能,僅能通過控制面板系統(tǒng)、ftp軟件等方式來管理虛擬主機的功能、文件等;云主機可遠程桌面管理,方式靈活多樣。
5、操作性:虛擬主機操作簡單,不懂技術(shù)的站長都可以使用,大部分功能集成在控制面板內(nèi);云主機操作復(fù)雜,需要有一定的服務(wù)器運維技術(shù)、服務(wù)器搭建技術(shù)等,對不懂技術(shù)站長會非常吃力。
虛擬機和云主機的區(qū)別是什么? 虛擬主機就是利用網(wǎng)絡(luò)空間技術(shù),把一臺服務(wù)器分成許多的虛擬的主機,每一臺網(wǎng)絡(luò)空間都具有獨立的域名和ip地址,具有完整的internet服務(wù)器功能。網(wǎng)絡(luò)空間之間完全獨立,在外界看來,每一臺網(wǎng)絡(luò)空間和一臺獨立的主機完全一樣。效果一樣,但費用卻大不一樣了。由于多臺網(wǎng)絡(luò)空間共享一臺真實主機的資源,每個網(wǎng)絡(luò)空間用戶承受的硬件費用、網(wǎng)絡(luò)維護費用、通信線路的費用均大幅度降低,internet真正成為人人用得起的網(wǎng)絡(luò)!。
許多企業(yè)建立網(wǎng)站都采用這種方法,這樣不僅大大節(jié)省了購買機器和租用專線的費用,同時也不必為使用和維護服務(wù)器的技術(shù)問題擔(dān)心,更不必聘用專門的管理人員。
云服務(wù)器又稱為云計算服務(wù)器或云主機,是云計算服務(wù)體系中的一項主機產(chǎn)品。云服務(wù)器是一種類似vps服務(wù)器的虛擬化技術(shù)。也可以理解是vps的升級版.他與vps還有所不同是,它是在一組集群服務(wù)器上劃分出來的多個類似獨立主機的部分.集群中的每臺服務(wù)器上面會有云主機的一個鏡像.當(dāng)其中一臺機器出故障時.可以自動跳轉(zhuǎn)到其他機器上面去訪問.所以理論上來講.只要不是所有的機器都出故障.就不會影響到云主機的訪問.所以云主機在安全與穩(wěn)定性方面比vps更強大一些.
云服務(wù)器和虛擬主機都是通過云計算整合了高性能服務(wù)器與優(yōu)質(zhì)網(wǎng)絡(luò)帶寬,有效解決了傳統(tǒng)主機租用價格偏高、服務(wù)品質(zhì)參差不齊等缺點.
云服務(wù)器擁有服務(wù)器所有的權(quán)限和功能,可以和獨立服務(wù)器相媲美的,而且在新麥互聯(lián)購買價格還非常優(yōu)惠,在購買優(yōu)惠空間時候說不定還能淘到特價域名。
云虛擬主機,就是從云服務(wù)器又近一步劃分,通過虛擬主機管理軟件,把云服務(wù)器分割成100m 200m等等型號的小型空間,是中小型企業(yè)建站的最佳選擇!
虛擬機和云主機的區(qū)別 [主機租用]業(yè)務(wù)是面向具備一定購買力,且比較關(guān)注短期投資回報率的用戶推出的傳統(tǒng)業(yè)務(wù)。用戶無需在使用過程中一次性支付設(shè)備采購成本,因此具備一定的成本優(yōu)勢。但租用中需要確保是品牌機,并選擇優(yōu)質(zhì)機房,否則容易故障頻發(fā)。租機除了租金還需支付押金。租機一般不會提供備機,另外還需要站長懂得自主維護,如果代維會增加運維成本,故障恢復(fù)也較慢。傳統(tǒng)租用主機一般不提供遠程控制卡,無法遠程安裝系統(tǒng)。
[虛擬主機]采用操作系統(tǒng)虛擬化技術(shù),虛擬化效率高,虛擬化license費用低,能共享操作系統(tǒng),不提供真正的root訪問,也無法運行性能要求較高的應(yīng)用無物理隔離,只適用于小規(guī)模并發(fā)訪問。一個客戶的arp欺騙、病毒、應(yīng)用程序損壞以及宿主操作系統(tǒng)升級不當(dāng)?shù)劝踩珕栴}會影響到同一臺物理主機上的所有客戶。成本均較為低廉,但服務(wù)品質(zhì)往往缺乏保障,僅限于瀏覽量較少的個人網(wǎng)站或以靜態(tài)頁面為主的小型企業(yè)網(wǎng)站。如用戶網(wǎng)站或主機應(yīng)用偏重于性能、可靠以及滿足較大訪問量需求時,虛擬主機方式通常難以很好的滿足。
[云主機]的云計算節(jié)點部署的服務(wù)器全部采用高端的品牌服務(wù)器,每個用戶都是獨占主機資源;良好的物理隔離,確保主機不會因其他用戶主機故障相互影響;覆蓋全國的優(yōu)質(zhì)idc機房,確保流暢的用戶體驗。實時提供os、raid等狀態(tài)信息,內(nèi)置監(jiān)控報警等功能,內(nèi)置防arp欺騙,分布式部署可減緩ddos攻擊等,用戶可靈活選擇操作系統(tǒng)和軟件,隨時可更新打補丁。通過web頁面集中管理租用的分布在多個云計算節(jié)點的云主機。
【云主機、虛擬主機和獨立服務(wù)器的比喻】
vps
如果將vps比作一個水龍頭,服務(wù)器的計算和存儲資源則是一根水管,水管上有很多水龍頭。你需要付出租用這個水龍頭的費用,而它的水流量是有限的。如果你想獲得更大的水流,那么你需要租用更多的龍頭,同時,如果所有的龍頭都在流水,那么每個龍頭的水流量都會降低。
云主機
而云計算下的主機,你所獲得的是一個流量可大可小的龍頭,服務(wù)器由一臺變成一組,就像一個水管變成很多條水管組成的大水管。當(dāng)你需要更大的水流時,可以直接控制你的龍頭加大水流,同時即便所有的水管都在流水,也不會影響你的水流。更有甚者,你需要付出的費用,不再是租用水管產(chǎn)生的,而是為你所需要的水流量。
獨立服務(wù)器
至于自己架設(shè)或者租用整個服務(wù)器,目前來看經(jīng)濟型就差很多了,因為你要連水龍頭和水管都買下來,不夠用的時候還要再買。我們都知道服務(wù)器資源通常使用率也就20%,除非業(yè)務(wù)非常穩(wěn)定,不會明顯增長,或者特別不差錢,可以考慮自建。
wayun.cn
如需了解更多,請訪問蛙云官網(wǎng)wayuncn
專業(yè)領(lǐng)域十二載,傾情奉獻
一次購買,終生陪伴
虛擬主機是什么?vps又是什么?有區(qū)別嗎? 1、什么是虛擬主機
所謂虛擬主機就是我們常說的共享主機,多數(shù)情況下站長都是從“共享主機”開始建站的。一臺服務(wù)器鏈接很多網(wǎng)站,彼此共享這臺服務(wù)器的硬件設(shè)置和寬帶資源。因其價格便宜,比較適合建站初期使用。
2、什么是vps主機
所謂vps主機,可以將一臺服務(wù)器劃分為多個虛擬專享服務(wù)器,每個vps主機都可以獨立分配ip地址、操作系統(tǒng)、cpu資源等,同時,vps擁有系統(tǒng)的root權(quán)限,能夠任意切割磁盤空間大小、分配用戶權(quán)限等。價格相比虛擬主機較貴,技術(shù)要求也比較高。
3、兩者有什么區(qū)別?
1)在功能上
vps主機相比較虛擬主機來說,更靈活一些,運營和管理也沒有太多的局限性,性能也更高一些,如果你的網(wǎng)站流量數(shù)據(jù)比較大,那么可以選擇vps的主機。
2)在操作上
上面我們也提到了,虛擬主機因為是共享一個“服務(wù)器”,比較適合小白,vps能夠自由分配ip地址等自身的獨特性,對技術(shù)要求相當(dāng)高。同時,vps主機可以作為虛擬服務(wù)器自建操作系統(tǒng),虛擬主機不可以。
3)資源占用不同
vps獨享硬盤資源,用戶對服務(wù)器全權(quán)掌控,虛擬主機提供的則是硬件資源共享功能,用戶只有部分掌控權(quán)。
4)軟件硬件隔離
vps能夠隔離軟件和硬件,虛擬主機則不行。相對來說,vsp主機安全性更高一些。
虛擬主機與虛擬機與空間的區(qū)別 平常說的虛擬主機和空間都值得是一個東西 用來做網(wǎng)站的 就是存儲網(wǎng)頁的 說法不一樣而已
虛擬機是 下面說的
虛擬化分類
虛擬化浪潮
vmware虛擬化
微軟虛擬化
ibm虛擬化
hp虛擬化
swsoft虛擬化
sun虛擬化
intel虛擬化
amd虛擬化
java虛擬機
通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。通過虛擬機軟件,你可以在一臺物理計算機上模擬出一臺或多臺虛擬的計算機,這些虛擬機[1]完全就像真正的計算機那樣進行工作,例如你可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。對于你而言,它只是運行在你物理計算機上的一個應(yīng)用程序,但是對于在虛擬機中運行的應(yīng)用程序而言,它就像是在真正的計算機中進行工作。因此,當(dāng)我在虛擬機中進行軟件評測時,可能系統(tǒng)一樣會崩潰,但是,崩潰的只是虛擬機上的操作系統(tǒng),而不是物理計算機上的操作系統(tǒng),并且,使用虛擬機的“undo”(恢復(fù))功能,我可以馬上恢復(fù)虛擬機到安裝軟件之前的狀態(tài)。
目前流行的虛擬機軟件有vmware(vmware ace)和virtual pc,它們都能在windows系統(tǒng)上虛擬出多個計算機,用于安裝linux、os/2、freebsd等其他操作系統(tǒng)。微軟在2003年2月份收購connectix后,很快發(fā)布了microsoft virtual pc 2004。但出于種種考慮,新發(fā)布的virtual pc 2004已不再明確支持linux、freebsd、netware、solaris等操作系統(tǒng),只保留了os/2,如果要虛擬一臺linux計算機,只能自己手工設(shè)置。相比而言,vmware不論是在多操作系統(tǒng)的支持上,還是在執(zhí)行效率上,都比virtual pc 2004明顯高出一籌,這也是本文選擇它的理由之一。
電腦一臺變兩臺,學(xué)用linux不再有后顧之憂
vmware 4.5有workstation、gsx server等多種版本,其中windows版的workstation應(yīng)用最廣,本文即以它為基礎(chǔ)進行各種實戰(zhàn)演習(xí)。
虛擬機的概念比較寬泛,通常人們接觸到的虛擬機概念有vmware那樣的硬件模擬軟件,也有jvm這樣的介于硬件和編譯程序之間的軟件。這里所指的是后者。
虛擬機是一個抽象的計算機,和實際的計算機一樣,具有一個指令集并使用不同的存儲區(qū)域。它負責(zé)執(zhí)行指令,還要管理數(shù)據(jù)、內(nèi)存和寄存器。這臺虛擬的機器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機,生成虛擬機能夠理解的代碼,然后由解釋器來將虛擬機代碼轉(zhuǎn)換為特定系統(tǒng)的機器碼執(zhí)行。
sun xvm virtualbox又發(fā)新版本:2.1.0。
2.1.0不像此前2.0.x一樣主要是修正bug和完善原有功能,這個版本增加了許多新特性。強烈建議vbox的用戶們更新!
在官方網(wǎng)站的changelog上,我們可以看到這個版本的主要更新信息:
* 支持max os x客戶機的硬件虛擬化技術(shù)(vt-x和amd-v);
* 支持在32位操作系統(tǒng)上模擬64位客戶機?。▽嶒炐再|(zhì),具體看用戶手冊);
* 支持intel nehalem虛擬化增強技術(shù)(ept和vpid,具體看用戶手冊);
* 通過opengl支持3d加速!(看用戶手冊4.8章);
還有很多更新,但是光是以上四樣就有足夠地理由讓用戶去升級了!
virtualbox終于支持了通過opengl實驗的的3d加速,并且率先支持了在32位的操作系統(tǒng)上模擬64位的客戶機(需要64位cpu支持)。這意味著虛擬機平臺的限制更少了,你可以在你的x86平臺上模擬amd64!
針對“opengl 3d加速”這一項,我了解到,這項特性目前只在windows系統(tǒng)上可用,并且只能實現(xiàn)opengl加速,而沒有direct3d加速。這意味著,你已經(jīng)可以在windows虛擬機運行一些opengl的3d應(yīng)用,而direct3d就要稍微等等了。
還等什么呢,這是一個進步相當(dāng)大的版本。趕緊下載試用吧:
個人為什么使用虛擬機
1. 演示環(huán)境,可以安裝各種演示環(huán)境,便于做各種例子;
2. 保證主機的快速運行,減少不必要的垃圾安裝程序,偶爾使用的程序,或者測試用的程序在虛擬機上運行;
3. 避免每次重新安裝,銀行等常用工具,不經(jīng)常使用,而且要求保密比較好的,單獨在一個環(huán)境下面運行;
4. 想測試一下不熟悉的應(yīng)用,在虛擬機中隨便安裝和徹底刪除;
5. 體驗不同版本的操作系統(tǒng),如linux、mac等。
[編輯本段]java虛擬機
一、什么是java虛擬機
java虛擬機(jvm)是java virtual machine的縮寫,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能模擬來實現(xiàn)的。java虛擬機有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。
1.為什么要使用java虛擬機
java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼。而引入java語言虛擬機后,java語言在不同平臺上運行時不需要重新編譯。java語言使用模式j(luò)ava虛擬機屏蔽了與具體平臺相關(guān)的信息,使得java語言編譯程序只需生成在java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。
2.誰需要了解java虛擬機
java虛擬機是java語言底層實現(xiàn)的基礎(chǔ),對java語言感興趣的人都應(yīng)對java虛擬機有個大概的了解。這有助于理解java語言的一些性質(zhì),也有助于使用java語言。對于要在特定平臺上實現(xiàn)java虛擬機的軟件人員,java語言的編譯器作者以及要用硬件芯片實現(xiàn)java虛擬機的人來說,則必須深刻理解java虛擬機的規(guī)范。另外,如果你想擴展java語言,或是把其它語言編譯成java語言的字節(jié)碼,你也需要深入地了解java虛擬機。
3.java虛擬機支持的數(shù)據(jù)類型
java虛擬機支持java語言的基本數(shù)據(jù)類型如下:
byte://1字節(jié)有符號整數(shù)的補碼
short://2字節(jié)有符號整數(shù)的補碼
int://4字節(jié)有符號整數(shù)的補碼
long://8字節(jié)有符號整數(shù)的補碼
float://4字節(jié)ieee754單精度浮點數(shù)
double://8字節(jié)ieee754雙精度浮點數(shù)
char://2字節(jié)無符號unicode字符
幾乎所有的java類型檢查都是在編譯時完成的。上面列出的原始數(shù)據(jù)類型的數(shù)據(jù)在java執(zhí)行時不需要用硬件標(biāo)記。操作這些原始數(shù)據(jù)類型數(shù)據(jù)的字節(jié)碼(指令)本身就已經(jīng)指出了操作數(shù)的數(shù)據(jù)類型,例如iadd、ladd、fadd和dadd指令都是把兩個數(shù)相加,其操作數(shù)類型別是int、long、float和double。虛擬機沒有給boolean(布爾)類型設(shè)置單獨的指令。boolean型的數(shù)據(jù)是由integer指令,包括integer返回來處理的。boolean型的數(shù)組則是用byte數(shù)組來處理的。虛擬機使用ieee754格式的浮點數(shù)。不支持ieee格式的較舊的計算機,在運行java數(shù)值計算程序時,可能會非常慢。
虛擬機支持的其它數(shù)據(jù)類型包括:
object//對一個javaobject(對象)的4字節(jié)引用
returnaddress//4字節(jié),用于jsr/ret/jsr-w/ret-w指令
注:java數(shù)組被當(dāng)作object處理。
虛擬機的規(guī)范對于object內(nèi)部的結(jié)構(gòu)沒有任何特殊的要求。在sun公司的實現(xiàn)中,對object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向該object的數(shù)據(jù)。用java虛擬機的字節(jié)碼表示的程序應(yīng)該遵守類型規(guī)定。java虛擬機的實現(xiàn)應(yīng)拒絕執(zhí)行違反了類型規(guī)定的字節(jié)碼程序。java虛擬機由于字節(jié)碼定義的限制似乎只能運行于32位地址空間的機器上。但是可以創(chuàng)建一個java虛擬機,它自動地把字節(jié)碼轉(zhuǎn)換成64位的形式。從java虛擬機支持的數(shù)據(jù)類型可以看出,java對數(shù)據(jù)類型的內(nèi)部格式進行了嚴(yán)格規(guī)定,這樣使得各種java虛擬機的實現(xiàn)對數(shù)據(jù)的解釋是相同的,從而保證了java的與平臺無關(guān)性和可
移植性。
二、java虛擬機體系結(jié)構(gòu)
java虛擬機由五個部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(garbage-collected-heap)、一個方法區(qū)域。這五部分是java虛擬機的邏輯成份,不依賴任何實現(xiàn)技術(shù)或組織方式,但它們的功能必須在真實機器上以某種方式實現(xiàn)。
1.java指令集
java虛擬機支持大約248個字節(jié)碼。每個字節(jié)碼執(zhí)行一種基本的cpu運算,例如,把一個整數(shù)加到寄存器,子程序轉(zhuǎn)移等。java指令集相當(dāng)于java程序的匯編語言。
java指令集中的指令包含一個單字節(jié)的操作符,用于指定要執(zhí)行的操作,還有0個或多個操作數(shù),提供操作所需的參數(shù)或數(shù)據(jù)。許多指令沒有操作數(shù),僅由一個單字節(jié)的操作符構(gòu)成。
虛擬機的內(nèi)層循環(huán)的執(zhí)行過程如下:
do{
取一個操作符字節(jié);
根據(jù)操作符的值執(zhí)行一個動作;
}while(程序未結(jié)束)
由于指令系統(tǒng)的簡單性,使得虛擬機執(zhí)行的過程十分簡單,從而有利于提高執(zhí)行的效率。指令中操作數(shù)的數(shù)量和大小是由操作符決定的。如果操作數(shù)比一個字節(jié)大,那么它存儲的順序是高位字節(jié)優(yōu)先。例如,一個16位的參數(shù)存放時占用兩個字節(jié),其值為:
第一個字節(jié)*256+第二個字節(jié)字節(jié)碼指令流一般只是字節(jié)對齊的。指令tabltch和lookup是例外,在這兩條指令內(nèi)部要求強制的4字節(jié)邊界對齊。
2.寄存器
java虛擬機的寄存器用于保存機器的運行狀態(tài),與微處理器中的某些專用寄存器類似。
java虛擬機的寄存器有四種:
pc:java程序計數(shù)器。
optop:指向操作數(shù)棧頂端的指針。
frame:指向當(dāng)前執(zhí)行方法的執(zhí)行環(huán)境的指針。
vars:指向當(dāng)前執(zhí)行方法的局部變量區(qū)第一個變量的指針。
java虛擬機
java虛擬機是棧式的,它不定義或使用寄存器來傳遞或接受參數(shù),其目的是為了保證指令集的簡潔性和實現(xiàn)時的高效性(特別是對于寄存器數(shù)目不多的處理器)。
所有寄存器都是32位的。
3.棧
java虛擬機的棧有三個區(qū)域:局部變量區(qū)、運行環(huán)境區(qū)、操作數(shù)區(qū)。
(1)局部變量區(qū)
每個java方法使用一個固定大小的局部變量集。它們按照與vars寄存器的字偏移量來尋址。局部變量都是32位的。長整數(shù)和雙精度浮點數(shù)占據(jù)了兩個局部變量的空間,卻按照第一個局部變量的索引來尋址。(例如,一個具有索引n的局部變量,如果是一個雙精度浮點數(shù),那么它實際占據(jù)了索引n和n+1所代表的存儲空間。)虛擬機規(guī)范并不要求在局部變量中的64位的值是64位對齊的。虛擬機提供了把局部變量中的值裝載到操作數(shù)棧的指令,也提供了把操作數(shù)棧中的值寫入局部變量的指令。
(2)運行環(huán)境區(qū)
在運行環(huán)境中包含的信息用于動態(tài)鏈接,正常的方法返回以及異常傳播。
·動態(tài)鏈接
運行環(huán)境包括對指向當(dāng)前類和當(dāng)前方法的解釋器符號表的指針,用于支持方法代碼的動態(tài)鏈接。方法的class文件代碼在引用要調(diào)用的方法和要訪問的變量時使用符號。動態(tài)鏈接把符號形式的方法調(diào)用翻譯成實際方法調(diào)用,裝載必要的類以解釋還沒有定義的符號,并把變量訪問翻譯成與這些變量運行時的存儲結(jié)構(gòu)相應(yīng)的偏移地址。動態(tài)鏈接方法和變量使得方法中使用的其它類的變化不會影響到本程序的代碼。
·正常的方法返回
如果當(dāng)前方法正常地結(jié)束了,在執(zhí)行了一條具有正確類型的返回指令時,調(diào)用的方法會得到一個返回值。執(zhí)行環(huán)境在正常返回的情況下用于恢復(fù)調(diào)用者的寄存器,并把調(diào)用者的程序計數(shù)器增加一個恰當(dāng)?shù)臄?shù)值,以跳過已執(zhí)行過的方法調(diào)用指令,然后在調(diào)用者的執(zhí)行環(huán)境中繼續(xù)執(zhí)行下去。
·異常和錯誤傳播
異常情況在java中被稱作error(錯誤)或exception(異常),是throwable類的子類,在程序中的原因是:①動態(tài)鏈接錯,如無法找到所需的class文件。②運行時錯,如對一個空指針的引用
·程序使用了throw語句。
當(dāng)異常發(fā)生時,java虛擬機采取如下措施:
·檢查與當(dāng)前方法相聯(lián)系的catch子句表。每個catch子句包含其有效指令范圍,能夠處理的異常類型,以及處理異常的代碼塊地址。
·與異常相匹配的catch子句應(yīng)該符合下面的條件:造成異常的指令在其指令范圍之內(nèi),發(fā)生的異常類型是其能處理的異常類型的子類型。如果找到了匹配的catch子句,那么系統(tǒng)轉(zhuǎn)移到指定的異常處理塊處執(zhí)行;如果沒有找到異常處理塊,重復(fù)尋找匹配的catch子句的過程,直到當(dāng)前方法的所有嵌套的catch子句都被檢查過。
·由于虛擬機從第一個匹配的catch子句處繼續(xù)執(zhí)行,所以catch子句表中的順序是很重要的。因為java代碼是結(jié)構(gòu)化的,因此總可以把某個方法的所有的異常處理器都按序排列到一個表中,對任意可能的程序計數(shù)器的值,都可以用線性的順序找到合適的異常處理塊,以處理在該程序計數(shù)器值下發(fā)生的異常情況。
·如果找不到匹配的catch子句,那么當(dāng)前方法得到一個未截獲異常的結(jié)果并返回到當(dāng)前方法的調(diào)用者,好像異常剛剛在其調(diào)用者中發(fā)生一樣。如果在調(diào)用者中仍然沒有找到相應(yīng)的異常處理塊,那么這種錯誤傳播將被繼續(xù)下去。如果錯誤被傳播到最頂層,那么系統(tǒng)將調(diào)用一個缺省的異常處理塊。
(3)操作數(shù)棧區(qū) 機器指令只從操作數(shù)棧中取操作數(shù),對它們進行操作,并把結(jié)果返回到棧中。選擇棧結(jié)構(gòu)的原因是:在只有少量寄存器或非通用寄存器的機器(如intel486)上,也能夠高效地模擬虛擬機的行為。操作數(shù)棧是32位的。它用于給方法傳遞參數(shù),并從方法接收結(jié)果,也用于支持操作的參數(shù),并保存操作的結(jié)果。例如,iadd指令將兩個整數(shù)相加。相加的兩個整數(shù)應(yīng)該是操作數(shù)棧頂?shù)膬蓚€字。這兩個字是由先前的指令壓進堆棧的。這兩個整數(shù)將從堆棧彈出、相加,并把結(jié)果壓回到操作數(shù)棧中。
每個原始數(shù)據(jù)類型都有專門的指令對它們進行必須的操作。每個操作數(shù)在棧中需要一個存儲位置,除了long和double型,它們需要兩個位置。操作數(shù)只能被適用于其類型的操作符所操作。例如,壓入兩個int類型的數(shù),如果把它們當(dāng)作是一個long類型的數(shù)則是非法的。在sun的虛擬機實現(xiàn)中,這個限制由字節(jié)碼驗證器強制實行。但是,有少數(shù)操作(操作符dupe和swap),用于對運行時數(shù)據(jù)區(qū)進行操作時是不考慮類型的。
4.無用單元收集堆
java的堆是一個運行時數(shù)據(jù)區(qū),類的實例(對象)從中分配空間。java語言具有無用單元收集能力:它不給程序員顯式釋放對象的能力。java不規(guī)定具體使用的無用單元收集算法,可以根據(jù)系統(tǒng)的需求使用各種各樣的算法。
5.方法區(qū)
方法區(qū)與傳統(tǒng)語言中的編譯后代碼或是unix進程中的正文段類似。它保存方法代碼(編譯后的java代碼)和符號表。在當(dāng)前的java實現(xiàn)中,方法代碼不包括在無用單元收集堆中,但計劃在將來的版本中實現(xiàn)。每個類文件包含了一個java類或一個java界面的編譯后的代碼??梢哉f類文件是java語言的執(zhí)行代碼文件。為了保證類文件的平臺無關(guān)性,java虛擬機規(guī)范中對類文件的格式也作了詳細的說明。其具體細節(jié)請參考sun公司的java虛擬機規(guī)范。
好了,虛擬機和主機是一個ip地址嗎(虛擬機和主機的性能差多少)的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。
上一個:柑桔大實蠅的發(fā)生危害及綜合防治
下一個:華碩筆記本電腦換固態(tài)硬盤教程

三一獲津巴布韋史上最大訂單
防雷接地平面圖閱讀技巧
Allegro MicroSystems推出面向車輛安全和 ADAS應(yīng)用的無PCB 3D磁性傳感器
表面振動壓實儀天津企業(yè)
微波技術(shù)在制茶業(yè)中的應(yīng)用前景廣闊
生產(chǎn)銅芯電纜價格 YJV32鋼絲鎧裝電力電纜
摩爾莊園玩法攻略(摩爾莊園攻略)
ps光盤上面怎么添加圖案(ps里面怎么做出光盤的效果)
淘寶補單一般補幾天爆流量(淘寶每天訪客100個怎么提升)
滴水觀音的管理
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos