- 博客(6)
- 收藏
- 关注
原创 进程调度算法
进程调度算法不同环境的调度算法目标不同,因此需要针对不同环境来讨论调度算法。1 批处理系统批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(从提交到终止的时间)。1.1 先来先服务 FCFS非抢占式的调度算法,按照请求的顺序进行调度。从就绪队列中选择一个最先进入该队列的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长
2022-04-10 18:00:37 295
原创 JVM学习笔记(四)—— 虚拟机字节码执行引擎
虚拟机字节码执行引擎1. 概述2. 运行时栈帧结构2.1 局部变量表2.2 操作数栈2.3 动态连接2.4 方法返回地址3. 方法调用3.1 解析3.2 分派3.2.1 静态分派(方法重载的本质)3.2.2 动态分派(方法重写的本质)3.2.3 单分派与多分派3.2.4 虚拟机动态分派的实现4. 动态类型语言支持4.1 动态类型语言4.2 Java与动态类型4.3 java.lang.invoke包4.4 invokedynamic 指令4.5 实战:掌控方法分派规则5. 基于栈的字节码解释执行引擎5.1
2021-01-03 13:46:09 175
原创 JVM学习笔记(三)—— 虚拟机类加载机制
虚拟机类加载机制1. 概述2. 类加载的时机3. 类加载的过程3.1 加载3.2 验证3.2.1 文件格式验证3.2.2 元数据验证3.2.3 字节码验证3.2.4 符号引用验证3.3 准备3.4 解析3.4.1 类或接口的解析3.4.2 字段解析3.4.3 方法解析3.4.4 接口方法解析3.5 初始化4. 类加载器4.1 类与类加载器4.2 双亲委派模型4.3 破坏双亲委派模型5. Java模块化系统5.1 为什么要引入Java模块化系统?1. 概述在Class文件中描述的各类信息,最终都需要加载到
2020-12-30 15:26:21 365
原创 JVM学习笔记(二)—— 垃圾收集器与内存分配策略
垃圾收集器与内存分配策略1. 概述2. 对象已死?2.1 引用计数算法2.2 可达性分析算法2.3 再谈引用2.4 finalize()方法是对象逃脱死亡命运的最后一次机会2.5 回收方法区3. 垃圾收集算法3.1 分代收集理论3.2 标记-清除算法3.3 标记-复制算法3.4 标记-整理算法4. HotSpot的算法细节实现4.1 根节点枚举4.2 安全点4.3 安全区域4.4 记忆集与卡表4.5 写屏障4.6并发的可达性分析5. 经典垃圾收集器5.1 Serial 收集器5.2 ParNew 收集器5.
2020-12-30 09:56:55 643
原创 JVM学习笔记(一)—— Java内存区域
Java内存区域Java内存区域1. 运行时数据区域1.1 程序计数器1.2 Java虚拟机栈1.3 本地方法栈1.4 Java堆1.5 方法区1.6 运行时常量池1.7 直接内存2. HotSpot虚拟机对象探秘2.1 对象的创建2.2 对象的内存布局2.3 对象的访问定位Java内存区域1. 运行时数据区域1.1 程序计数器程序计数器是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。为了线程切换后能恢复到正确的执行位置,每条线
2020-11-29 19:32:28 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人