- 博客(155)
- 资源 (1)
- 收藏
- 关注
原创 锁与原子操作CAS的底层实现
这里写自定义目录标题先思考为什么要有锁的概念,为什么要有锁呢?主要讲posix api的锁,主要互斥锁,自旋锁,读写锁,原子操作再是在多进程的情况下面的共享内存还有比如说分布式锁,那个乐观锁,悲观锁,公平锁这些分布式的锁,在后面中间件讲主要核心先把这些posix API里面这些底层的锁解释清楚,后面再讲一个自己实现一个try-catch怎么做,原理又怎么样,抛异常,捕获异常以及在finaly里面处理时这三个怎么去实现,这个异常是怎么抛的?先思考为什么要有锁的概念,为什么要有锁呢?因为随着
2022-05-12 18:58:41 301
原创 虚拟网络适配器的实现
虚拟网络适配器的实现什么是服务器?关于服务器,有这么三层概念都被称为是对的,在不同的场景里面说,第一种被称为服务器,就是说的物理硬件机房,服务器物理硬件这是第一种。第二层在服务器中除了这个概念之外,还有大家比如说像windows做桌面,然后linux做服务器,那其实这个服务器另一层意思是一定意义上操作系统第三个在操作系统里面提供一个应用程序,对外提供网络服务,对外提供网络应用服务那现在这三层的概念又会慢慢的衍生出来了,对外提供服务可能有些机房对外提供服务,云计算这个概念,那对外提供物理硬件这
2022-04-14 21:49:33 2098
原创 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 2362
原创 nginx过滤器模块
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习从http的初始化到它的整个流程是怎么形成的?第二个就是我们实现一个过滤器的模块什么是过滤器呢?你在申请网页的时候,打开浏览器可以看到这里有两个字叫做广告,在我们申请网页的过程,这个广告是怎么做的?我们去申请这个网页的时候,请注意广告的显
2022-03-12 14:56:22 5634
原创 Nginx数据结构
Nginx数据结构【人物1】避免的一些葡萄冰糖分2节两地方,我们课时分几次排5次课已经够了,排5次课已经够了,那现在这里面分2个电话,等下又出现这种课安排不是很紧凑,所以呢这次呢我们就跟大家核心的就跟大家讲讲这个恩吉斯的数据结构,首先我们来问一下,我想问一下各位,我们如果尽管上面几个大家有下载恩吉斯原貌的朋友可以看老师也双肩老板,他说你没有自己去看过恩迪斯原貌的朋友。那我们再来问大家一个问题,就是历史原法里面该怎么去看里面有哪些东西?首先解释一下,在温恩吉斯这个代码的话,他在面试的过程中间被问到的
2022-03-10 20:30:21 3215
原创 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 4524
原创 tcp服务器epoll的多种实现
这里写自定义目录标题我们在读写文件的时候,这是一款服务器,CS,这是一个服务器,这个客户端去连接服务器的时候,中间大家知道从连接的这个过程中间产生通过三次握手连接,服务器先进行监听一个端口,监听的时候是用调用listen进行监听,TCP网络编程模型就好比这样一个模型,大家去酒店吃饭,走到那个饭店的门口门口有一个迎宾的人,有迎宾的小姐姐,然后你跟她说吃饭,她把你带进餐馆里面,然后给你介绍一个真正的服务员,后面你点菜买单,然后包括像夹菜点酒都是由这个服务员为你去服务。这里面这个酒店出现两个人,一个是对你
2022-03-06 11:04:43 3650 1
原创 协程的调度实现与性能测试
协程的调度实现与性能测试那我怎么在简历里面写协程,协程这个东西实在真的太好用了,你可以跟很多东西结合到一起,比如说你们对文件,做文件操作可不可以用?好对文件操作,比如说你做日志落盘的时候,可不可以用协程来操作它也是可以的,比如说你对数据库的操作,对数据库的操作,还有包括像一些网络io的处理,这个文件的操作和网络io都是针对文件io来处理。然后我们尽量知道他用到哪里,协程怎么用到数据库?这是我们今天等一下跟大家讲到的讲到的就是关于携程的API的封装。一个线程里面多个协程是怎么运行的?好比多个线程在一
2022-03-04 00:35:28 628
原创 协程的设计原理与汇编实现
第一个问题,为什么会协程?以及协程到底解决了什么问题?第一个同步的方式实现异步的效率同步为什么效率低,而异步的为什么效率高?等待没错,他需要等待,那这个等待是什么意思?第一个案例之前跟大家讲的100万并发的案例第二个案例异步请求的案例现象区别:if 1 用了 workqueue,每1000个耗时 1400对fd直接进行写,每秒接入量5600那现在这个工作队列他为什么在这个过程引入工作队列,他就能够提升性能呢?,他是从哪些方面原因那这个要跟他分析这个要跟大家分析,直接进行读写工作队
2022-03-03 12:46:11 393
原创 用户态协议栈
那我们先呢跟大家解释这个协议栈这个东西啊协议栈这个东西呢或多或少啊各个朋友应该都听过,就是关于网络协议栈或多或少都听过,那我们今天来跟大家讲,啊就是我们站在一个设计者的角度,站在一个设计者的角度,站在tcpip的个人的角度,我们怎么去设计这个协议的?设计队的角度来设计这个网络协议战。就是各位朋友们你想一下这个网络协议战,有很多朋友就会想到一个点,那为什么我们还需要去设计一个网络系统,我们不是去学这个东西就可以吗?其实我也跟大家解释一下,其实你在那把网络协议上理解的很透彻的话,你一定要站在一个设
2022-03-02 00:56:33 1230
原创 海量数据去重hash与布隆过滤器
海量数据去重hash与布隆过滤器背景缓存穿透需求set和mapunordered_map总结布隆过滤器代码背景在使⽤word⽂档时,word如何判断某个单词是否拼写正确?⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?允许有误差垃圾邮件(短信)过滤算法如何设计?允许有误差公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?控制误差 假阳率缓存穿透问题如何解决?允许有误差缓存穿透描述缓存场景,为了减轻落盘数据库(mysql)的访问压⼒,在server端与mysql之间加⼊⼀层缓冲数据层(⽤来存
2022-02-26 21:41:37 1066 1
原创 磁盘存储链式的 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 1012
原创 随处可见的红黑树
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家: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 592 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 3660
原创 CHS_06.2.3.4_2+用信号量实现进程互斥、同步、前驱关系
各位同学 大家好 在这个小节中 我们要学习怎么用信号量机制来实现进程的同步互制关系。
2024-02-01 22:08:46 1075
原创 CHS_03.2.3.2_2+进程互斥的硬件实现方法
但是如果说用硬件的卷tsl这个指令来执行的话 那么就可以保证检查和上锁这两个事情其实是一气呵成的一边把他上锁一边进行检查 把以前的那个值给返回回来所以这是这是他能解决问题的一个原因 这种方式的优点呢 就是实现起来很简单 其实如果用如果有这样一个指令的话 那我们的代码不会特别复杂 可以很简洁。
2024-01-29 22:00:22 850
原创 CHS_01.2.3.1+同步与互斥的基本概念
咱们举过一个例子 就是老渣 他需要并发的执行两个约会任务就是分别和一号约和二号约 每一个约会的进程 他又会有一系列的要求老渣来执行的指令那么由于这些并发执行的进程有异步性 所以这些指令的推进顺序是我们不可预知的所以老渣有可能是这么约的 刚开始是执行一号的这个指令 一接下来执行一号的指令二也就是让老渣把新给一号于是 由于此时老渣的心还没有给任何人 所以他会顺利的把心交给一号 那么接下来如果说切换为就是调度了第二个约会进程的话 那么和二号的这个约会就需要执行这样的两条指定。
2024-01-27 20:46:02 873
原创 CHS_04.2.2.3_2+调度器和闲逛进程
这个很好理解吧 如果是抢占式的高度策略 那就意味着只要就绪队列一改变 那就必须检查一下新旧区的进程 有没有可能抢占当前正在运行的这些进程。而如果是非抢占式的调度策略 那只有当前运行的进程他主动放弃处理机的时候 才有必要唤醒这个调度程序 让他检查一下 对吧。以及什么时候这家伙会出来工作就可以了 那刚才我们说调度的时候 我们说的是进程的调度。它的这个指令周期的末尾也会例行的检查中断 那这个中断就可以周期性的唤醒调度程序。那是不是就有可能让这个新进程抢占当前正在运行的这个进程的一个cpu。
2024-01-23 20:53:45 886
原创 CHS_06.2.1.6_2+线程的实现方式和多线程模型
在上个小节中 我们学习了线程相关的一些基本概念 基础的知识那这个小节中 我们回来看一下有哪几种线程的实现方式 并且会学习几种多线程模型。
2024-01-16 16:13:07 857
原创 CHS_05.2.1.6_1+线程的概念与特点
在引入线程机制之后 比起传统的进程机制来说 带来了哪些变化之后我们会介绍线程有哪些重要的属性 首先来看一下什么是线程 为什么要引入线程呢在很久很久以前 在没有引入进程之前 系统之间的各个程序是只能创新执行的所以在那个时候 我比如说像我 我们想一边运行音乐播放程序一边运行qq这个程序 那么显然是不可以实现的在那个时候 我们不可能边聊qq然后边听音乐 但之后引入了进程的机制之后就可以实现qq边聊qq边听音乐这样的事情 但是大家再来深入的思考一下。
2024-01-16 15:20:19 879
原创 CHS_04.2.1.5+进程通信
然后这个垃圾软件 这个垃圾软件如果他可以随意的访问你的其他进程的地址空间 那有可能他直接把你微信里的一些私密的聊天数据或者一些私密的什么照片之类的直接就给你读走了对吧。好 现在p往里边写 那么如果他的头部 这头部 这是空的 那么他先往这写 写 写 写一个字节 比如说一个字节的数据 然后这写了 之后再再往这写。就是这个特殊的全局变量可以被各个进程所共享 为什么叫特殊的呢 因为如果我们写代码的时候 定义的全局变量其实是局部于一个进程的。
2024-01-15 20:57:12 894
原创 CHS_03.2.1.4+进程控制
进程控制的主要功能是对系统当中的所有进程实施有效的管理 它具有创建新进程 撤销已有进程 实现状进程 状态转换等功能那其实说白了进程控制 它就是要实现进程的状态转化比如说创建一个新进程 那不就是让一个进程从无到有到创建态再到就绪态这是创建新进程所需要干的事情 那撤销一个已有进程不就是让进程进入终止态 然后最终把这个进程干掉的一个过程嘛 所以其实所谓的进程控制就是要实现这些进程的状态转换那么在进程的状态转换的时候 操作系统需要做一些什么事情呢 这就是这个小节当中我们要讨论的内容。
2024-01-14 23:28:49 789
原创 CHS_01.1.6+虚拟机
的一些情况 那我就会启动一个windows操作系统的虚拟机器 然后在上面安装一些windows的应用程序 给大家做这样的演示。我就可以去下载另一个操作系统的镜像文件 比如在我的这个VirtualBox上 我就安装了一个linux的操作系统。还会同时运行着很多我自己安装的一些进程 对吧 比如我现在正在给大家录课 那么我的电脑上还在运行ppt相关的进程。比如 在我的mac电脑上 我安装了mac这个操作系统 那我可以在我的这个电脑上安装第二类的虚拟机管理程序。
2024-01-10 00:59:27 1030
原创 CHS_01.1.5+操作系统引导
如果你用的是windows操作系统的话 那你可以去找一下 你的c盘下面应该会有一个叫做windows的文件夹。搭在开机的时候看见你的那个电脑在转圈圈 什么正在启动 你看见那个画面的时候 其实他背后执行的就是这些个东西。那你的操作系统是安装在c盘里的 这个大家都知道好 那除了你能看得见的这些磁盘分区之外。可以让你的记忆更牢固 也会让你对一门学科更有兴趣 好的 那以上就是这个小节的全部内容。那么这个磁盘的内部刚开始就像你的钱包一样 都是空空的 接下来作为计算机专业的同学。
2024-01-10 00:27:31 868
原创 CHS_02.1.4+操作系统体系结构 二
今年大纲又增加了分层结构 模块化的结构以及外核这种比较特别的操作系统结构那个人认为这个部分如果考的话 肯定就是对各种操作系统结构特性的一个考察以及每一种结构 它具有什么优点或者缺点 选择题大概率是以这样的角度去命题的所以这给大家总结了各种操作系统结构的特性 以及他们的这种设计思想是什么各自的优点缺点是什么 这个图里边标新号的这些部分是我认为更有可能在选择题当中作为选项的一些点红色型号的是全新的内容 黄色型号的是涉及到大内核和微内核 所以都是我们比较熟悉的老内容。
2024-01-09 22:47:56 1004
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人