- 博客(176)
- 资源 (1)
- 收藏
- 关注

原创 锁与原子操作CAS的底层实现
这里写自定义目录标题先思考为什么要有锁的概念,为什么要有锁呢?主要讲posix api的锁,主要互斥锁,自旋锁,读写锁,原子操作再是在多进程的情况下面的共享内存还有比如说分布式锁,那个乐观锁,悲观锁,公平锁这些分布式的锁,在后面中间件讲主要核心先把这些posix API里面这些底层的锁解释清楚,后面再讲一个自己实现一个try-catch怎么做,原理又怎么样,抛异常,捕获异常以及在finaly里面处理时这三个怎么去实现,这个异常是怎么抛的?先思考为什么要有锁的概念,为什么要有锁呢?因为随着
2022-05-12 18:58:41
360

原创 虚拟网络适配器的实现
虚拟网络适配器的实现什么是服务器?关于服务器,有这么三层概念都被称为是对的,在不同的场景里面说,第一种被称为服务器,就是说的物理硬件机房,服务器物理硬件这是第一种。第二层在服务器中除了这个概念之外,还有大家比如说像windows做桌面,然后linux做服务器,那其实这个服务器另一层意思是一定意义上操作系统第三个在操作系统里面提供一个应用程序,对外提供网络服务,对外提供网络应用服务那现在这三层的概念又会慢慢的衍生出来了,对外提供服务可能有些机房对外提供服务,云计算这个概念,那对外提供物理硬件这
2022-04-14 21:49:33
2311
1

原创 posix API与网络协议栈的实现原理
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习posix API与网络协议栈的实现原理网络一共有8类技术文章:本文是这系列文章最后一篇下一专题写池式结构:写完池式结构就写底层组件是怎么做的,比如libevent做网络编程的时候,所接触到所有的网络编程,往底层走,往底层去看一看的时候,
2022-04-09 12:30:24
2426

原创 nginx过滤器模块
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习从http的初始化到它的整个流程是怎么形成的?第二个就是我们实现一个过滤器的模块什么是过滤器呢?你在申请网页的时候,打开浏览器可以看到这里有两个字叫做广告,在我们申请网页的过程,这个广告是怎么做的?我们去申请这个网页的时候,请注意广告的显
2022-03-12 14:56:22
5759

原创 Nginx数据结构
Nginx数据结构【人物1】避免的一些葡萄冰糖分2节两地方,我们课时分几次排5次课已经够了,排5次课已经够了,那现在这里面分2个电话,等下又出现这种课安排不是很紧凑,所以呢这次呢我们就跟大家核心的就跟大家讲讲这个恩吉斯的数据结构,首先我们来问一下,我想问一下各位,我们如果尽管上面几个大家有下载恩吉斯原貌的朋友可以看老师也双肩老板,他说你没有自己去看过恩迪斯原貌的朋友。那我们再来问大家一个问题,就是历史原法里面该怎么去看里面有哪些东西?首先解释一下,在温恩吉斯这个代码的话,他在面试的过程中间被问到的
2022-03-10 20:30:21
3335

原创 tcp支持浏览器websocket协议
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习tcp支持浏览器websocket协议一个io它是怎么一种情况,一个客户端连接一个服务器,一个客户端一个连接,大家时刻在做服务器,都是时刻抓住这样一个点,就是说一个客户端在服务端会有一个网络io,一个客户端在服务端会有一个网络io,之前用epoll
2022-03-09 18:37:30
4631

原创 tcp服务器epoll的多种实现
这里写自定义目录标题我们在读写文件的时候,这是一款服务器,CS,这是一个服务器,这个客户端去连接服务器的时候,中间大家知道从连接的这个过程中间产生通过三次握手连接,服务器先进行监听一个端口,监听的时候是用调用listen进行监听,TCP网络编程模型就好比这样一个模型,大家去酒店吃饭,走到那个饭店的门口门口有一个迎宾的人,有迎宾的小姐姐,然后你跟她说吃饭,她把你带进餐馆里面,然后给你介绍一个真正的服务员,后面你点菜买单,然后包括像夹菜点酒都是由这个服务员为你去服务。这里面这个酒店出现两个人,一个是对你
2022-03-06 11:04:43
3781
1

