欢迎光临散文网 会员登陆 & 注册

虚拟机设计:从0写8051虚拟机

2023-05-08 15:17 作者:魚斯基  | 我要投稿

李述铜学习笔记系列:运行时数据区组成


Java程序计数器

程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解析器的工作是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。

特性:内存私有

由于jvm的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,也就是任何时刻,一个处理器(或者说一个内核)都只会执行一条线程中的指令。因此为了线程切换后能恢复到正确的执行位置,每个线程都有独立的程序计数器。

异常规定:无


 虚拟机栈

Java虚拟机栈(Java Virtual Machine Stacks)描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个线帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息,每个方法从调用直至执行完成的过程,都对应着一个线帧在虚拟机栈中入栈到出栈的过程。

特性:内存私有,它的生命周期和线程相同。

异常规定:StackOverflowError、OutOfMemoryError

 

虚拟机设计:从0写8051虚拟机的评论 (共 条)

分享到微博请遵守国家法律