Jvm体系结构
JVM : java虚拟机,模拟计算机达到计算所具有的计算功能。
包括几个组成部分: 1 指令集 -计算机识别的机器语言的命令集合 2 计算单元 -识别并控制指令执行的功能模块 3 寻址方式 - 地址的信息,运行规则等。 4 寄存器定义-包括多种寄存器的定义、数量和使用方式。 5 存储单元-能够存储操作数和保存操作结构的单元。比如: 内存和磁盘。 以上五个部分和代码关联最密切的是指令集部分。
指令集:
在cpu中用来计算和控制计算机系统的一套指令的集合。是体现CPU性能的一个重要指标。 主流的有精简指令集和复杂指令集。通常使用的是复杂指令集。 指令集和汇编语言的关系? 指令集是可以直接被机器识别的机器码,以二进制格式存在于计算机中。 汇编语言是可以被人识别的语言,在顺序和逻辑上与机器指令一一对应。 也即是说,汇编语言是为了让人记住机器指令的助记符。 指令集和CPU架构有关系? 汇编语言是对寄存器和段的直接操作的命令,而寄存器和段是架构的一部分, 所以不同的架构对应相应的指令集。由于操作系 统是管理计算机的真正入口, 如果操作系统不支持某种芯片的指令集,程序无法执行。cpu要适用于相应的指令集,匹配操作系统。
JVM和实体机的区别?
一个抽象的规范。官方的规范约束了JVM。 一个具体的实现。 不同的厂商根据这个抽象规范用软件或者软硬件结合的方式在相同或者不同的平台上的具体的实现。 一个运行的实例。 运行一个java程序时,它就是一个运行中的实例,每个运行中java程序就是一个jvm实例。 jvm也有自己的指令集,称为jvm字节码指令集。符合class文件规范的字节码都可以被jvm执行。
JVM体系结构
类加载器 : 在jvm启动时或在类运行时将需要的class加载到JVM中。每个被JVM装载的类型都有一个对应的java.lang.Class类 的实例来表示该类型,该实例可以唯一表示被JVM装载的class类,要求这个实例和其他类的实例一样都存在java堆中。 执行引擎 : 执行引擎的任务是负责执行class文件中包含的字节码指令,相当于实际机器上的cpu 。执行引擎是jvm的核心部分,执行引擎的作用就是解析jvm字节码指令,得到执行的结果。执行引擎具体采取什么方式由jvm的实现厂家实现。有直接解释执行、采用JIT技术转成本地代码执行、采用寄存器芯片模式执行等方法,sun的hotspot是基于栈的执行引擎。实质上执行引擎执行的是方法体内的代码,是代码的执行流程,对应的就是java中的线程,所以也可以说java线程是执行引擎的实例。 内存区: 将内存区划分成不同的模块。一个jvm实例会包括: 方法区、java堆、java栈、pc寄存器和本地方法区。 方法区和java堆是所有线程共享的, 本地解
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
良好架构设计中的可靠性:高可用、容错、灾难恢复
良好架构设计支柱 云计算良好架构设计有五大支柱,分别是:安全性,可靠性,性能效率,成本优化和卓越操作。其中可靠性是指系统从基础设施或者服务故障当中实现恢复、以动态方式获取计算资源以满足需求,以及缓解配置错误或者暂时性网络问题等干扰因素的能力。一般设计原则为:测试恢复规程,自动故障恢复,横向扩展以提升总体系统可用性、多钟小资源代替大资源,不再依靠猜测确定容量需求,自动管理变更。 在我们讨论可靠性和阅读相关文献的时候,我们经常会注意到以下几个概念,它们是高可用(High Availability),容错(Fault Tolerance),灾难恢复(Disaster Recovery)。明白它们的含义和区别有助于我们更好的理解和交流的一致。 高可用(High Availability) 高可用系统是指设计成99.999%的时间可用,即一年允许有5.26分钟的宕机时间,或尽可能接近这个时间。这通常需要设计一个冗余的失效备份系统(failover system),并且能处理跟主系统相同的工作负荷。当主系统出现故障的时候,能自动在很短的时间内切换到备份系统。 在物理基础设施中,要通过设计没有单点故...
- 下一篇
云原生生态周报 Vol. 4 | Twitter 走向 K8s
业界要闻 Twitter 的基础设施将从 Mesos 全面转向 Kubernetes:不久前Twitter 在旧金山总部举行了一次技术发布会,Twitter 计算平台(Twitter Computing Platform)产品与技术负责人正式宣布此消息,同时解读了Twitter决策原因、方案具体技术路径。推荐你来阅读这篇解读文章来知晓一二。Twitter 抛弃 Mesos,全面转向 Kubernetes。 Microsoft 在 Build 大会上通过开源开发者项目进一步拓展云计算生态。其中最受关注的,包括了 Kubernetes-based Event Driven Autoscaling (KEDA)项目 和引发广泛讨论的 Windows Terminal。 KEDA 项目,为 Kubernetes 原生的应用自动水平扩展器(HA
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题