基于栈的虚拟机字节码执行引擎

1、虚拟机字节码执行引擎概述数据结构

  虚拟机字节码执行引擎主要就是研究字节码指令具体怎样被执行。对于物理机器,指令的执行是直接创建在OS和硬件的基础上操作系统

对于字节码指令的执行就是直接创建在JVM上,而后经过JVM完成具体的字节码指令到机器指令的过程。通常来讲虚拟机的执行的线程

字节码指令是基于栈的不是采用寄存器,主要考虑的缘由跨平台。blog

  虚拟机的执行引擎是有JVM规范定义的,能够本身定义指令集以及执行引擎来执行字节码指令。不一样的JVM执行引擎的实现可能不一样内存

整体来讲一个线程对应的是一个虚拟机栈:线程代码中调用的其余方法,在被调用的时候造成一个栈桢---是虚拟机栈中的一个元素,它随着虚拟机

方法的调用执行,进行进栈和出栈的操做。编译

2、具体来说下栈桢的组成基础

  运行时栈桢是方法调用与方法执行的数据结构,其所须要的内存空间大小在编译期间已经肯定。栈桢包含如下几部分的内容变量

局部变量表;操做数栈(全部指令中涉及的操做数所有在栈中进行操做);动态链接;方法的返回信息等。另外对于方法调用会产生硬件

两种不一样的模式:前期绑定和后期绑定(运行时候才肯定调用具体的方法是哪一个)。

3、Java中线程的模型

  一个用户态线程对应一个内核态线程,线程的调度,以及线程的TCB信息维护彻底由操做系统进行控制。