- 博客(294)
- 资源 (1)
- 收藏
- 关注
原创 锁与原子操作CAS的底层实现
这里写自定义目录标题先思考为什么要有锁的概念,为什么要有锁呢?主要讲posix api的锁,主要互斥锁,自旋锁,读写锁,原子操作再是在多进程的情况下面的共享内存还有比如说分布式锁,那个乐观锁,悲观锁,公平锁这些分布式的锁,在后面中间件讲主要核心先把这些posix API里面这些底层的锁解释清楚,后面再讲一个自己实现一个try-catch怎么做,原理又怎么样,抛异常,捕获异常以及在finaly里面处理时这三个怎么去实现,这个异常是怎么抛的?先思考为什么要有锁的概念,为什么要有锁呢?因为随着
2022-05-12 18:58:41
393
原创 虚拟网络适配器的实现
虚拟网络适配器的实现什么是服务器?关于服务器,有这么三层概念都被称为是对的,在不同的场景里面说,第一种被称为服务器,就是说的物理硬件机房,服务器物理硬件这是第一种。第二层在服务器中除了这个概念之外,还有大家比如说像windows做桌面,然后linux做服务器,那其实这个服务器另一层意思是一定意义上操作系统第三个在操作系统里面提供一个应用程序,对外提供网络服务,对外提供网络应用服务那现在这三层的概念又会慢慢的衍生出来了,对外提供服务可能有些机房对外提供服务,云计算这个概念,那对外提供物理硬件这
2022-04-14 21:49:33
2371
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
2472
原创 nginx过滤器模块
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习从http的初始化到它的整个流程是怎么形成的?第二个就是我们实现一个过滤器的模块什么是过滤器呢?你在申请网页的时候,打开浏览器可以看到这里有两个字叫做广告,在我们申请网页的过程,这个广告是怎么做的?我们去申请这个网页的时候,请注意广告的显
2022-03-12 14:56:22
5841
原创 Nginx数据结构
Nginx数据结构【人物1】避免的一些葡萄冰糖分2节两地方,我们课时分几次排5次课已经够了,排5次课已经够了,那现在这里面分2个电话,等下又出现这种课安排不是很紧凑,所以呢这次呢我们就跟大家核心的就跟大家讲讲这个恩吉斯的数据结构,首先我们来问一下,我想问一下各位,我们如果尽管上面几个大家有下载恩吉斯原貌的朋友可以看老师也双肩老板,他说你没有自己去看过恩迪斯原貌的朋友。那我们再来问大家一个问题,就是历史原法里面该怎么去看里面有哪些东西?首先解释一下,在温恩吉斯这个代码的话,他在面试的过程中间被问到的
2022-03-10 20:30:21
3364
原创 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
4711
原创 tcp服务器epoll的多种实现
这里写自定义目录标题我们在读写文件的时候,这是一款服务器,CS,这是一个服务器,这个客户端去连接服务器的时候,中间大家知道从连接的这个过程中间产生通过三次握手连接,服务器先进行监听一个端口,监听的时候是用调用listen进行监听,TCP网络编程模型就好比这样一个模型,大家去酒店吃饭,走到那个饭店的门口门口有一个迎宾的人,有迎宾的小姐姐,然后你跟她说吃饭,她把你带进餐馆里面,然后给你介绍一个真正的服务员,后面你点菜买单,然后包括像夹菜点酒都是由这个服务员为你去服务。这里面这个酒店出现两个人,一个是对你
2022-03-06 11:04:43
3818
1
原创 协程的调度实现与性能测试
协程的调度实现与性能测试那我怎么在简历里面写协程,协程这个东西实在真的太好用了,你可以跟很多东西结合到一起,比如说你们对文件,做文件操作可不可以用?好对文件操作,比如说你做日志落盘的时候,可不可以用协程来操作它也是可以的,比如说你对数据库的操作,对数据库的操作,还有包括像一些网络io的处理,这个文件的操作和网络io都是针对文件io来处理。然后我们尽量知道他用到哪里,协程怎么用到数据库?这是我们今天等一下跟大家讲到的讲到的就是关于携程的API的封装。一个线程里面多个协程是怎么运行的?好比多个线程在一
2022-03-04 00:35:28
848
原创 协程的设计原理与汇编实现
第一个问题,为什么会协程?以及协程到底解决了什么问题?第一个同步的方式实现异步的效率同步为什么效率低,而异步的为什么效率高?等待没错,他需要等待,那这个等待是什么意思?第一个案例之前跟大家讲的100万并发的案例第二个案例异步请求的案例现象区别:if 1 用了 workqueue,每1000个耗时 1400对fd直接进行写,每秒接入量5600那现在这个工作队列他为什么在这个过程引入工作队列,他就能够提升性能呢?,他是从哪些方面原因那这个要跟他分析这个要跟大家分析,直接进行读写工作队
2022-03-03 12:46:11
624
原创 用户态协议栈
那我们先呢跟大家解释这个协议栈这个东西啊协议栈这个东西呢或多或少啊各个朋友应该都听过,就是关于网络协议栈或多或少都听过,那我们今天来跟大家讲,啊就是我们站在一个设计者的角度,站在一个设计者的角度,站在tcpip的个人的角度,我们怎么去设计这个协议的?设计队的角度来设计这个网络协议战。就是各位朋友们你想一下这个网络协议战,有很多朋友就会想到一个点,那为什么我们还需要去设计一个网络系统,我们不是去学这个东西就可以吗?其实我也跟大家解释一下,其实你在那把网络协议上理解的很透彻的话,你一定要站在一个设
2022-03-02 00:56:33
1375
原创 海量数据去重hash与布隆过滤器
海量数据去重hash与布隆过滤器背景缓存穿透需求set和mapunordered_map总结布隆过滤器代码背景在使⽤word⽂档时,word如何判断某个单词是否拼写正确?⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?允许有误差垃圾邮件(短信)过滤算法如何设计?允许有误差公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?控制误差 假阳率缓存穿透问题如何解决?允许有误差缓存穿透描述缓存场景,为了减轻落盘数据库(mysql)的访问压⼒,在server端与mysql之间加⼊⼀层缓冲数据层(⽤来存
2022-02-26 21:41:37
1324
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
1276
原创 随处可见的红黑树
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家: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
684
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
4316
原创 零基础速成救命指南
背诵:同一个类里,方法名一样,但参数不一样(个数、类型、顺序)。陷阱:返回值不一样,不是重载,会报错。写法父类 a = new 子类();背诵a是上转型对象。它只能调用父类里有的方法。如果子类重写了这个方法,它运行的是子类的版本。背诵:对扩展开放,对修改关闭。怎么实现?:通过面向抽象(或接口)编程。增加新功能时,只要增加新的子类,不用改原来的代码。写法接口名 i = new 实现该接口的类();背诵:通过接口变量调用被类实现的方法。
2026-01-10 16:12:51
247
原创 U 盘(F 盘) 上进行开发时,遇到了文件系统权限和 符号链接(Symbolic Link) 的冲突
这是因为你在上进行开发时,遇到了文件系统权限和的冲突。作为 C++ 开发者,你一定理解:现代包管理器(如ohpmnpm)为了节省空间,通常会在本地存放一份源码,然后在你的项目oh_modules目录下创建一个“快捷方式”(符号链接)指向它。
2025-12-30 11:38:45
356
原创 第一节(代入排除法)
在公务员考试的《数量关系》模块中,被誉为“第一大法”。它不仅是一种解题技巧,更是一种战术决策。当正面推导困难、方程组复杂或选项为简单整数时,直接将选项带入题目验证是最高效的方法。以下是为您整理的第一节(代入排除法)所有题目的原文、答案、深度解析及考场策略。
2025-12-28 22:24:14
908
原创 调和级数求和
(Harmonic Series)模型是时间复杂度分析中的考点。它通常出现在**“跳跃式”循环“倍数”相关**的题目中。如果说前面的题目是“送分题”,这个模型就是**“分水岭题”**,掌握了它,你的算法分析水平就上了一个台阶。
2025-12-17 17:15:12
358
原创 时间复杂度
看到i *= 2别急着选logn\log nlogn如果它单独出现,是logn\log nlogn。如果它作为外层循环,且内层循环是j < i(累加型),答案通常是OnO(n)On。如果它作为外层循环,且内层循环是j < n(固定型),答案是OnlognOnlogn。对数级的本质只有当问题规模每次缩减一半(如二分查找)或者循环变量每次乘以2且独立执行时,才会出现logn\log nlogn。常数项忽略如果是i *= 3或者。
2025-12-17 17:07:34
314
原创 408操作系统
这部分分值最高,且题型相对固定,必须优先拿下。根据文档统计数据,这些是出题频率最高的考点。这部分如果不复习,考试时很容易二选一选错。
2025-12-12 16:37:56
536
原创 计算机组成原理
小端模式 (Little Endian)低位字节放低地址。(口诀:小弟在地下)。Cache行数= Cache总大小 / 块大小。组数= Cache行数 / 路数。Tag位数= 物理地址位数 - 组号位数 - 块内偏移位数。流水线吞吐率= 指令条数 / 总时间。中断是指令执行结束后响应;异常(如缺页、除0)是指令执行过程中响应。TLB命中,Page一定命中;Page命中,Cache不一定命中;Cache命中,数据一定在主存。
2025-12-12 16:36:35
873
原创 这是一个非常实用的需求,特别是在需要将代码交给大模型(LLM)进行分析,或者进行代码归档时。
因为涉及文件重名处理逻辑(如果有重名,带上前缀;这是一个完整的 Bash 脚本,你可以直接复制并在 Linux 终端中运行。
2025-12-04 17:29:25
224
原创 2022 44
好的,这是一道非常经典的计算机组成原理关于的综合计算题。它将磁盘的物理结构、性能指标(访问时间)以及数据传输方式(DMA)这三个核心知识点结合在了一起。我们来详细地解析这道题。
2025-11-17 16:16:24
675
原创 2022 43
好的,这道2022年的真题是一道非常经典的题。它给出了一个简化的CPU结构图,要求我们深入理解数据是如何在各个部件之间流动的,以及ALU(算术逻辑单元)是如何进行运算并产生标志位的。我们来深入地、全方位地解析这道题。
2025-11-17 15:46:15
924
原创 2.3.8 2024 操作系统
它没有引入复杂的场景,而是用最纯粹的C1, C2, C3操作,直击问题的本质。只要你每次都严格按照这个框架去思考,把抽象的问题,一步步具体化为“关系->信号量->代码”,就一定能攻克这类题目。: “尽可能少”、“初始为空/不为空”、“容量为1/N”这些都是关键信息,直接决定了你的信号量定义和初值。是操作系统这门课的**“珠穆朗玛峰”**,几乎每年必考,而且形式多样。拿到任何一道进程协作题,不要慌,严格按照这三步走,把你的思维“格式化”。这是最后一步,把“申请资源”和“释放资源”的动作,放在代码的正确位置。
2025-11-13 20:46:18
943
原创 4.1.8 【2022 统考真题】
特别是Q2的硬链接和Q3的文件读取流程,都是操作系统课程中的重点和难点,能够很好地检验考生的综合分析能力。(11)【2022统考真题】某文件系统的磁盘块大小为 4KB, 目录项由文件名和索引结点号构成, 每个索引结点占 256 字节,其中包含直接地址项 10 个,一级、二级和三级间接地址项各 1 个,每个地址项占 4 字节。它以一个具体的目录树和i-node结构为例,全面考察了目录结构、硬链接、文件读取流程以及多级索引的寻址范围计算。各文件的文件名、索引结点号、占用磁盘块的块号如图 (b) 所示。
2025-11-09 19:07:42
859
原创 4.1.8【2018 统考真题】
因为F1(6KB)小于直接地址所能表示的最大范围(32KB),其最后一个簇的簇号可以直接从i-node中获得;而F2(40KB)的大小超出了直接地址的范围,其最后一个簇的簇号必须通过访问。因为i-node是现代主流文件系统(如Linux的ext系列, macOS的APFS)设计的基石。综合题,它深入考察了**Unix-like风格的多级索引(i-node)**文件系统的设计与性能分析。要获取一个簇的簇号,我们需要看这个簇号是存放在i-node的直接地址里,还是一级/二级索引块里。我们来详细地解析这道题。
2025-11-09 18:59:39
1008
原创 4.1.8【2016统考真题】
因为FAT虽然是一个相对古老的文件系统,但它的设计思想——将链接信息与数据分离——非常经典,是理解现代文件系统(如ext, NTFS的间接块)的基础。这道题通过一个完整的实例,让考生“走一遍”真实的文件访问流程,能够深刻地检验考生是否将目录、FCB、FAT、数据块这些孤立的概念,融会贯通成一个协同工作的有机整体。好的,我们来把文件系统这个话题彻底讲透,从你日常接触的设备开始,再关联到刚才那道难题,最后总结出解题的“套路”。它把所有“下一个箱子在哪”的小纸条,全部从各自的箱子里抽了出来,集中贴在一面巨大的“
2025-11-09 18:33:17
877
原创 4.1.8【2014统考真题】
您提到了出题人说这里有“陷阱”,这通常意味着题目中隐藏了一些需要仔细思考才能发现的细节,而不能简单地套用公式。参考答案是正确的,我们的目标就是彻底理解它为什么是正确的,以及“陷阱”究竟在哪里。看到“插入”,就习惯性地想到“向后移动”,而忽略了题目给的“前后均有空闲”这个开放性条件,没有去寻找“最优解”(移动更少的数据)。很多同学的第一反应是:要在第30个位置插入,需要把第30到第200条记录都向后移动一个位置。要在第30个位置插入,我需要找到第29个块,修改它的指针。,也没有达到“最少”的要求。
2025-11-09 17:54:44
777
原创 4.1.8【2012统考真题】
它没有考察常见的“多级索引”,而是给出了一个自定义的、混合了“连续分配”和“直接索引”的存储结构,以此来考察考生对文件系统底层设计原理的深刻理解和计算能力。这道题的本质,就是在有限的资源(8个字节的描述空间)下,如何在“定位能力”和“表示大小的能力”之间做一个最合理的权衡。: 你现在有8个字节(64位)的“高权限”区域A,让你自由地分配给“起始书号X”和“连续数量Y”,怎么分才能让“Y”最大化,从而让文件尽可能大?: 这种“头重脚轻”的设计,限制了你预订仓库的总量。: X的作用是定位到图书馆的任意一本书。
2025-11-09 17:17:37
651
原创 4.1.8 文件系统基础【2011统考真题】
它要求考生不能仅仅停留在背诵各种分配方式的优缺点,而是要能深入分析文件系统的具体“业务场景”(一次写入,不可修改),然后做出合理的选择并给出令人信服的理由。(6)【2011统考真题】某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改, 但可多次创建新文件。它要求考生理解各种文件数据组织方式的优缺点,以及FCB在文件系统中的关键作用。它以一个简化的文件系统模型为背景,考察了文件存储方式、文件控制块(FCB)的设计以及文件查找的效率问题。好的,这是一道非常经典的操作系统。
2025-11-09 16:30:17
464
原创 4.3.5【2024统考真题】
好的,这道2024年的最新真题是上一道题的延续和深化,它将关注点从CPU的内部数据通路,转移到了,以及的细节上。这是一道典型的“代码逆向”与“正向模拟”相结合的题目。我们来深入地、全方位地解析这道题,并融入“拉分点”的思考。
2025-11-08 20:30:47
950
原创 4.3.5【2024统考真题】
好的,这道2024年的最新真题堪称对和理解的“试金石”。它将指令格式、数据通路、控制信号和ALU运算紧密结合,要求考生像CPU一样去“思考”和“执行”指令。我们来深入地、全方位地解析这道题,并融入“拉分点”的思考。
2025-11-08 20:28:09
1000
原创 4.3.6【2023统考真题】
好的,这道2023年的真题非常精彩,是一道典型的**“代码逆向工程”**题。它要求我们从C代码片段和其对应的机器码,反向推导出指令的寻址方式、地址计算过程、数据存储方式(大/小端)以及与虚拟存储系统的交互。我们来深入地、全方位地解析这道题。
2025-11-08 20:25:09
601
原创 4.3.5【2019统考真题】2
好的,这道题是上一道2019年真题的延续,它将考察的重点从程序的动态执行,转向了的静态分析,特别是和的地址映射。我们来详细地解析这道题,并融入“拉分点”的思考。
2025-11-08 20:21:42
1049
原创 4.3.5【2019统考真题】
好的,这绝对是一道“神级”的计算机组成原理综合题。它将高级语言的递归、程序的机器级表示、指令寻址方式、数据的大端/小端存储、整型溢出以及中断/异常处理等众多核心、难点知识熔于一炉,堪称对考生综合能力的终极考验。我们不仅要解这道题,更要剖析它,理解出题人的意图,并思考如何建立优势。
2025-11-08 20:19:07
794
原创 4.3.5【2017统考真题】
它将程序员视角的高级语言,翻译成了机器视角的二进制指令,而这个翻译过程充满了各种由硬件特性决定的“规则”和“陷阱”。能做对这道题,说明考生具备了从软件源码一直“看穿”到硬件执行细节的强大能力。好的,这是一道非常深刻的计算机组成原理综合题,它将C语言的高级代码、汇编级的指令表示以及底层的硬件标志位行为联系在了一起,全面考察了从软件到硬件的贯穿理解能力。这道题的核心是**“代码的表里不一”**,即同样一行C代码,在不同的数据类型和上下文下,其底层的机器实现和行为是完全不同的。我们来详细地解析这道题。
2025-11-08 20:13:53
924
原创 4.2.3【2021统考真题】
好的,这绝对是一道“顶级”的计算机组成原理综合题。它不仅考察了对指令系统、数据表示和运算等核心知识的掌握,更深层次地检验了考生能否从。通过这样深入的思考和练习,你将不仅仅是在“做题”,而是在真正地“理解计算机是如何工作的”。我们来深入地、全方位地解析这道题,并按照您的要求,补充“套路经验”和“拉分点”。的角度去思考问题,理解指令集架构(ISA)背后的权衡与约束。为转移目标的形式地址。
2025-11-08 20:08:13
1090
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