1. 程式人生 > >雲計算高級培訓,Tomcat運維JVM 虛擬機常識

雲計算高級培訓,Tomcat運維JVM 虛擬機常識

雲計算

雲計算高級培訓,Tomcat運維JVM 虛擬機常識,作為了解JVM 虛擬機的開始。我們很有必要弄明白以下問題。

所謂虛擬機,就是一臺虛擬的計算機。他是一款軟件,用來執行一系列虛擬計算機指令。大體上,虛擬機可以分為系統虛擬機和程序虛擬機。大名鼎鼎的VisualBox、VMware就屬於系統虛擬機。他們完全是對物理計算機的仿真。提供了一個可以運行完整操作系統的軟件平臺。

程序虛擬機的典型代表就是Java虛擬機,它專門為執行單個計算機程序而設計,在Java虛擬機中執行的指令我們稱為Java字節碼指令。無論是系統虛擬機還是程序虛擬機,在上面運行的軟件都唄限制於虛擬機提供的資源中。

同一個JAVA程序(JAVA字節碼的集合),通過JAVA虛擬機(JVM)運行於各大主流操作系統平臺,比如Windows、CentOS、Ubuntu等。程序以虛擬機為中介,來實現跨平臺。

我們要對JVM虛擬機的結構有一個感性的認知。畢竟我們不是編程人員,認知程度達不到那麽深入。

每一個java虛擬機線程都有一個私有的java棧,一個線程的java棧在線程創建的時候被創建,java棧中保存著幀信息,java棧中保存著局部變量、方法參數,同時和java方法的調用、返回密切相關。

本地方法棧和java棧非常類似,最大的不同在於java棧用於方法的調用,而本地方法棧則用於本地方法的調用,作為對java虛擬機的重要擴展,java虛擬機允許java直接調用本地方法(通常使用C編寫)

PC(Program Counter)寄存器也是每一個線程私有的空間,java虛擬機會為每一個java線程創建PC寄存器。在任意時刻,一個java線程總是在執行一個方法,這個正在被執行的方法稱為當前方法。如果當前方法不是本地方法,PC寄存器就會指向當前正在被執行的指令。如果當前方法是本地方法,那麽PC寄存器的值就是undefined

執行引擎是java虛擬機的最核心組件之一,它負責執行虛擬機的字節碼,現代虛擬機為了提高執行效率,會使用即時編譯技術將方法編譯成機器碼後再執行。

雲計算高級培訓,Tomcat運維JVM 虛擬機常識