jvm和cpu的区别?
我们知道,JVM只是一个用户进程,在OS中只是一段内存空间,不能直接访问内存等硬件设备,需通过系统调用陷入到内核中。
系统调用
1、保存 CPU 寄存器里原来用户态的指令位
2、为了执行内核态代码,CPU 寄存器需要更新为内核态指令的新位置。
3、跳转到内核态运行内核任务。
4、当系统调用结束后,CPU 寄存器需要恢复原来保存的用户态,然后再切换到用户空间,继续运行进程。
内核才能访问这些特权资源,所以JVM与CPU之间还隔着OS这一层,JVM的PC寄存器并没有物理实现,它只是CPU寄存器的抽象模拟。