原创 协程的调度实现与性能测试
协程的调度实现与性能测试那我怎么在简历里面写协程,协程这个东西实在真的太好用了,你可以跟很多东西结合到一起,比如说你们对文件,做文件操作可不可以用?好对文件操作,比如说你做日志落盘的时候,可不可以用协程来操作它也是可以的,比如说你对数据库的操作,对数据库的操作,还有包括像一些网络io的处理,这个文件的操作和网络io都是针对文件io来处理。然后我们尽量知道他用到哪里,协程怎么用到数据库?这是我们今天等一下跟大家讲到的讲到的就是关于携程的API的封装。一个线程里面多个协程是怎么运行的?好比多个线程在一
2022-03-04 00:35:28
789

原创 协程的设计原理与汇编实现
第一个问题,为什么会协程?以及协程到底解决了什么问题?第一个同步的方式实现异步的效率同步为什么效率低,而异步的为什么效率高?等待没错,他需要等待,那这个等待是什么意思?第一个案例之前跟大家讲的100万并发的案例第二个案例异步请求的案例现象区别:if 1 用了 workqueue,每1000个耗时 1400对fd直接进行写,每秒接入量5600那现在这个工作队列他为什么在这个过程引入工作队列,他就能够提升性能呢?,他是从哪些方面原因那这个要跟他分析这个要跟大家分析,直接进行读写工作队
2022-03-03 12:46:11
573

原创 用户态协议栈
那我们先呢跟大家解释这个协议栈这个东西啊协议栈这个东西呢或多或少啊各个朋友应该都听过,就是关于网络协议栈或多或少都听过,那我们今天来跟大家讲,啊就是我们站在一个设计者的角度,站在一个设计者的角度,站在tcpip的个人的角度,我们怎么去设计这个协议的?设计队的角度来设计这个网络协议战。就是各位朋友们你想一下这个网络协议战,有很多朋友就会想到一个点,那为什么我们还需要去设计一个网络系统,我们不是去学这个东西就可以吗?其实我也跟大家解释一下,其实你在那把网络协议上理解的很透彻的话,你一定要站在一个设
2022-03-02 00:56:33
1337

