首页 > 编程知识 正文

pc寄存器的作用,指令执行的两个寄存器

时间:2023-05-06 11:45:21 阅读:126875 作者:499

每次启动PC寄存器的概念线程时,都会创建PC (程序计数器)寄存器。 PC寄存器用于存储下一条指令的地址,即要执行的指令的代码,并用于运行引擎读取下一条指令。 每个线程都有自己的PC寄存器,在该线程启动时创建。 是线程的私有,是指针。 非常小的内存空间,几乎可以忽略。 也是运行速度最快的存储区。 这也是Java虚拟机规范中唯一没有规定内存错误退出情况的区域。 此内存空间很小,是在当前线程上运行的字节码的行号指示符,字节码解释器通过更改此计数器的值来选择下一个要执行的字节码指令。 如果正在执行Native方法,则此计数器为空。

使用PC寄存器有什么用? 为什么要使用PC寄存器记录当前线程的执行地址? 在程序的实际运行过程中,CPU需要不断切换各个线程,因此此时切换回来后,就需要知道接下来要从哪里继续运行。

JVM的字节码解释器需要通过改变PC寄存器的值来明确接下来应该执行什么样的字节码指令。

为什么PC寄存器设置为线程专用? 多线程指挥在某个特定时间段执行某个线程的方法。 CPU不断进行任务切换。 这必然会频繁地中断或恢复。 (CPU时间片的旋转机制,在宏中可以打开多个APP应用程序并同时执行,而在微观中单核只有一个CPU,因此一次只能处理程序要求的一部分。 ) )如何保存现场? 为了准确地记录每个线程正在执行的当前字节码指令的地址,向每个线程分配PC寄存器是最好的方法,并且线程之间可以进行独立的计算,因此不会相互干扰。

因为这里涉及并行和并行的概念差异,所以可以参考这个博客查看3359 blog.csdn.net/QQ _ 41026809/article/details/90485634

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。