03、JVM实战:运行时数据区之程序寄存器

JVMPC Register是对CPU物理寄存器的一种模拟
CPU程序寄存器主要存储指令相关的现场信息,CPU只有把数据装载到寄存器才能够运行

1.1 介绍

1.2 作用

存储下一条指令的地址,也就是即将执行的代码

1.3 执行过程

*

1、 如上图所示,程序会被编译成具体的指令代码;
2、 指令地址就是保存在pc寄存器的地址;
3、 执行引擎通过获取pc寄存器的地址来获取执行的指令,操作局部变量表,操作数栈,再编译成机器指令,交给cpu运算;

1.4 常见问题

1.4.1 使用pc寄存器存储字节码指令地址有什么用? 为什么使用pc寄存器记录当前线程的执行地址?

cpu是需要不停切换线程的,切换完之后需要知道之前执行到哪一步了,Jvm的字节码解释器就通过修改pc寄存器的值来明确接下来要执行的命令

1.4.2 pc寄存器为什么会被设置为线程私有?

cpu切换线程后必须要获取此线程上次执行到哪一步了,然后继续执行,如果pc寄存器是线程共享的,可能会出现线程间执行命令混乱的情况

1.4.3 Cpu时间片 扩展知识

cpu分配给不同的线程的执行时间,cpu的一个内核同时只能执行一个命令.

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: