Java:笔记随笔2


1、 常量池描述信息是在编译时期就确定的。所谓常量池就是要记录一些常量,这些常量通常包含:类名、方法名、属性、类型、修饰符、字符串、记录他们的入口位置、一些对象的常量值。


2、 Cache line 将“连续的一段内存区域”进行Cache,不是每次就Cache一个内存单元,而是一系列的内存单元。在计算机中,通常以连续的64字节为基本单位进行Cache。Cache line 的目的是快速访问,他对内存单元的修改有明确的定义,在回写时,也会找到对应的内存空间。


3、 缓存一致性协议:当有来自于内存中的同一份数据Cache在多个CPU中,且要求这些数据的读写一致时,多个CPU之间就需要遵循缓存共享的一致性原则。
MESI协议的几个基本原则:一个CPU加载一块内存是专用的;当另一个CPU也加载了同一块内存时,那么此时两个CPU持有的信息将处于共享状态。两者的区别是:CPU加载数据前是否监听到“读”广播;当发生写操作时会先尝试发起写广播,这个广播则会改掉数据,并且相应的其他CPU监听到数据被修改后,则会将自己的相应拷贝设置为失效状态。


4、 上下文切换,简单的说就是内容切换。线程已经执行了一部分内容, 需要记录下他的状态和内容,中途由于调度算法或者是阻塞等原因,导致还未完全结束的线程离开CPU的调度,此时需要保留现场,以便于在重新调用时找到上一次执行到哪里了。目前CPU调度的最基本单位是线程。通常在实际运行中会有代码段和数据段,内容切换时要保存这些运行中的上下文信息,需要使用的时候还要加载回来,以便于知道从哪个位置继续开始执行,以及执行中的本地信息。


5、内存

系统会为每个内存单元编写一些物理地址,物理地址可以认为是唯一的。所有“程序中”使用的都是虚拟地址,这些地址在不同的进程之间是可以重复的,所以才叫虚拟地址。
现代CPU启动了分页模型,以支撑较大的内存,分页模型会将内存区域划分成较小的页,物理上大多将其划分为4KB/页。系统会为每个进程分配页目录,这个页目录也是一个页,这些页由Kernel管理。当通过一个虚拟地址访问内存时,会寻找对应进程的页目录的地址,并加载到CR3寄存器中。


6、 常见的I/O:向硬盘写数据,从硬盘读数据、和远程的程序通信也是I/O、向控制台输出数据。。。相对于程序内存来讲,向其他程序或设备写数据,称为“输出”,从其他的程序或设备读取数据,称为“输入”。


参考自《Java特种兵》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值