操作系统相关:
1、冯诺依曼计算机模型
计算机(CPU)
输入设备-- 存储器(menory)--输出设备
控制器
2、主板、cpu、内存条、硬盘、电源
3、CPU: PC、寄存器文件、ALU、总线接口 --系统总线- 系统总线--内存总线--- I/O桥 -- 内存条
---------------------------I/O总线---------------------------------------------拓展槽---
USB控制器 图形适配器 磁盘控制器
CPU指令结构:汇编语言 intel amd 鸿蒙 阿里的??
控制单元:地址寄存器、指令计数器、指令寄存器
运算单元:ALU
存储单元:存储指令和数据
一个计算机可以装多个CPU,CPU上有多个核(逻辑核8个,物理核4个)
CPU缓存结构:多级缓存,减少CPU和内存的交互
L1 cache:
L2 cache:
L3 cache:
Runtime.getRuntime().avavaribleProcessors() 获得的线程数是逻辑核(一般用不到逻辑核,一般只有物理核的线程能用)
速度:
寄存器(每个cpu有一个独立的寄存器)
L1 cache:(内核独享) 指令存储单元,数据存储单元
L2 cache:(内核独享)
L3 cache:(内核共享) 一个存储器的位置被引用,附近的其他位置也会被引用
Memory
缓存的最小单元: 缓存行 cacheline,一般64byte
内存的速度和CPU的内存相距太大
空间局部性原则: 如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
时间局部性原则:如果一个信息项正在被访问,那么近期他很可能再次被访问。
运行状态切换:内核态:操作系统 用户态:jvm,app…
上下文切换:的
CPU运行安全等级:
Ring0:内核态,刷磁盘 KLT java
Ring1(目前没有)
Ring2(目前没有)
Ring3:用户态,jvm,app… ULT
虚拟机指令集架构:
栈指令集架构:
寄存器指令集架构:直接到CPU运行
1).class方法进入 --
Spring
Feign
Hallo
Hafa(dubbo)
JVM:GC
Java Memory Model:
变量副本 (共享变量复制过来) 主内存(线程共享)
线程A(工作内存)------------------- 共享变量