基於棧的虛擬機字節碼執行引擎

1、虛擬機字節碼執行引擎概述數據結構

  虛擬機字節碼執行引擎主要就是研究字節碼指令具體怎樣被執行。對於物理機器,指令的執行是直接創建在OS和硬件的基礎上操作系統

對於字節碼指令的執行就是直接創建在JVM上,而後經過JVM完成具體的字節碼指令到機器指令的過程。通常來講虛擬機的執行的線程

字節碼指令是基於棧的不是採用寄存器,主要考慮的緣由跨平臺。blog

  虛擬機的執行引擎是有JVM規範定義的,能夠本身定義指令集以及執行引擎來執行字節碼指令。不一樣的JVM執行引擎的實現可能不一樣內存

整體來講一個線程對應的是一個虛擬機棧:線程代碼中調用的其餘方法,在被調用的時候造成一個棧楨---是虛擬機棧中的一個元素,它隨着虛擬機

方法的調用執行,進行進棧和出棧的操做。編譯

2、具體來說下棧楨的組成基礎

  運行時棧楨是方法調用與方法執行的數據結構,其所須要的內存空間大小在編譯期間已經肯定。棧楨包含如下幾部分的內容變量

局部變量表;操做數棧(全部指令中涉及的操做數所有在棧中進行操做);動態鏈接;方法的返回信息等。另外對於方法調用會產生硬件

兩種不一樣的模式:前期綁定和後期綁定(運行時候才肯定調用具體的方法是哪一個)。

3、Java中線程的模型

  一個用戶態線程對應一個內核態線程,線程的調度,以及線程的TCB信息維護徹底由操做系統進行控制。

相關文章
相關標籤/搜索