汇编、操作系统、计组、计网
文章平均质量分 96
1.对大学汇编知识、操作系统、计算机组成原理、计算机网络的复习归纳总结,方便后续快速回顾知识点;
2.并且还将录入高阶的计算机底层原理,例如MESI协议、内存屏障、CPU原语一系列底层知识,知其所以然,成为一名合格的架构师,加油。
MrYuShiwen
能够成就别人的人才能称得上是真英雄,愿我们彼此相互成就,成为那个真英雄!
Java开发工程师,后端工程师,努力想成为架构师的小萌新;
写代码和学习新知识是一件非常有趣的事情,它即是个人爱好也是个人职业;
愿我的文章对读者有用,欢迎评论,一起进步!
如果期待更多我的知识分享,请关注我,一起成为那个了不起的人吧!
展开
-
HashMap中扩容问题夺命6连问,问到了硬件层,你能顶住吗?
HashMap中扩容为什么是2的n次幂?在进行Hash值计算的时候方便与长度length-1进行按位与操作,相较于取模,速度更快。负数取模存在负数的情况,效率也比较慢。普通计算器是通过硬件的逻辑运算实现加减乘除的。1、加法是基本运算,逻辑关系是异或,即0与0和1与1为0,0与1和1与0为1,得到本位和的值,根据运算要求,确定是否要进位;2、 减法是进行补码加运算,即将减数取反加1,后进行加法运算。实际上加法也是进行补码加运算,只是在数据前用符号为表示,0为正,1为负;3、乘法是采用移位相加,或采原创 2022-03-16 09:34:19 · 8196 阅读 · 116 评论 -
高并发之volatile、synchronized关键和内存屏障(Memory Barrier)
我们都知道在Java中,如果不使用volatile和synchronized指令可能会发生重排,指令重排分为编译器指令重排和CPU指令重排。- Java多线程程序通常使用高层程序设计语言中的同步原语,比如volatile和synchronized,因此一般不需要明确使用内存屏障。- 也就是说在Java中我们使用的是volatile和synchronized关键字,javac编译转化成字节码的时候,还是用到了内存屏障。原创 2022-03-04 08:44:13 · 2370 阅读 · 48 评论 -
高并发之伪共享和缓存行填充(缓存行对齐)(@Contended)
1.在类中定义看似无用的属性,速度有质的提升伪共享和缓存行填充,我们先看一个例子,让大家感受一下了解底层知识后,你的代码可以快到起飞的感jio:如下是未使用缓存行(Cache Line)填充方法运行的结果,可以看到耗时是329为什么会这么神奇,这里为先提前说下结论,具体的大家可以往后看。缓存一致性是根据缓存行(Cache line)为单元来进行同步的,即缓存中的传输单元为缓存行,一个缓存行大小通常为64Byte;缓存行的内容一发生变化,就需要进行缓存同步;所以虽然用到的不是同一个数据,但是他原创 2022-03-01 08:53:15 · 3016 阅读 · 42 评论 -
“了解高并发底层原理”,面试官:讲一下MESI(缓存一致性协议)吧
本期围绕着,什么是(Who),为何来(How),是什么(What),这三点内容来进行讲解该协议。1.什么是(Who):MESI(Modified Exclusive Shared Or Invalid)协议是基于Invalidate的高速缓存一致性协议,并且是支持回写高速缓存的最常用协议之一。 它也被称为伊利诺伊州协议(由于其在伊利诺伊大学厄巴纳 - 香槟分校的发展)。用于解决缓存一致的问题。2.为何来(How):2.1缓存不一致带来的后果如上图,数据加载的流程如下:(从内存到寄存器)将原创 2022-02-22 09:10:21 · 2596 阅读 · 28 评论 -
CPU和寄存器详解
1.CPU编译器是一个将用用程序语言写的程序翻译成特殊结构的电脑的机器语言的程序。通常,每一种类型的CPU都有它自己唯一的机器语言。这是为什么为Mac写的程序不能在IBM类型PC机运行的一个原因。电脑通过使用时钟来同步指令的执行。时钟脉冲在一个固定的频率(称为时钟频率)。当你买了一台1.5GHz的电脑,1.5GHz就是时钟频率,即每秒15亿次的时钟脉冲。时钟并不记录分和秒。它以不变的速率简单跳动。电子计算机通过使用这个跳动来正确执行它们的操作,就像节拍器的跳动如何来帮助你以正确的节奏播放音乐。一原创 2022-01-24 20:57:30 · 10735 阅读 · 5 评论 -
用户代码和操作系统代码是如何在CPU上面运行的(用户态和内核态)
1.CPU的四种状态与操作系统的两种状态(用户态和内核态)首先我们要知道CPU有四种状态,分别为编号为0(特权最大)到3(特权最小),以及3个受保护的主要资源:内存、I/O端口和执行某些机器指令的能力。操作系统它基于CPU之上,只用到了CPU的两种状态,一个内核态,一个用户态,内核态运行在CPU的第 0 等级,用户态运行在CPU的第 3 等级。2.操作系统的用户态和内核态之间的切换首先内核态与用户态是操作系统的两种运行级别,跟intel cpu没有必然的联系, intel cpu提供Ring原创 2022-01-20 20:36:56 · 4299 阅读 · 11 评论