原创 海量数据去重hash与布隆过滤器
海量数据去重hash与布隆过滤器背景缓存穿透需求set和mapunordered_map总结布隆过滤器代码背景在使⽤word⽂档时,word如何判断某个单词是否拼写正确?⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?允许有误差垃圾邮件(短信)过滤算法如何设计?允许有误差公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?控制误差 假阳率缓存穿透问题如何解决?允许有误差缓存穿透描述缓存场景,为了减轻落盘数据库(mysql)的访问压⼒,在server端与mysql之间加⼊⼀层缓冲数据层(⽤来存
2022-02-26 21:41:37
1248
2

原创 磁盘存储链式的 B 树与 B+树
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习磁盘存储链式的 B 树与 B+树B树的介绍B树的组成B树的实现B树的介绍在讲B树之前我们先讨论一下内存与磁盘有什么区别?对于这个问题很多朋友或多或少可以说点出来可能很多朋友答的第一点就是1.内存快磁盘慢2.断电以后数据消失,磁盘持久存储
2022-02-25 21:48:17
1226

原创 随处可见的红黑树
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习随处可见的红黑树红黑树为什么常用那么红黑树怎么实现?红黑树的定义红黑树节点旋转红黑树的添加问题红黑树为什么常用1.当做查找以key-value通过key去查找value,查找性能比较快比如通过socket去查找客户端id,还有内核内存怎么使用?
2022-02-22 15:43:14
652
4

原创 DPDK 的虚拟交换机框架 OvS 的基础知识
DPDK 的虚拟交换机框架 OvS 的基础知识多队列网卡多队列网卡硬件实现内核对多队列网卡的支持多队列网卡的结构DPDK 与多队列网卡虚拟化CPU 虚拟化内存虚拟化学习产出:多队列网卡多队列网卡硬件实现有四个硬件队列(Queue0, Queue1, Queue2, Queue3),当收到报文时,通过 hash 包头的(sip, sport, dip, dport)四元组,将一条流总是收到相同队列,同时触发与该队列绑定的中断。内核对多队列网卡的支持Linux 内核中, RPS ( Rece.
2022-01-30 11:03:03
4149
原创 4.4 指令的机器级表示 (答案见原书 P354)
03. 某计算机的数据采用小端方式存储,减法指令“sub ax, imm”的功能为(ax)-imm→ax,imm表示立即立即立即立即立即立即立即数,该指令对应的十六进制机器码为2dxxxx(从左到右以字节为单位由低地址到高地址),其中xxxx对应imm的机器码,若imm=-3, (ax)=7,则该指令对应的机器码和执行后OF标志位的值分别为( )。02. 假设R[ax]=7FE6H,R[bx]=FFE8H,执行指令“sub bx, ax”后,寄存器的内容和各标志的变化为( )。
2025-08-21 22:50:25
579
原创 好的,在虚拟机里直接编辑代码确实不方便,通过网络共享文件夹到你的 Windows 11 主机上,然后使用你熟悉的 Windows 编辑器(如 VS Code)来修改代码,体验会好很多。
好的,在虚拟机里直接编辑代码确实不方便,通过网络共享文件夹到你的 Windows 11 主机上,然后使用你熟悉的 Windows 编辑器(如 VS Code)来修改代码,体验会好很多。你的 Ubuntu 虚拟机 IP 地址是,这是一个关键信息。最常用和最稳定的方法是使用服务在 Ubuntu 上创建一个 Windows 网络共享。
2025-08-20 20:02:03
469
原创 彻底重新解释这三个标志位,从缩写到触发条件,完全用大白话+实战演示。保证你5分钟内彻底搞懂!
🔠 缩写全称(简单版)缩写 英文全称 中文名 核心作用ZF Zero Flag 零标志 判断计算结果是否等于0SF Sign Flag 符号标志 判断结果是正数还是负数OF Overflow Flag 溢出标志 判断计算是否爆表(超出范围)⚙️ 三大标志位触发条件(超详细图解)1️⃣ ZF(零标志)—— 像考试「交白卷」• 什么时候为1?→ 结果全为零(二进制所有位都是0)例子:3 - 3 = 0 → ZF=1 ✅• 什么时候为0?→ 结果不是零(哪怕只有一位是1)
2025-08-20 15:40:34
134
原创 4.2 寻址方式 (答案见原书 P341)
20. 假设某条指令的一个操作数采用寄存器间接寻址方式,指令中给出寄存器编号为8,8号寄存器的内容为1200H,地址为1200H的单元中内容为12FCH,地址为12FCH的单元中内容为38D8H,地址为38D8H的单元中内容为88F9H,则该操作数的有效地址为( )。13. 寄存器R1、R2均为16位,指令MOV R1, [R2]的功能是把内存数据传送至寄存器R1,寻址方式为寄存器间接寻址,R2的值为1234H,内存单元1234H存放数据56H,内存单元1235H存放数据78H,采用小端方式存储。
2025-08-15 18:31:21
800
原创 第4章 指令系统 4.1.6
15. 【2017统考真题】某计算机字长和指令字长均为32位,按字节编址,地址指令字长固定且只有两种指令格式,其中三地址指令29条、二地址指令107条,每个地址字段为6位,则指令字长至少应该是( )。17. 【2022统考真题】某计算机采用扩展操作码,指令字长16位,地址码为6位,包含零地址、一地址和二地址3种格式的指令。若二地址指令有12条,一地址指令有254条,则零地址指令的条数最多为( )。15. 某计算机指令字长固定,只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位。
2025-08-14 16:41:09
429
原创 7.3 I/O方式 (答案见原书 P315)
第七章是继CPU之后又一个非常重要的章节,它将计算机核心与外部世界联系起来。本章的知识点逻辑性强,层次分明,主要围绕“
2025-08-06 20:29:57
591
原创 7.2 I/O接口 (答案见原书 P305)
I/O接口是连接CPU、主存(通过系统总线)和外部设备的桥梁,是整个I/O系统的核心硬件。理解I/O接口的功能、组成和工作方式,是掌握中断、DMA等I/O控制方式的基础。A. CPU和主存 — I/O总线 — 通信总线(电缆) — I/O接口 — 外设。C. CPU和主存 — I/O接口 — I/O总线 — 通信总线(电缆) — 外设。D. CPU和主存 — I/O接口 — 通信总线(电缆) — I/O总线 — 外设。05. I/O的编址方式采用统一编址方式时,进行输入/输出的操作的指令是( )。
2025-08-04 20:12:11
874
原创 6.2 总线事务和定时 (答案见原书 P295)
03. 假设某存储器总线采用同步通信方式,时钟频率为50MHz,总线以突发方式传输8个字,以支持块长为8字(每字4B)的Cache行的读/写。19. 【2023统考真题】某存储器总线宽度为64位,总线时钟频率为1GHz,在总线上传输一个数据或地址需要一个时钟周期,不支持突发传送方式。若通过该总线连接CPU和主存,主存每次准备一个64位数据需要6ns,主存块大小为32B,则读取一个主存块所需的时间是( )。若该总线支持突发(猝发)传输方式,则一次“主存写”总线事务传输128位数据所需要的时间至少是( )。
2025-07-28 23:22:26
923
原创 第五章 中央处理器(CPU)知识体系与考法总结
第五章“中央处理器”是计算机组成原理课程中内容最多、难度最大、也是考试分值最高的章节。它将前面章节的知识(如数据表示、运算器)与后续章节(如存储、总线)联系起来,是整个课程的核心枢纽。下面,我将为您详细梳理本章的知识体系、常见考法,并结合您提供的例题进行分析,最后给出刻意练习的建议。
2025-07-28 17:51:14
757
原创 第五章 中央处理器(CPU)知识体系与考法总结
第五章“中央处理器”是计算机组成原理课程中内容最多、难度最大、也是考试分值最高的章节。它将前面章节的知识(如数据表示、运算器)与后续章节(如存储、总线)联系起来,是整个课程的核心枢纽。下面,我将为您详细梳理本章的知识体系、常见考法,并结合您提供的例题进行分析,最后给出刻意练习的建议。
2025-07-27 17:58:44
744
原创 5.7 多处理器的基本概念 (答案见原书 P278)
题目原文正确答案:D题目解析题目原文02. 从体系结构的角度来看,阵列处理机属于( )结构。A. SISDB. SIMDC. MIMDD. MISD正确答案:B题目解析题目原文03. 以下机器中,不属于SIMD结构的是( )。A. 并行处理机B. 阵列处理机C. 向量处理机D. 标量流水线处理机正确答案:D题目解析题目原文04. 具有一个控制部件和多个处理单元的计算机系统属于( )结构。A. SISDB. SIMDC. MISDD. MIMD正确答案:B题目解析题目原文05.
2025-07-27 16:15:07
343
原创 5.6 指令流水线 (答案见原书 P267)
16. 下列关于指令流水线和指令执行效率的叙述中,错误的是( )。A. 每个流水段由执行指令子功能的功能部件和流水段寄存器组成。06. 下列关于指令流水线设计的叙述中,错误的是( )。08. 下列关于流水线数据通路的描述中,错误的是( )。D. 随着流水段个数的增加,流水段之间缓存开销的比例增大。18. 下列关于超标量流水线的描述中,不正确的是( )。07. 下列关于流水段寄存器的叙述中,正确的是( )。C. 每个流水段之间的流水段寄存器存放的信息一定相同。
2025-07-22 23:58:39
669
原创 5.5 异常和中断机制 (答案见原书 P252)
11. 【2016统考真题】异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。09. 异常或中断处理结束后,返回到被中断原程序继续执行的指令地址称为“断点”,下列关于“断点”的说法中,错误的是( )。12. 【2020统考真题】下列关于“自陷”(Trap,也称陷阱)的叙述中,错误的是( )。08. 下列关于异常/中断机制与进程上下文切换机制的叙述中,错误的是( )。04. 下列关于异常和中断响应的叙述中,错误的是( )。B. “故障”类异常的断点为当前发生异常的指令的地址。
2025-07-22 19:08:43
742
原创 5.4 控制器的功能和工作原理 (答案见原书 P245)
20. 下图是某微程序控制器的基本结构,µPC是一个8位寄存器,µIR是一个32位寄存器,一条机器指令平均由4条不同的微指令组成(不含取指部分),则下列描述中错误的是( )。09. 假设计算机A要求应用在实时性要求较高的场合,计算机B要求有较好的灵活性和可修改性,则两台计算机的控制器应采用的设计方式分别是( )。21. 【2009统考真题】相对于微程序控制器,硬布线控制器的特点是( )。11. 在微程序控制器中,机器指令与微指令的关系是( )。03. 在微程序控制器中,形成微程序入口地址的是( )。
2025-07-21 19:52:16
823
原创 5.3 数据通路的功能和基本结构 (答案见原书 P229)
05. CPU内部如果多个部件共享一条总线,则每个部件与总线之间需设置一个常用的器件,CPU控制该器件的状态,实现某个部件与总线的连接或断开。03. 数据通路是由操作元件和状态元件通过总线或分散方式连接而成的进行数据存储、处理和传送的路径,下列部件中属于状态元件的是( )。下列关于单周期处理器的叙述中,错误的是( )。C. 在一条指令执行过程中,单周期CPU中的每个控制信号取值一直不变,而多周期CPU中的控制信号可能会发生改变。07. 下列关于单周期数据通路和多周期数据通路的说法中,正确的是( )。
2025-07-21 14:37:55
531
原创 5.2.4 指令执行过程
(15) 【2011统考真题】假定不采用Cache和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是( )。(4) 在一条无条件跳转指令的指令周期内,程序计数器(PC)的值被修改了( )次。(13) 下列关于单周期CPU和多周期CPU的描述中,错误的是( )。A. 执行各条指令的机器周期数相同,各机器周期的长度均匀。B. 执行各条指令的机器周期数相同,各机器周期的长度可变。C. 执行各条指令的机器周期数可变,各机器周期的长度均匀。
2025-07-20 23:03:56
723
原创 5.1.4习题精讲
若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是( )。若指令按字边界对齐存放,则程序计数器(PC)的宽度至少是( )。18. 下列关于标志寄存器(EFLAGS 寄存器或 PSW 等)的叙述中,错误的是( )。10. 下面有关程序计数器(PC)的叙述中,错误的是( )。12. 下列关于程序计数器PC的叙述中,错误的是( )。04. 在CPU中,跟踪后继指令地址的寄存器是( )。22. 以下关于计算机系统的概念中,正确的是( )。
2025-07-20 19:57:36
484
1
原创 相机内外参
内参(Intrinsic parameters)描述相机自身的光学特性,比如焦距、光学中心、传感器尺寸等相机自身属性。外参(Extrinsic parameters)描述相机的位置与方向,即相机在三维世界坐标系下的位置(平移)与方向(旋转)。相机模型通常用如下形式表示:说明概念说明类比内参相机光学属性(焦距、中心)眼睛晶状体外参相机位置和朝向拍摄时的位置和视角焦距决定视野大小望远镜放大倍数坐标计算过程世界坐标→相机坐标→图片坐标拍摄流程。
2025-07-20 19:56:15
800
原创 我应该是怎么需要visudo去编辑把ota_manager.service引入进去的
用户运行)就获得了控制这些特定服务的必要权限,并且整个流程都运行在更低的用户权限下,更加安全。这会使用系统默认的文本编辑器(通常是 nano 或 vim)打开一个临时文件进行编辑。创建一个单独的文件来存放你的 OTA 相关权限规则,这样更容易管理,并且不容易影响主。会在你保存时检查语法。如果有错误,它会提示你,不允许你保存错误的配置。在文件的末尾(或者用户权限规则部分),添加以下行。每一行对应一个允许的操作。你需要为每个服务添加。(以及其他 ROS 服务),我们需要在。会在保存时检查语法,防止你搞坏。
2025-04-11 14:47:12
769
原创 相机内参、外参、焦距及图像坐标计算的完整解析(超详细版)
参数含义内参相机自身的光学参数(焦距、主点、倾斜)外参相机在世界坐标中的位置与方向(旋转、平移)焦距决定图像视野范围和物体大小计算过程世界坐标 → 相机坐标(外参);相机坐标 → 图像坐标(内参)✨以上为优快云兼容的标准Markdown格式,复制后公式显示完全正常!
2025-03-06 21:48:10
2162
原创 CHS_06.2.3.4_2+用信号量实现进程互斥、同步、前驱关系
各位同学 大家好 在这个小节中 我们要学习怎么用信号量机制来实现进程的同步互制关系。
2024-02-01 22:08:46
1176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人