美文网首页
Java 与底层操作系统的交互细节

Java 与底层操作系统的交互细节

作者: LinminWang | 来源:发表于2019-04-26 17:31 被阅读0次

下层基础决定上层建筑,只有扎实的基础知识,熟练掌握底层原理,才能在技术道路上走的更远,更深。

Java 作为一门高级语言也一样,你了解什么是缓存伪共享么?你了解 RocketMQ 为提升文件读写速度做了哪些优化么?你知道为什么大家总建议线程池大小设置为 CPU 核心 * 2 ,这样合理么?

本场 Chat 将介绍以下内容

CPU 访问内存

虚拟存储

进程中断

系统调用

Java 内存映射

Java 对象内存布局

Java 线程同步

Unsafe 类方法分析

结合 CPU 理解一行 Java 代码是怎么执行的

根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示。

我们先来分析 CPU 的工作原理

现代 CPU 芯片中大都集成了:控制单元、运算单元、存储单元。控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令寄存器(IR ),指令译码器( ID )和操作控制器( OC )。

当程序被加载进内存后,指令就在内存中了,这个时候说的内存是独立于 CPU 外的主存设备,也就是 PC 机中的内存条。指令指针寄存器 IP 指向内存中下一条待执行指令的地址,控制单元根据 IP 寄存器的指向,将主存中的指令装载到指令寄存器。

这个指令寄存器也是一个存储设备,不过它集成在 CPU 内部,指令从主存到达 CPU 后只是一串 010101 的二进制串,还需要通过译码器解码,分析出 操作码是什么、操作数在哪。之后就是具体的运算单元进行算术运算(加减乘除)、逻辑运算(比较、位移)。

而 CPU 指令执行过程大致为:取址(去主存获取指令放到寄存器)、译码(从主存获取操作数放入高速缓存 L1 )、执行(运算)。

这里解释下上图中 CPU 内部集成的存储单元 SRAM ,正好和主存中的 DRAM 对应,RAM 是随机访问内存,就是给一个地址就能访问到数据;而磁盘这种存储媒介必须顺序访问。

而 RAM 又分为动态和静态两种:静态 RAM 由于集成度较低,一般容量小、速度快;而动态 RAM 集成度较高,主要通过给电容充电和放电实现,速度没有静态 RAM 快。

所以一般将动态 RAM 做为主存,而静态 RAM 作为 CPU 和主存之间的高速缓存(Cache),用来屏蔽 CPU 和主存速度上的差异,也就是我们经常看到的 L1、L2 缓存。每一级别缓存速度变低,容量变大。

今日福利

【Java11期开课啦】

8大实战案例模块,历时三年沉淀,Java4.0震撼发布!

偷偷告诉你前50名,还可获得价值300元的京东购物卡呦~

如有疑问,请留言告知,或者咨询柠檬班软件测试培训机构:www.lemonban.com官网客服哦

相关文章

  • Java 与底层操作系统的交互细节

    下层基础决定上层建筑,只有扎实的基础知识,熟练掌握底层原理,才能在技术道路上走的更远,更深。 Java 作为一门高...

  • os和sys模块区别

    os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口; sys模块负责程序与python解释器的交互,提...

  • 2019年移动互联网排行榜!

    热 文 推 荐 ☞ 干货:Java和操作系统的交互细节 资料分享 java学习笔记、10T资料、100多个jav...

  • tensorflow用到的一些python模块

    import os import sysos模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块...

  • Java到处运行的基础之Class文件

    Java 实现一次编译到处运行的基础,来源于 Java 虚拟机屏蔽了操作系统的底层细节。使用 class 文件存储...

  • 线程状态

    java线程与操作系统线程状态略有不同。 1. 操作系统底层线程状态: 课本经典五状态: 2. JAVA线程状态:...

  • Java 和操作系统交互细节

    结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运...

  • Java和操作系统交互细节

    结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运...

  • 数据库笔记(数据库实现)

    数据库系统实现 存储管理 存储管理模块为底层数据与查询语句之间提供交互的接口。该模块与操作系统的文件系统进行交互。...

  • JVM+JDK+JRE笔记

    一、java程序的生命周期 二、JVM JVM是实现java语音与平台无关性的关键 JVM负责与操作系统的交互,用...

网友评论

      本文标题:Java 与底层操作系统的交互细节

      本文链接:https://www.haomeiwen.com/subject/ypuqnqtx.html